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

Тема в разделе "Флудилка", создана пользователем vald, 12 янв 2016.

  1. vald

    vald Нуб

    Не могу разобратся как объеденить помогите програмлю не давно
    Проблема именно вот в этих строках
    Код (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);
        }
    Код (C++):
    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); */

      }
    }

    С этим


    Код (C++):
    #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';          
        }
    }
     
  2. Mestniy

    Mestniy Гуру

    Вы пробовали, то что в loop(е) в первой функции переместить в loop второй функции? Что в setup(е) в первой функции перенести в setup вторую? И с библиотеками так-же!
    Попробуйте и смотрите, как поведет себя программа!
     
  3. Максимус-Бог

    Максимус-Бог Убийца матрёшек

    Зачем string.h? я думал это для си