介绍 FT_W32_SetCommTimeouts函数的用法、参数、返回值、注意事项、适用的操作系统环境、调用代码示例等。
支持的操作系统
Linux
Mac OS X 10.4 以上版本
Windows 2000 以上版本
Windows CE 4.2 以上版本
概述
FT_W32_SetCommTimeouts 函数设置I/O操作的超时时长。
定义
BOOL FT_W32_SetCommTimeouts (FT_HANDLE ftHandle, LPFTTIMEOUTS lpftTimeouts)
参数说明
ftHandle — 设备句柄。
lpftTimeouts — 指向 FTTIMEOUTS 结构体的指针,该结构体存储了超时信息配置。
返回值
成功则返回非零值;如果失败则返回0。
备注
超时值是利用 FTTIMEOUTS 结构体中的信息计算所得。
对于读请求,超时值=要读取的字节数*超时系数+超时常数;所以,如果 TS 为 FTTIMEOUTS 结构体变量,要读取的字节数为 dwToRead,读超时值 rdTO计算公式如下:
rdTO = (dwToRead * TS.ReadTotalTimeoutMultiplier) + TS.ReadTotalTimeoutConstant。
对于写请求,有类似的公式:
wrTO = (dwToWrite * TS.WriteTotalTimeoutMultiplier) + TS.WriteTotalTimeoutConstant。
目前,在 Linux 和 Mac OS X 平台下,ReadIntervalTimeout, ReadTotalTimeoutMultiplier and
WriteTotalTimeoutMultiplier忽略。
代码示例
FT_HANDLE ftHandle; // setup by FT_W32_CreateFile
FTTIMEOUTS ftTS;
ftTS.ReadIntervalTimeout = 0;
ftTS.ReadTotalTimeoutMultiplier = 0;
ftTS.ReadTotalTimeoutConstant = 100;
ftTS.WriteTotalTimeoutMultiplier = 0;
ftTS.WriteTotalTimeoutConstant = 200;
if (FT_W32_SetCommTimeouts(ftHandle,&ftTS))
; // FT_W32_SetCommTimeouts OKelse
; // FT_W32_SetCommTimeouts failed
暂无评论内容