Type COMMTIMEOUTS '串口超时参数设置
ReadIntervalTimeout As Long '以毫秒为单位指定通信线上两个字符到达之间的最大时间。
ReadTotalTimeoutMultiplier As Long '以毫秒为单位指定一个乘数,该乘数用来计算读操作的总限时时间。每个
'读操作的总限时时间等于读操作所需的字节数与该值的乘积。
ReadTotalTimeoutConstant As Long '以毫秒为单位指定一个常数,用于计算读操作的总限时时间。每个操作的
'&总限时时间等于ReadTotalTimeoutMultiplier成员乘以读操作所需字节数再加上该值的和
WriteTotalTimeoutMultiplier As Long '以毫秒为单位指定一个乘数,该乘数用来计算写操作的总限时时间。
WriteTotalTimeoutConstant As Long '以毫秒为单位指定一个常数,用于计算写操作的总限时时间。
End Type
Dim CtimeOut As COMMTIMEOUTS CtimeOut.ReadIntervalTimeout = 20
CtimeOut.ReadTotalTimeoutConstant = 1
CtimeOut.ReadTotalTimeoutMultiplier = 1
CtimeOut.WriteTotalTimeoutConstant = 10
CtimeOut.WriteTotalTimeoutMultiplier = 1
retval = SetCommTimeouts(ComNum, CtimeOut) '设置通信超时参数
不是这时间计算不是很懂,如上所述那么比如读8个字节需要多少时间,写8个字节需要多少时间呢?
请指点!!!
ReadIntervalTimeout As Long '以毫秒为单位指定通信线上两个字符到达之间的最大时间。
ReadTotalTimeoutMultiplier As Long '以毫秒为单位指定一个乘数,该乘数用来计算读操作的总限时时间。每个
'读操作的总限时时间等于读操作所需的字节数与该值的乘积。
ReadTotalTimeoutConstant As Long '以毫秒为单位指定一个常数,用于计算读操作的总限时时间。每个操作的
'&总限时时间等于ReadTotalTimeoutMultiplier成员乘以读操作所需字节数再加上该值的和
WriteTotalTimeoutMultiplier As Long '以毫秒为单位指定一个乘数,该乘数用来计算写操作的总限时时间。
WriteTotalTimeoutConstant As Long '以毫秒为单位指定一个常数,用于计算写操作的总限时时间。
End Type
Dim CtimeOut As COMMTIMEOUTS CtimeOut.ReadIntervalTimeout = 20
CtimeOut.ReadTotalTimeoutConstant = 1
CtimeOut.ReadTotalTimeoutMultiplier = 1
CtimeOut.WriteTotalTimeoutConstant = 10
CtimeOut.WriteTotalTimeoutMultiplier = 1
retval = SetCommTimeouts(ComNum, CtimeOut) '设置通信超时参数
不是这时间计算不是很懂,如上所述那么比如读8个字节需要多少时间,写8个字节需要多少时间呢?
请指点!!!
这是一个用API实现串口通信的代码,里面有关于超时的设置。
呵呵!想请教的是比如从串口读8个字节数据为例按照以上的的设置读的部总时间是不是CtimeOut.ReadTotalTimeoutConstant*8+CtimeOut.ReadTotalTimeoutMultiplier=9ms
写8个字节按照以上的的设置CtimeOut.WriteTotalTimeoutConstant*8+CtimeOut.WriteTotalTimeoutMultiplier=81?
CtimeOut.ReadTotalTimeoutConstant*8+CtimeOut.ReadTotalTimeoutMultiplier=9ms
就算超进
写8个字节按照以上的的设置超过CtimeOut.WriteTotalTimeoutConstant*8+CtimeOut.WriteTotalTimeoutMultiplier=81就算超时??