Помогите студенту с объединением кода
- Войдите на сайт для отправки комментариев
Втр, 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) Я ))) Для начала, нужно разобраться в голове, понять задачу, попытаться его реализовать, а потом уже идти на форум за помощью, изложив всё по полочкам, что делал, что не делал, рассказав о проблеме.
шара требует быстрого и правильного ответа, даже если вопрос не сформулирован...