VC串口超时参数结构体COMMTIMEOUTS [附 VC9下载地址]

COMMTIMEOUTS

COMMTIMEOUTS 结构体被用在SetCommTimeoutsGetCommTimeouts 函数中,以便设置和查询通讯设备的超时参数。这个参数决定ReadFileWriteFileReadFileEx, 和WriteFileEx 操作设备的行为。

 

typedef struct _COMMTIMEOUTS {
  DWORD ReadIntervalTimeout;
  DWORD ReadTotalTimeoutMultiplier;
  DWORD ReadTotalTimeoutConstant;
  DWORD WriteTotalTimeoutMultiplier;
  DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;


 
 

成员

ReadIntervalTimeout
在通讯过程中接收两个字符之间的最长超时时间,按毫秒计算。在 ReadFile操作,当接收到第一个字符时,开始一个计时周期。如果接收任意两个字符之间的时隔超过本限制, ReadFile操作将完成并返回任何已缓冲的数据。0代表本参数未设置。

如果设置为MAXDWORD, 并且ReadTotalTimeoutConstantReadTotalTimeoutMultiplier成员为0,代表读取操作立即返回那些已接收的数据,即使没有收到任何字符。(两个字符之间的接收间隔)

ReadTotalTimeoutMultiplier
乘数用于计算读取操作的总超时时间,按毫秒计算。对于每个读取操作,这个值将乘以要读取的字节数。(读取单个字符的最大超时)
ReadTotalTimeoutConstant
一个用于计算对于读取操作的总超时周期的常数,按毫秒计算。对每次读取操作,实际总超时时间为 ReadTotalTimeoutMultiplier 成员与请求的字节数年的乘积加此值。

ReadTotalTimeoutMultiplierReadTotalTimeoutConstant成员为0代表总读取总超时时间无效(读取所有字节的时间为ReadTotalTimeoutMultiplier*BytesToRead+ReadTotalTimeoutConstant)。

WriteTotalTimeoutMultiplier
乘数用来计算写操作的总超时周期,按毫秒计算。对每个写操作,这个值将乘以要写入的字节数。(写单个字符的最大超时)
WriteTotalTimeoutConstant
一个用于计算写入操作的总超时周期的常数,按毫秒计算。对于每一次写入操作,实际总超时时间为 WriteTotalTimeoutMultiplier 成员与要写入字节的乘积再加此值.

WriteTotalTimeoutMultiplierWriteTotalTimeoutConstant成员为0代表总写入时间无效(写入所有字节的时间为WriteTotalTimeoutMultiplier*BytesToWrite+WriteTotalTimeoutConstant)

备注

如果一个应用程序设置ReadIntervalTimeoutReadTotalTimeoutMultiplier为 MAXDWORD并且设置ReadTotalTimeoutConstant 为一个大于零且小于MAXDWORD的值, 在调用ReadFile时将会发生如下现象:

 

 

  • 如果在输入缓冲区中有任何字符,ReadFile 立即返回缓冲区中的内容。
  • 如果在缓冲区中没有任何字符,ReadFile 将等待接收到一个字符并立即返回.
  • 如果在ReadTotalTimeoutConstant指定的时间值内无任何字节返回,ReadFile超时.  

PS:  VS2008速成版 [VC9 无MFC] 下载地址:
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页