[Com0com-cvs] hub4com comparams.cpp, 1.3, 1.4 comparams.h, 1.3, 1.4 comio.cpp, 1.4, 1.5 hub4com.cpp
The virtual serial port driver for Windows.
Brought to you by:
vfrolov
From: Vyacheslav F. <vf...@us...> - 2007-05-14 12:06:41
|
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; |