- tcgetattr (fd, &newtio);
-
- switch (baud_rate) {
- case 230400: baud_rate = B230400; break;
- case 115200: baud_rate = B115200; break;
- case 57600: baud_rate = B57600; break;
- case 38400: baud_rate = B38400; break;
- case 19200: baud_rate = B19200; break;
- case 9600: baud_rate = B9600; break;
- case 4800: baud_rate = B4800; break;
- case 2400: baud_rate = B2400; break;
- case 1800: baud_rate = B1800; break;
- case 1200: baud_rate = B1200; break;
- case 600: baud_rate = B600; break;
- case 300: baud_rate = B300; break;
- case 200: baud_rate = B200; break;
- case 150: baud_rate = B150; break;
- case 134: baud_rate = B134; break;
- case 110: baud_rate = B110; break;
- case 75: baud_rate = B75; break;
- case 50:
- case 0:
- default:
+ if (tcgetattr (fd, &newtio) == -1)
+ return FALSE;
+
+ newtio.c_cflag |= (CLOCAL | CREAD);
+ newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ECHONL | ISIG | IEXTEN );
+ newtio.c_oflag &= ~(OPOST);
+ newtio.c_iflag = IGNBRK;
+
+ /* setup baudrate */
+ switch (baud_rate)
+ {
+/*Some values are not defined on OSX and *BSD */
+#if defined(B921600)
+ case 921600:
+ baud_rate = B921600;
+ break;
+#endif
+#if defined(B460800)
+ case 460800:
+ baud_rate = B460800;
+ break;
+#endif
+ case 230400:
+ baud_rate = B230400;
+ break;
+ case 115200:
+ baud_rate = B115200;
+ break;
+ case 57600:
+ baud_rate = B57600;
+ break;
+ case 38400:
+ baud_rate = B38400;
+ break;
+ case 19200:
+ baud_rate = B19200;
+ break;
+ case 9600: