`
isiqi
  • 浏览: 16490107 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

COMMTIMEOUTS详解(转)

阅读更多

COMMTIMEOUTS 结构体被用在SetCommTimeoutsGetCommTimeouts 函数中,以便设置和查询通讯设备的超时参数。这个参数决定ReadFile, WriteFile, ReadFileEx, 和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超时.
分享到:
评论

相关推荐

    串口通信编程详解和实例

    使用 COMMCONFIG、COMMPROP、COMMTIMEOUTS、COMSTAT、DCB、MODEMDEVCAPS、MODEMSETTINGS 等结构体,实现串口通信的控制和监视。 三、串口通信实例 1. 实现串行通信的三种方法 方法一:使用 VC++ 提供的串行通信...

    win32 api串口通信详解

    本文将深入探讨“win32 API串口通信详解”,首先从串口编程的基础知识开始,然后详细介绍如何创建串口句柄并打开串口。** **一、串口编程简介** 串口通信基于RS-232标准,通常涉及两个主要部分:发送端和接收端。...

    Windows CE下的串口通信编程

    随着技术的发展,许多现代设备已经不再配备传统的串行端口(简称“串口”),转而采用更快速且稳定的接口,如USB或以太网接口。然而,在某些特定领域内,尤其是嵌入式系统中,基于Windows CE的操作系统仍旧广泛地...

    win ce的串口程序

    ### Win CE串口程序开发详解 #### 一、引言 在嵌入式系统开发领域,Windows CE(简称Win CE)作为一个重要的操作系统平台,被广泛应用于各种设备中,包括手持设备、工业控制器、车载导航系统等。对于这些设备而言...

    Win32下串口编程

    ### Win32下的串口编程知识点详解 #### 一、串口编程背景及重要性 在工业控制领域,特别是DCS系统(分布式控制系统)中,串行通信的应用非常普遍。随着Windows操作系统的普及,传统的DOS环境下的串口通信方法(如...

    Evc串口通信编程宝典

    ### EVC串口通信编程知识点详解 #### 一、串口通信基础知识 串口通信是一种常用的设备间数据传输方式,特别是在嵌入式系统开发中应用广泛。EVC(Embedded Visual C++)是一种针对Windows CE平台的开发工具,常用于...

    vc多线程下实现串口通讯

    ### VC多线程下实现串口通讯的知识点详解 #### 一、背景介绍与基础知识概述 在现代化的各种实时监控系统及通信系统中,利用VC++(Visual C++)对RS-232串行接口(简称串口)进行编程是非常常见的技术手段。尤其在...

    SCOMMV23串口调试助手源代码祥解 VC++串口编程 API串口编程

    - `COMMTIMEOUTS`结构体:设置串口读写超时策略。 - `SetCommMask`和`WaitCommEvent`:设置串口事件掩码并等待特定事件。 - `SetCommState`:设置串口的通信状态。 - `PurgeComm`:清除串口缓冲区中的数据。 - ...

    单片机串口接收超时参数设置

    此函数返回一个`COMMTIMEOUTS`结构体,包含以下字段: - **ReadIntervalTimeout**:读区间超时,表示读取两个字符之间的最大允许间隔时间。 - **ReadTotalTimeoutMultiplier**:读总超时因子,用于计算读取操作的总...

    VK3362_DS_CN_FV_V01.rar_串口编程_Visual_C++_

    《串口编程与Visual C++应用详解》 在IT领域,串口通信是设备间进行数据传输的一种常见方式,尤其在嵌入式系统和工业控制中广泛应用。本资料集主要围绕"串口编程"和"Visual C++"这两个关键概念展开,通过VK3362多...

    vc写的串口通信程序

    《VC实现串口通信程序详解》 在计算机通信领域,串口通信是一种常见的数据传输方式,尤其在嵌入式系统和设备控制中扮演着重要角色。本文将详细讲解如何使用Visual C++(简称VC)结合MFC(Microsoft Foundation ...

    用VC_实现多线程方式下的串行通信

    - **COMMTIMEOUTS**:设置通信超时参数。 - **COMSTAT**:表示串行通信的状态。 - **DCB**:定义串行通信的数据控制块。 - **MODEMSTATUS**:用于存储调制解调器状态信息。 ### 4. 实现步骤详解 #### 4.1 创建事件...

    Win32串口操作函数

    ### Win32串口操作函数详解 #### 一、串口通信概述 串口通信是一种在计算机设备之间进行数据传输的方式。它通过一系列定义好的协议和标准来确保数据的准确无误传输。在Windows操作系统中,可以利用Win32 API提供的...

    串口通讯程序

    《串口通讯程序详解——基于VC++的实现》 串口通讯是计算机通信技术中的一个重要领域,它在工业控制、数据采集、设备联网等方面有着广泛的应用。本篇将围绕“串口通讯程序”这一主题,结合给定的标签“VC”,深入...

    VC++串口编程

    ### VC++串口编程知识点详解 #### 一、VC++串口编程概述 在计算机通信领域,串口通信是一种常用的数据传输方式。本篇将详细介绍如何利用VC++进行串口编程,包括三种主要方法:使用VC++提供的MSComm控件、直接调用...

    chuankoutongxin.rar_c 串口

    《串口通信技术详解——基于C语言的实现》 串口通信是计算机通信领域中一种基本且重要的技术,尤其在嵌入式系统、工业控制、数据传输等方面有着广泛的应用。本文将围绕“chuankoutongxin.rar_c 串口”这一主题,...

    精彩编程与编程技巧-基 于Win95 的vb6 串 口 通 信 程 序...

    ### 基于Win95的VB6串口通信程序详解 #### 一、概述 在Windows 95操作系统上,使用Visual Basic (VB) 开发串口通信程序是一种常见需求,尤其是在工业控制、设备管理和数据采集等领域。本文将详细介绍如何使用VB5/6...

    com编程初始化代码

    ### COM编程初始化代码详解 #### 一、概述 在计算机通信领域中,COM(串行通信接口)是一种广泛使用的通信协议。它允许不同设备通过串行数据链路进行信息交换。在开发基于COM端口的应用程序时,初始化过程至关重要...

    精彩编程与编程技巧-基于Win95的vb6串口通信程序...

    ### 基于Win95的VB6串口通信程序详解 #### 一、概述 在Windows 95操作系统下,使用Visual Basic 5(以下简称VB5)进行开发时,可以利用其强大的功能来实现串口通信。串口通信是计算机科学中的一个重要组成部分,它...

    VC 串口编程

    ### VC 串口编程知识点详解 #### 一、概述 串口编程是在计算机与外部设备之间进行数据交换的重要手段之一,特别是在实验室环境和工业自动化领域中应用极为广泛。本篇文章将详细介绍如何使用Visual C++ 6.0进行串口...

Global site tag (gtag.js) - Google Analytics