X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fserver%2Fmain.c;h=b612f6fcc8864b52e5dbb7fd51795ded979ac5d1;hb=97baaecf7affaf561a0ee6329cc5dee30d52713c;hp=17397c118e84132291ba1321289b70d189ce3e26;hpb=3e7700e1b9b652bb3ed7daaff76cf891907a63b3;p=tpg%2Fopendispense2.git diff --git a/src/server/main.c b/src/server/main.c index 17397c1..b612f6f 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -129,19 +129,22 @@ int InitSerial(const char *File, int BaudRate) int baud; int fd; - - fd = open(File, O_RDWR | O_NOCTTY); + fd = open(File, O_RDWR | O_NOCTTY | O_NONBLOCK); if( fd == -1 ) return -1; switch(BaudRate) { case 9600: baud = B9600; break; - default: return ; + default: close(fd); return -1; } - cfmakeraw(&info); // Sets 8N1 + info.c_lflag = 0; // Non-Canoical, No Echo + info.c_cflag = baud | CS8 | CLOCAL | CREAD; // baud, 8N1 cfsetspeed(&info, baud); + info.c_cc[VTIME] = 0; // No time limit + info.c_cc[VMIN] = 1; // Block until 1 char + tcflush(fd, TCIFLUSH); tcsetattr(fd, TCSANOW, &info); return fd;