summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2003-05-23 17:47:43 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2003-05-23 17:47:43 +0000
commit5b8f7b08ccb2afd0e7bec8a28810cd63ba1241fb (patch)
tree2b6cf423e1117260c074d5c23df93edff8e0ed54 /ace
parentfb5f5db4a0978da0a036a69e2fb50baf4a07fe46 (diff)
downloadATCD-5b8f7b08ccb2afd0e7bec8a28810cd63ba1241fb.tar.gz
ChangeLogTag:Fri May 23 10:46:50 2003 Ossama Othman <ossama@dre.vanderbilt.edu>
Diffstat (limited to 'ace')
-rw-r--r--ace/TTY_IO.cpp34
-rw-r--r--ace/TTY_IO.h2
2 files changed, 20 insertions, 16 deletions
diff --git a/ace/TTY_IO.cpp b/ace/TTY_IO.cpp
index 8fd68145d38..8b7ae2bb74b 100644
--- a/ace/TTY_IO.cpp
+++ b/ace/TTY_IO.cpp
@@ -2,7 +2,9 @@
#include "ace/TTY_IO.h"
-ACE_RCSID(ace, TTY_IO, "$Id$")
+ACE_RCSID (ace,
+ TTY_IO,
+ "$Id$")
ACE_TTY_IO::Serial_Params::Serial_Params (void)
{
@@ -262,7 +264,7 @@ ACE_TTY_IO::control (Control_Mode cmd,
#endif /* IXOFF */
c_lflag = 0;
- ivmin_cc4 = (u_char) 0;
+ ivmin_cc4 = (u_char) arg->readmincharacters;
ivtime_cc5= (u_char) (arg->readtimeoutmsec / 100);
devpar.c_iflag = c_iflag;
devpar.c_oflag = c_oflag;
@@ -276,9 +278,9 @@ ACE_TTY_IO::control (Control_Mode cmd,
int status;
this->ACE_IO_SAP::control (TIOCMGET, &status);
- if (arg->dtrdisable)
+ if (arg->dtrdisable)
status &= ~TIOCM_DTR;
- else
+ else
status |= TIOCM_DTR;
this->ACE_IO_SAP::control (TIOCMSET,&status);
@@ -305,10 +307,10 @@ ACE_TTY_IO::control (Control_Mode cmd,
case SETPARAMS:
DCB dcb;
dcb.DCBlength = sizeof dcb;
- if (!::GetCommState (this->get_handle (), &dcb))
+ if (!::GetCommState (this->get_handle (), &dcb))
{
ACE_OS::set_errno_to_last_error ();
- return -1;
+ return -1;
}
/*SadreevAA
switch (arg->baudrate)
@@ -328,7 +330,7 @@ ACE_TTY_IO::control (Control_Mode cmd,
// case 256000: dcb.BaudRate = CBR_256000; break;
default: return -1;
}
-*/
+*/
dcb.BaudRate = arg->baudrate;
switch (arg->databits)
{
@@ -423,19 +425,19 @@ ACE_TTY_IO::control (Control_Mode cmd,
if (arg->xofflim != -1)
dcb.XoffLim = arg->xofflim;
- if (arg->dtrdisable)
+ if (arg->dtrdisable)
dcb.fDtrControl = DTR_CONTROL_DISABLE;
else
dcb.fDtrControl = DTR_CONTROL_ENABLE;
dcb.fAbortOnError = FALSE;
- dcb.fErrorChar = FALSE;
- dcb.fNull = FALSE;
+ dcb.fErrorChar = FALSE;
+ dcb.fNull = FALSE;
dcb.fBinary = TRUE;
if (!::SetCommState (this->get_handle (), &dcb))
{
ACE_OS::set_errno_to_last_error ();
- return -1;
+ return -1;
}
// 2/13/97 BWF added drop out timer
@@ -445,13 +447,13 @@ ACE_TTY_IO::control (Control_Mode cmd,
if (!::GetCommTimeouts (this->get_handle(), &timeouts))
{
ACE_OS::set_errno_to_last_error ();
- return -1;
+ return -1;
}
if (arg->readtimeoutmsec == 0)
{
// return immediately if no data in the input buffer
- timeouts.ReadIntervalTimeout = MAXDWORD;
+ timeouts.ReadIntervalTimeout = MAXDWORD;
timeouts.ReadTotalTimeoutMultiplier = 0;
timeouts.ReadTotalTimeoutConstant = 0;
}
@@ -485,13 +487,13 @@ ACE_TTY_IO::control (Control_Mode cmd,
timeouts.ReadTotalTimeoutConstant = 0;
}
}
-
+
if (!::SetCommTimeouts (this->get_handle (), &timeouts))
{
ACE_OS::set_errno_to_last_error ();
- return -1;
+ return -1;
}
-
+
return 0;
case GETPARAMS:
diff --git a/ace/TTY_IO.h b/ace/TTY_IO.h
index bf67457c93b..794aecff16f 100644
--- a/ace/TTY_IO.h
+++ b/ace/TTY_IO.h
@@ -54,6 +54,8 @@ public:
const char *paritymode;
int databits;
int stopbits;
+ // Minimum number of characters for non-canonical read
+ int readmincharacters;
int readtimeoutmsec;
int ctsenb; // CTS & RTS are the same under unix
int rtsenb; // enable & set rts mode (win32)