Показано с 1 по 1 из 1
  1. #1
    Пользователь
    Регистрация
    08.12.2011
    Сообщений
    84
    Вес репутации
    169

    По умолчанию Arduino COM port - прием и разбор данных

    Здравствуйте имеется такой вот скетч

    PHP код:
    #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() && i99) {
            
    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(13HIGH);}
          if ((String)
    command_in == "off"){
              
    digitalWrite(13LOW);}   
               
          
    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';            
        }

    Проблема в том что при отправке с терминала ардуино все работает а при отправке с программы AT terminal светодиод не хочет зажигаться хотя ответ команды ппечатает
    Последний раз редактировалось Chip; 20.01.2013 в 19:02.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •