From 1d21d34fa71ab52fc4725c6df3b259ec664e1e1c Mon Sep 17 00:00:00 2001 From: Pavel Vymetálek Date: Sat, 16 Mar 2019 21:36:55 +0100 Subject: Upravy nastaveni seriaku. Chodi na MacOS - Delal to Otis --- sercp.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/sercp.c b/sercp.c index 9ca8d31..0e5d1dd 100644 --- a/sercp.c +++ b/sercp.c @@ -42,7 +42,7 @@ #include #include #include - #include + #include #include #include #include @@ -210,7 +210,7 @@ void uSleep(int waitTime) { QueryPerformanceCounter((LARGE_INTEGER *) &time2); } while ((time2 - time1) < waitTime); #else - uSleep(waitTime); + usleep(waitTime); #endif } @@ -376,7 +376,7 @@ void sercpRecv(void) { uint32_t recv_length = 0; // zatim prijatych dat ze souboru #ifndef __WIN32 int result; - int err; + int _err; #endif FILEINFO *p_fileinfo = &fileinfo; unsigned char *p_buff = buff; @@ -426,8 +426,8 @@ void sercpRecv(void) { exit (EXIT_FAILURE); #else - err = errno; - error (1, err, "can't open output file"); + _err = errno; + err (1, "can't open output file"); #endif } } else { @@ -654,6 +654,7 @@ int OpenUart() { return(-1); } tcgetattr(serial_fd, &oldtio); /* save current port settings */ + bzero(&newtio, sizeof (newtio)); switch (baud_rate){ case 115200: newtio.c_cflag = B115200; @@ -661,8 +662,6 @@ int OpenUart() { case 57600: newtio.c_cflag = B57600; break; - default: - baud_rate = 38400; case 38400: newtio.c_cflag = B38400; break; @@ -681,14 +680,17 @@ int OpenUart() { case 1200: newtio.c_cflag = B1200; break; + default: + baud_rate = 38400; + newtio.c_cflag = B38400; + break; } + cfmakeraw(&newtio); + cfsetspeed(&newtio, baud_rate); newtio.c_cflag |= CS8 | CLOCAL | CREAD | CRTSCTS; // CSTOPB - dva stop bity NEE printf ("Serial device: %s, communication speed is: %d Bd\n", MODEMDEVICE, baud_rate); - newtio.c_iflag = 0; - newtio.c_oflag = 0; - newtio.c_lflag = 0; - newtio.c_cc[VMIN] = 0; - newtio.c_cc[VTIME] = 10; + newtio.c_cc[VMIN] = 1; + newtio.c_cc[VTIME] = 0; tcsetattr(serial_fd, TCSANOW, &newtio); tcflush(serial_fd, TCIOFLUSH); return 0; -- cgit