diff options
-rw-r--r-- | sercp.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -203,6 +203,17 @@ void TestArgs (int argc, char *argv[]) +void FlushSerialPort() { +if (serial_fd) { +#ifdef _WIN32 + PurgeComm(serial_fd, PURGE_RXABORT| PURGE_TXABORT | PURGE_RXCLEAR | PURGE_TXCLEAR); +#else + tcflush(serial_fd, TCIOFLUSH); + #endif + } +} + + //***************************************************************************** // // uSleep win32 implementation @@ -440,7 +451,7 @@ void sercpRecv(void) { len = read (serial_fd, p_buff, sizeof(fileinfo)); #endif printf("Received unknown data. End...\n"); - tcflush(serial_fd, TCIOFLUSH); + FlushSerialPort(); exit (EXIT_FAILURE); break; } @@ -603,7 +614,7 @@ void sercpSend(void) { len_sent = len; while (len_sent) { #ifdef _WIN32 - WriteFile(serial_fd, (void*)p_buff, sent_size, &ulNumBytes, NULL); + WriteFile(serial_fd, (void*)p_buff, send_size, &ulNumBytes, NULL); odeslano = (size_t)ulNumBytes; #else odeslano = write (serial_fd, (void*)p_buff, send_size); |