c - Trouble Reading from Serial.readstring() arduino UNO -


the objective enter "on" , "off" in com port , switch pin 13. no matter do. won't switch on or off. need help. tried see if string entered "on". prints "on" when check result shows different. wrong?

string sdata; string sdata1;  void setup() { // put setup code here, run once: serial.begin(9600); pinmode(13,output); digitalwrite(13,high); delay(5000); digitalwrite(13,low); delay(1000);   }   void loop() { // put main code here, run repeatedly: while(serial.available()==0) {  } sdata=serial.readstring(); sdata1="on"; if(sdata==sdata1) serial.print("same"); else { serial.print("different"); // serial.print(serialdata-serialdata1); serial.print("."); } if(sdata=="on")   {   digitalwrite(13,high);    serial.println("led on");   delay(2000);   } serial.println(sdata); if(sdata=="off")  {   digitalwrite(13,low);   serial.println("led off");   delay(2000);  } sdata=""; } 

do not use string, use char array instead. can suggest function can set delimiter terminate string or timeout when terminator character provided.

bool read_string_until (char *data,                          const unsigned int length,                          const unsigned long timeout_period,                          const char terminator) {    unsigned int index = 0;   unsigned long start_time = millis();    while (index < length) {     /* check if time */     if (millis() - start_time >= timeout_period) {        return false;  // no data in timeout period     }      /* if data, add buffer */          if (serial.available() > 0) {       char r = serial.read();       if (r == terminator) {         data [index] = 0;  // terminating null byte         dbg_msg("command complete");         return true;       }         data [index++] = r;     }     }     return false;  // filled without terminator }   void loop() {     if(serial.available()) {     char msg[64] = {0};      /* capture incoming message */     if (read_string_until(msg, sizeof(msg), 500, '!'))      {       dbg_msg_val("rx: ", msg, "");     }   } } 

may can later use these oncomming messages command further parsing, using


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -