diff --git a/afsk/main.c b/afsk/main.c index 76daf175..64dc5cb1 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -365,6 +365,12 @@ else if ((uart_fd = serialOpen ("/dev/ttyAMA0", 19200)) >= 0) { char c; + int charss = serialDataAvail (uart_fd); + if (charss != 0) + printf("Clearing buffer of %d chars \n", charss); + while ((charss-- > 0)) + c = serialGetchar (uart_fd); // clear buffer + unsigned int waitTime; int i; for(i = 0; i < 2; i++) @@ -810,6 +816,12 @@ char sensor_payload[500]; if (payload == ON) { char c; + int charss = serialDataAvail (uart_fd); + if (charss != 0) + printf("Clearing buffer of %d chars \n", charss); + while ((charss-- > 0)) + c = serialGetchar (uart_fd); // clear buffer + unsigned int waitTime; int i = 0; @@ -1200,7 +1212,8 @@ if (payload == ON) char c; int charss = serialDataAvail (uart_fd); - printf("Clearing buffer of %d chars \n", charss); + if (charss != 0) + printf("Clearing buffer of %d chars \n", charss); while ((charss-- > 0)) c = serialGetchar (uart_fd); // clear buffer @@ -1210,7 +1223,7 @@ if (payload == ON) printf("Querying payload with ?\n"); waitTime = millis() + 500; int end = FALSE; - int retry = FALSE; +// int retry = FALSE; while ((millis() < waitTime) && !end) { int chars = serialDataAvail (uart_fd); @@ -1222,26 +1235,17 @@ if (payload == ON) if (c != '\n') { sensor_payload[i++] = c; - if (i == 2) - if ((sensor_payload[0] != 'O') || (sensor_payload[1] != 'K')) - { - retry = TRUE; // restart read - printf("Restarting sensor read! %c%c\n", sensor_payload[0], sensor_payload[1]); - } } else { - if (retry) - i = 0; - else - end = TRUE; + end = TRUE; } } } sensor_payload[i++] = ' '; - sensor_payload[i++] = '\n'; +// sensor_payload[i++] = '\n'; sensor_payload[i] = '\0'; - printf("Payload string: %s", sensor_payload); + printf("Payload string: %s \n", sensor_payload); int count1; char *token;