From aa02e72829421c4f479401690767dabf4a455928 Mon Sep 17 00:00:00 2001 From: curt Date: Thu, 19 Nov 1998 03:35:43 +0000 Subject: [PATCH] Updates ... --- Serial/serial.cxx | 26 +++++++++++++++++++++----- Serial/testserial.cxx | 15 ++++++++++++++- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/Serial/serial.cxx b/Serial/serial.cxx index 0106e242c..9c9106b59 100644 --- a/Serial/serial.cxx +++ b/Serial/serial.cxx @@ -50,22 +50,37 @@ fgSERIAL::~fgSERIAL() { } bool fgSERIAL::open_port(const string& device) { + struct termios config; + if ( (fd = open(device.c_str(), O_RDWR | O_NONBLOCK)) == -1 ) { FG_LOG( FG_SERIAL, FG_ALERT, "Cannot open " << device << " for serial I/O" ); return false; } else { dev_open = true; - return true; } + + // set software flow control + if ( tcgetattr( fd, &config ) != 0 ) { + FG_LOG( FG_SERIAL, FG_ALERT, "Unable to poll port settings" ); + return false; + } + + config.c_iflag |= IXON; + config.c_iflag |= IXOFF; + + if ( tcsetattr( fd, TCSANOW, &config ) != 0 ) { + FG_LOG( FG_SERIAL, FG_ALERT, "Unable to update port settings" ); + return false; + } + + return true; } bool fgSERIAL::set_baud(int baud) { struct termios config; speed_t speed; - cout << "attempting to set baud rate to: " << baud << endl; - if ( tcgetattr( fd, &config ) != 0 ) { FG_LOG( FG_SERIAL, FG_ALERT, "Unable to poll port settings" ); return false; @@ -111,8 +126,6 @@ bool fgSERIAL::set_baud(int baud) { return false; } - cout << "successfully set baud to " << baud << endl; - return true; } @@ -157,6 +170,9 @@ int fgSERIAL::write_port(const string& value) { // $Log$ +// Revision 1.2 1998/11/19 03:35:43 curt +// Updates ... +// // Revision 1.1 1998/11/16 13:53:02 curt // Initial revision. // diff --git a/Serial/testserial.cxx b/Serial/testserial.cxx index b563ac76a..c582c13c3 100644 --- a/Serial/testserial.cxx +++ b/Serial/testserial.cxx @@ -1,10 +1,23 @@ #include +#include + #include "serial.hxx" main () { - fgSERIAL port( "/dev/ttyS1", 4800); + fgSERIAL port; string value; + bool result; + + fglog().setLogLevels( FG_ALL, FG_INFO ); + + cout << "start of main" << endl; + + result = port.open_port("/dev/ttyS1"); + cout << "opened port, result = " << result << endl; + + result = port.set_baud(4800); + cout << "set baud, result = " << result << endl; port.write_port("ATDT 626-9800\n"); -- 2.39.5