|
@@ -46,7 +46,7 @@ LPCOMMTIMEOUTS CBaseSerial::GetTimeouts()
|
|
|
return IsOpen() && ::GetCommTimeouts(_hCommHandle, &_CO) == TRUE ? &_CO : NULL;
|
|
|
}
|
|
|
|
|
|
-bool CBaseSerial::SetTimeouts(DWORD ReadIntervalTimeout /* = 0 */, DWORD ReadTotalTimeoutMultiplier /* = 10 */, DWORD ReadTotalTimeoutConstant /* = 1500 */, DWORD WriteTotalTimeoutMultiplier /* = 10 */, DWORD WriteTotalTimeoutConstant /* = 1500 */)
|
|
|
+bool CBaseSerial::SetTimeouts(DWORD ReadIntervalTimeout /* = 5 */, DWORD ReadTotalTimeoutMultiplier /* = 0 */, DWORD ReadTotalTimeoutConstant /* = 3000 */, DWORD WriteTotalTimeoutMultiplier /* = 5 */, DWORD WriteTotalTimeoutConstant /* = 1500 */)
|
|
|
{
|
|
|
COMMTIMEOUTS CO = {
|
|
|
ReadIntervalTimeout,
|
|
@@ -418,11 +418,14 @@ bool CBaseSerial::SetupPort()
|
|
|
if (!::GetCommTimeouts(_hCommHandle, &_CO))
|
|
|
return false;
|
|
|
|
|
|
- _CO.ReadIntervalTimeout = 5;
|
|
|
- _CO.ReadTotalTimeoutMultiplier = 10;
|
|
|
- _CO.ReadTotalTimeoutConstant = 1500;
|
|
|
- _CO.WriteTotalTimeoutMultiplier = 10;
|
|
|
- _CO.WriteTotalTimeoutConstant = 1500;
|
|
|
+ _CO.ReadIntervalTimeout = 5;
|
|
|
+ // 设置0,否则读取超时=ReadTotalTimeoutMultiplier*读取的长度+ReadTotalTimeoutConstant;
|
|
|
+ _CO.ReadTotalTimeoutMultiplier = 0;
|
|
|
+ _CO.ReadTotalTimeoutConstant = 3000;
|
|
|
+ // 写可设置此值,写超时=WriteTotalTimeoutMultiplier*写入长度+WriteTotalTimeoutConstant;
|
|
|
+ _CO.WriteTotalTimeoutMultiplier = 5;
|
|
|
+ _CO.WriteTotalTimeoutConstant = 1500;
|
|
|
+
|
|
|
if (!::SetCommTimeouts(_hCommHandle, &_CO))
|
|
|
return false;
|
|
|
|