Помогите студенту с объединением кода

Vald
Offline
Зарегистрирован: 12.01.2016

Дело в том, что я не так давно начал программировать и не могу разобраться, как объединить два скетча.

#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);
    }

 

Alexino
Offline
Зарегистрирован: 29.12.2015

Опять объединения... Или у меня дежавю ? )
Тема подобная недавно всплывала, в ней уже давали хороший совет - закидываете скетчи в миксер и перемешиваете.

ЗЫ: Студдент, програмировать, разобратся, обеденить, скейч - в 4-ёх словах из 8-ми ошибки. Я, конечно, знал, что нынешние студенты лентяи необразованные, но чтоб на столько... Кто ж вас таких принимает на учёбу в ВУЗы ... В армию таких надо гнать, ибо для вас учёба - откос от неё.

Модераторам. Ссори за флуд, не выдержал. Реально глаза режет...

Alexino
Offline
Зарегистрирован: 29.12.2015

Кстати, не холивара ради, а истины. Подобные неграмотные тексты на многих форумах просто запрещены, за такое наказывают. И не потому, что они глаза режут, а потому, что это уже неуважение к участникам форума.

vvadim
Offline
Зарегистрирован: 23.05.2012

можно объединить с кучей ошибок )))))

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Alexino, вы прощены) Студент, убейся ап стену! Больше править не буду - такие темы сразу фтопку!

По сабжу: а что должен делать микс из скетчей?

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Yarik.Yar пишет:

Студент, убейся ап стену!

зачем портить физически здоровое мясо? - давай его в Сирию отправим.

Alexino
Offline
Зарегистрирован: 29.12.2015

Ну, в Сирию, скажем, его ещё может и не пустят, а мы отправить не сможем. А вот по сабжу - действительно не понятно, по этому мой ответ про миксер и был таковым. Так сказать, каков вопрос - таков и ответ...
"Человек, который не способен выразить свои мысли, вовсе не имеет их." (c) Я )))  Для начала, нужно разобраться в голове, понять задачу, попытаться его реализовать, а потом уже идти на форум за помощью, изложив всё по полочкам, что делал, что не делал, рассказав о проблеме.

vvadim
Offline
Зарегистрирован: 23.05.2012

шара требует быстрого и правильного ответа, даже если вопрос не сформулирован...