Помогите студенту с объединением кода
- Войдите на сайт для отправки комментариев
Втр, 12/01/2016 - 12:45
Дело в том, что я не так давно начал программировать и не могу разобраться, как объединить два скетча.
#include <string.h> char unitID_in[10]; char command_in[10]; char data_in[100]; void setup() { // открываем порт Serial.begin(9600); } void loop() { int i=0; char buffer[100]; //если есть данные - читаем if(Serial.available()){ delay(100); //загоняем прочитанное в буфер while( Serial.available() && i< 99) { buffer[i++] = Serial.read(); } //закрываем массив buffer[i++]='\0'; } //если буфер наполнен if(i>0){ //разбераем его на части отделенные запятой sscanf(buffer, "%[^','],%[^','],%s", &unitID_in, &command_in, &data_in); } //Исполнительная часть //Проверяем какому устройству пришли данные //тестовое устройство 001 if ((String)unitID_in == "001"){ //test serial read Serial.print("001,arduino recive: unit "); Serial.print(unitID_in); Serial.print("\n"); Serial.print("command: "); Serial.print(command_in); Serial.print("\n"); Serial.print("data: "); Serial.print(data_in); Serial.print("\n"); unitID_in [0] = '\0'; command_in [0] = '\0'; } //пример выполнения команды устройством 013 if ((String)unitID_in == "013"){ if ((String)command_in == "on"){ digitalWrite(13, HIGH);} if ((String)command_in == "off"){ digitalWrite(13, LOW);} Serial.print("001,arduino recive: unit "); Serial.print(unitID_in); Serial.print(" command "); Serial.print(command_in); Serial.print("\n"); unitID_in [0] = '\0'; command_in [0] = '\0'; } }
unsigned long x; int LED = 9; // зеленый подключен к 9 пину int LED2 = 10; // синий подключен к 10 пину int LED3 = 11; // красный подключен к 11 пину int a,b,c = 0; void setup() { Serial.begin(9600); Serial.setTimeout(4); pinMode(LED, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); } void loop() { if (Serial.available()) { x = Serial.parseInt(); if (x>=0 && x<=255) { //a = x; // для RGB ленты a = 255-x; analogWrite(LED, a); } if (x>=256 && x<=511) { //b = x-256; // для RGB ленты b = 511-x; analogWrite(LED2, b); } if (x>=512 && x<=767) { //c = x-512; // для RGB ленты c = 767-x; analogWrite(LED3, c); } /* Serial.println(x); Serial.println(a); Serial.println(b); Serial.println(c); */ } }
Примерно как обеденить я разобрался проблема осталась именно в этих строках x = Serial.parseInt(); if (x>=0 && x<=255) { //a = x; // для RGB ленты a = 255-x; analogWrite(LED, a); } и это 9:50:39 PM if ((String)unitID_in == "013"){ x = Serial.parseInt(); if (((String)command_in)(x>=0 && x<=255)) { //a = x; // для RGB ленты a = 255-x; analogWrite(LED, a); }
Опять объединения... Или у меня дежавю ? )
Тема подобная недавно всплывала, в ней уже давали хороший совет - закидываете скетчи в миксер и перемешиваете.
ЗЫ: Студдент, програмировать, разобратся, обеденить, скейч - в 4-ёх словах из 8-ми ошибки. Я, конечно, знал, что нынешние студенты лентяи необразованные, но чтоб на столько... Кто ж вас таких принимает на учёбу в ВУЗы ... В армию таких надо гнать, ибо для вас учёба - откос от неё.
Модераторам. Ссори за флуд, не выдержал. Реально глаза режет...
Кстати, не холивара ради, а истины. Подобные неграмотные тексты на многих форумах просто запрещены, за такое наказывают. И не потому, что они глаза режут, а потому, что это уже неуважение к участникам форума.
можно объединить с кучей ошибок )))))
Alexino, вы прощены) Студент, убейся ап стену! Больше править не буду - такие темы сразу фтопку!
По сабжу: а что должен делать микс из скетчей?
Студент, убейся ап стену!
зачем портить физически здоровое мясо? - давай его в Сирию отправим.
Ну, в Сирию, скажем, его ещё может и не пустят, а мы отправить не сможем. А вот по сабжу - действительно не понятно, по этому мой ответ про миксер и был таковым. Так сказать, каков вопрос - таков и ответ...
"Человек, который не способен выразить свои мысли, вовсе не имеет их." (c) Я ))) Для начала, нужно разобраться в голове, понять задачу, попытаться его реализовать, а потом уже идти на форум за помощью, изложив всё по полочкам, что делал, что не делал, рассказав о проблеме.
шара требует быстрого и правильного ответа, даже если вопрос не сформулирован...