# HG changeset patch # User cpresser@rika # Date 1202390887 -3600 # Node ID f1573dd6dace86fda4dfaab9dcf1cf1ad474f24f # Parent 23b8c749e5a0ba83d8b84451d634efd9b8617947 glcddrivers: reworked cSerialPort::Open. now avrctl also compiles. diff -r 23b8c749e5a0 -r f1573dd6dace graphlcd-base/glcddrivers/avrctl.c --- a/graphlcd-base/glcddrivers/avrctl.c Thu Feb 07 12:41:15 2008 +0000 +++ b/graphlcd-base/glcddrivers/avrctl.c Thu Feb 07 14:28:07 2008 +0100 @@ -109,7 +109,7 @@ { return -1; } -// if (port->Open(config->device.c_str()) != 0) + if (port->Open(config->device.c_str()) != 0) return -1; *oldConfig = *config; diff -r 23b8c749e5a0 -r f1573dd6dace graphlcd-base/glcddrivers/port.c --- a/graphlcd-base/glcddrivers/port.c Thu Feb 07 12:41:15 2008 +0000 +++ b/graphlcd-base/glcddrivers/port.c Thu Feb 07 14:28:07 2008 +0100 @@ -288,16 +288,15 @@ int cSerialPort::Open(const char * device, void (*FP)(int)) { - struct termios options; struct sigaction saio; - fd = open(device, O_RDWR | O_NOCTTY | O_NONBLOCK); - if (fd == -1) + if (FP == NULL) { printf("error opening port\n"); return -1; } + Open(device); // install the signal handler before making the device asynchronous/ saio.sa_handler = FP; @@ -311,6 +310,20 @@ // Make the file descriptor asynchronous fcntl(fd, F_SETFL, FASYNC | O_NONBLOCK); + return(0); +} + +int cSerialPort::Open(const char * device) +{ + struct termios options; + + fd = open(device, O_RDWR | O_NOCTTY | O_NONBLOCK); + if (fd == -1) + { + printf("error opening port\n"); + return -1; + } + tcgetattr(fd, &options); cfsetispeed(&options, B921600); diff -r 23b8c749e5a0 -r f1573dd6dace graphlcd-base/glcddrivers/port.h --- a/graphlcd-base/glcddrivers/port.h Thu Feb 07 12:41:15 2008 +0000 +++ b/graphlcd-base/glcddrivers/port.h Thu Feb 07 14:28:07 2008 +0100 @@ -66,6 +66,7 @@ ~cSerialPort(); int Open(const char * device, void (*FP)(int)); + int Open(const char * device); int Close(); int ReadData(unsigned char * data);