COMMTIMEOUTS主要用于串口超时参数设置
来源:互联网 发布:2016淘宝交易额是多少 编辑:程序博客网 时间:2024/05/08 09:17
private struct COMMTIMEOUTS
{
public int ReadIntervalTimeout;
public int ReadTotalTimeoutMultiplier;
public int ReadTotalTimeoutConstant;
public int WriteTotalTimeoutMultiplier;
public int WriteTotalTimeoutConstant;
}
ReadIntervalTimeout:两字符之间最大的延时,当读取串口数据时,一旦两个字符传输的时间差超过该时间,读取函数将返回现有的数据。设置为0表示该参数不起作用。
ReadTotalTimeoutMultiplier:读取每字符间的超时。
ReadTotalTimeoutConstant:一次读取串口数据的固定超时。所以在一次读取串口的操作中,其超时为ReadTotalTimeoutMultiplier乘以读取的字节数再加上 ReadTotalTimeoutConstant。将ReadIntervalTimeout设置为MAXDWORD,并将ReadTotalTimeoutMultiplier 和ReadTotalTimeoutConstant设置为0,表示读取操作将立即返回存放在输入缓冲区的字符。
WriteTotalTimeoutMultiplier:写入每字符间的超时。
WriteTotalTimeoutConstant:一次写入串口数据的固定超时。所以在一次写入串口的操作中,其超时为WriteTotalTimeoutMultiplier乘以写入的字节数再加上 WriteTotalTimeoutConstant。
一般都会做以下设置:
TimeOuts.ReadIntervalTimeout=MAXDWORD;
// 把间隔超时设为最大,把总超时设为0将导致ReadFile立即返回并完成操作
TimeOuts.ReadTotalTimeoutMultiplier=0;
//读时间系数
TimeOuts.ReadTotalTimeoutConstant=0;
//读时间常量
TimeOuts.WriteTotalTimeoutMultiplier=50;
//总超时=时间系数*要求读/写的字符数+时间常量
TimeOuts.WriteTotalTimeoutConstant=2000;
//设置写超时以指定WriteComm成员函数中的
http://hi.baidu.com/fanr520/blog/item/f2e668c34dec0950b219a8d7.html/cmtid/87d29dafd533f5fefaed5076
// COMMTIMEOUTS对象
COMMTIMEOUTS comTimeOut;
// 接收时,两字符间最大的时延
comTimeOut.ReadIntervalTimeout = 3;
// 读取每字节的超时
comTimeOut.ReadTotalTimeoutMultiplier = 3;
// 读串口数据的固定超时
// 总超时 = ReadTotalTimeoutMultiplier * 字节数 + ReadTotalTimeoutConstant
comTimeOut.ReadTotalTimeoutConstant = 2;
// 写每字节的超时
comTimeOut.WriteTotalTimeoutMultiplier = 3;
// 写串口数据的固定超时
comTimeOut.WriteTotalTimeoutConstant = 2;
// 将超时参数写入设备控制
SetCommTimeouts(handlePort_,&comTimeOut);
ReadIntervalTimeout
指定通讯线上两个字符到达的最大时延,以毫秒为单位。在ReadFile操作期间,时间周期从第一个字符接收到算起。如果收到的两个字符之间的间隔超过该值,ReadFile操作完毕并返回所有缓冲数据。如果ReadIntervalTimeout为0,则该值不起作用。
如果值为MAXDWORD, 并且ReadTotalTimeoutConstant和ReadTotalTimeoutMultiplier两个值都为0, 则指定读操作携带已经收到的字符立即返回,即使没有收到任何字符。
ReadTotalTimeoutMultiplier
指定以毫秒为单位的累积值。用于计算读操作时的超时总数。对于每次读操作,该值与所要读的字节数相乘。
ReadTotalTimeoutConstant
指定以毫秒为单位的常数。用于计算读操作时的超时总数。对于每次读操作,ReadTotalTimeoutMultiplier与所要读的字节数相乘后与该值相加。
如果ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant都为0,则在读操作时忽略总超时数。
WriteTotalTimeoutMultiplier
指定以毫秒为单位的累积值。用于计算写操作时的超时总数。对于每次写操作,该值与所要写的字节数相乘。
WriteTotalTimeoutConstant
指定以毫秒为单位的常数。用于计算写操作时的超时总数。对于每次写操作, WriteTotalTimeoutMultiplier与所要写的字节数相乘后与该值相加。
如果 WriteTotalTimeoutMultiplier 和 WriteTotalTimeoutConstant都为0,则在写操作时忽略总超时数。
提示:用户设置通讯超时后,如没有出错,串口已经被打开。
- COMMTIMEOUTS主要用于串口超时参数设置
- 串口编程:超时COMMTIMEOUTS结构
- COMMTIMEOUTS详解(读写串口超时)
- 串口编程-读写超时 COMMTIMEOUTS设置
- 串口编程之二:超时COMMTIMEOUTS结构
- 串口通讯超时的设置与含义(COMMTIMEOUTS)
- VC串口超时参数结构体COMMTIMEOUTS [附 VC9下载地址]
- COMMTIMEOUTS
- COMMTIMEOUTS
- COMMTIMEOUTS
- COMMTIMEOUTS
- 如何设置串口通信中的COMMTIMEOUTS结构?
- 串口之COMMTIMEOUTS结构体详解
- HttpClient 超时相关参数设置
- 串口超时
- 串口通讯编程一日通3(COMMTIMEOUTS DCB整理)
- 串口通讯编程一日通3(COMMTIMEOUTS DCB整理)
- 串口通讯编程一日通3(COMMTIMEOUTS DCB整理)
- acm省赛反省
- VS2005(VC8)编译Xalan-C_1_10_0(更好的方法)
- hdu 3369 robot 差分求多项式的和
- java环境变量配置
- 内部排序算法练习
- COMMTIMEOUTS主要用于串口超时参数设置
- Cadence SPB 中用PCB Editor中自制封装,但怎么才能使其和schematic中的元件的footprint想关联
- HDOJ-3065 AC自动机..题意大丈夫?
- jQuery事件之鼠标事件
- WINCE 音视频播放器
- JAVA 调用Web Service的方法
- android中listview的一些样式设置
- sql让null字段加1
- 申明与定义