*/
#include <stdio.h>
#include <iostream>
-#include "../config.h"
-#ifdef HAVE_LINUX_VERSION_H
-#include <linux/version.h>
-#else
-#define LINUX_VERSION_CODE 1
-#define KERNEL_VERSION 3
-#endif
#include "Serial.h"
return -1;
}
/* prepare attributes */
-#if defined(HAVE_LINUX_VERSION_H) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
r = tcgetattr(*writeFD, &my_tios);
if(r == -1) {
*err = errno;
close(*writeFD);
return -1;
}
-#else
- r = tcgetattr(*writeFD, &my_tios);
- if(r == -1) {
- *err = errno;
- close(*readFD);
- close(*writeFD);
- return -1;
- }
- *pt = my_tios;
- cfmakeraw(&my_tios);
- my_tios.c_iflag |= IGNBRK | INPCK;
- my_tios.c_cflag |= (CS8 | CLOCAL | CREAD | PARENB);
- cfsetispeed(&my_tios, B9600);
- cfsetospeed(&my_tios, B9600);
- r = tcsetattr(*readFD, TCSANOW, &my_tios);
- if(r == -1) {
- *err = errno;
- r = tcsetattr(*writeFD, TCSANOW, pt);
- close(*readFD);
- close(*writeFD);
- return -1;
- }
-#endif
-
+
// clear buffers
r = tcflush(*writeFD, TCIOFLUSH);
if(r == -1) {
}
int BaseSerial::highSpeed(int *err) {
- int r;
-#if defined(HAVE_LINUX_VERSION_H) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
struct serial_struct serinfo;
- r = ioctl(serialWriteFD, TIOCGSERIAL, &serinfo);
+ int r = ioctl(serialWriteFD, TIOCGSERIAL, &serinfo);
if(r == -1) {
*err = errno;
return -1;
serinfo.flags &= ~ASYNC_SPD_MASK;
serinfo.flags |= ASYNC_SPD_CUST;
r = ioctl(serialWriteFD, TIOCSSERIAL, &serinfo);
-#else
- struct termios my_tios;
- r = tcgetattr(serialWriteFD, &my_tios);
- cfsetispeed(&my_tios, B38400);
- cfsetospeed(&my_tios, B38400);
- r = tcsetattr(serialReadFD, TCSANOW, &my_tios);
- if(r == -1) {
- *err = errno;
- }
- else {
- r = tcsetattr(serialWriteFD, TCSANOW, &my_tios);
- }
-#endif
if(r == -1) {
*err = errno;
return -1;