Update of /cvsroot/com0com/hub4com
In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv5110
Modified Files:
comparams.cpp comparams.h comio.cpp hub4com.cpp
Log Message:
Added read interval timeout option
Index: comparams.h
===================================================================
RCS file: /cvsroot/com0com/hub4com/comparams.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** comparams.h 6 Feb 2007 11:53:33 -0000 1.3
--- comparams.h 14 May 2007 12:06:37 -0000 1.4
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.4 2007/05/14 12:06:37 vfrolov
+ * Added read interval timeout option
+ *
* Revision 1.3 2007/02/06 11:53:33 vfrolov
* Added options --odsr, --ox, --ix and --idsr
***************
*** 51,54 ****
--- 54,58 ----
BOOL SetInX(const char *pInX) { return SetFlag(pInX, &inX); }
BOOL SetInDsr(const char *pInDsr) { return SetFlag(pInDsr, &inDsr); }
+ BOOL SetIntervalTimeout(const char *pIntervalTimeout);
static string BaudRateStr(long baudRate);
***************
*** 61,64 ****
--- 65,69 ----
static string InXStr(int inX) { return FlagStr(inX); }
static string InDsrStr(int inDsr) { return FlagStr(inDsr); }
+ static string IntervalTimeoutStr(long intervalTimeout);
string BaudRateStr() const { return BaudRateStr(baudRate); }
***************
*** 71,74 ****
--- 76,80 ----
string InXStr() const { return InXStr(inX); }
string InDsrStr() const { return InDsrStr(inDsr); }
+ string IntervalTimeoutStr() const { return IntervalTimeoutStr(intervalTimeout); }
static const char *BaudRateLst();
***************
*** 81,84 ****
--- 87,91 ----
static const char *InXLst() { return FlagLst(); }
static const char *InDsrLst() { return FlagLst(); }
+ static const char *IntervalTimeoutLst();
long BaudRate() const { return baudRate; }
***************
*** 91,94 ****
--- 98,102 ----
int InX() const { return inX; }
int InDsr() const { return inDsr; }
+ long IntervalTimeout() const { return intervalTimeout; }
private:
***************
*** 106,109 ****
--- 114,118 ----
int inX;
int inDsr;
+ long intervalTimeout;
};
///////////////////////////////////////////////////////////////
Index: comparams.cpp
===================================================================
RCS file: /cvsroot/com0com/hub4com/comparams.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** comparams.cpp 6 Feb 2007 11:53:33 -0000 1.3
--- comparams.cpp 14 May 2007 12:06:37 -0000 1.4
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.4 2007/05/14 12:06:37 vfrolov
+ * Added read interval timeout option
+ *
* Revision 1.3 2007/02/06 11:53:33 vfrolov
* Added options --odsr, --ox, --ix and --idsr
***************
*** 46,50 ****
outX(0),
inX(0),
! inDsr(0)
{
}
--- 49,54 ----
outX(0),
inX(0),
! inDsr(0),
! intervalTimeout(0)
{
}
***************
*** 110,113 ****
--- 114,127 ----
}
+ BOOL ComParams::SetIntervalTimeout(const char *pIntervalTimeout)
+ {
+ if (isdigit(*pIntervalTimeout)) {
+ intervalTimeout = atol(pIntervalTimeout);
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
BOOL ComParams::SetFlag(const char *pFlagStr, int *pFlag)
{
***************
*** 175,178 ****
--- 189,203 ----
}
+ string ComParams::IntervalTimeoutStr(long intervalTimeout)
+ {
+ if (intervalTimeout > 0) {
+ stringstream buf;
+ buf << intervalTimeout;
+ return buf.str();
+ }
+
+ return "0";
+ }
+
string ComParams::FlagStr(int flag)
{
***************
*** 205,208 ****
--- 230,238 ----
}
+ const char *ComParams::IntervalTimeoutLst()
+ {
+ return "a positive number or 0 milliseconds";
+ }
+
const char *ComParams::FlagLst()
{
Index: hub4com.cpp
===================================================================
RCS file: /cvsroot/com0com/hub4com/hub4com.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** hub4com.cpp 6 Feb 2007 11:53:33 -0000 1.4
--- hub4com.cpp 14 May 2007 12:06:37 -0000 1.5
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.5 2007/05/14 12:06:37 vfrolov
+ * Added read interval timeout option
+ *
* Revision 1.4 2007/02/06 11:53:33 vfrolov
* Added options --odsr, --ox, --ix and --idsr
***************
*** 79,82 ****
--- 82,87 ----
<< " (" << ComParams().InDsrStr() << " by default), where <c> is" << endl
<< " " << ComParams::InDsrLst() << "." << endl
+ << " --ito=<t> - set read interval timeout to <t> (" << ComParams().IntervalTimeoutStr() << " by default)," << endl
+ << " where <t> is " << ComParams::IntervalTimeoutLst() << "." << endl
<< endl
<< " The value c[urrent] above means to use current COM port settings." << endl
***************
*** 262,265 ****
--- 267,276 ----
}
} else
+ if ((pParam = GetParam(pArg, "ito=")) != NULL) {
+ if (!comParams.SetIntervalTimeout(pParam)) {
+ cerr << "Unknown read interval timeout value " << pParam << endl;
+ exit(1);
+ }
+ } else
if ((pParam = GetParam(pArg, "route=")) != NULL) {
defaultRouteData = FALSE;
Index: comio.cpp
===================================================================
RCS file: /cvsroot/com0com/hub4com/comio.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** comio.cpp 6 Feb 2007 11:53:33 -0000 1.4
--- comio.cpp 14 May 2007 12:06:37 -0000 1.5
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.5 2007/05/14 12:06:37 vfrolov
+ * Added read interval timeout option
+ *
* Revision 1.4 2007/02/06 11:53:33 vfrolov
* Added options --odsr, --ox, --ix and --idsr
***************
*** 142,148 ****
}
! timeouts.ReadTotalTimeoutMultiplier = MAXDWORD;
! timeouts.ReadTotalTimeoutConstant = MAXDWORD - 1;
! timeouts.ReadIntervalTimeout = MAXDWORD;
timeouts.WriteTotalTimeoutMultiplier = 0;
--- 145,157 ----
}
! if (comParams.IntervalTimeout() > 0) {
! timeouts.ReadTotalTimeoutMultiplier = 0;
! timeouts.ReadTotalTimeoutConstant = 0;
! timeouts.ReadIntervalTimeout = (DWORD)comParams.IntervalTimeout();
! } else {
! timeouts.ReadTotalTimeoutMultiplier = MAXDWORD;
! timeouts.ReadTotalTimeoutConstant = MAXDWORD - 1;
! timeouts.ReadIntervalTimeout = MAXDWORD;
! }
timeouts.WriteTotalTimeoutMultiplier = 0;
***************
*** 166,169 ****
--- 175,179 ----
<< ", ix=" << ComParams::InXStr(dcb.fInX)
<< ", idsr=" << ComParams::InDsrStr(dcb.fDsrSensitivity)
+ << ", ito=" << comParams.IntervalTimeoutStr()
<< ") - OK" << endl;
return handle;
|