VC++CSerialPort类的使用_第1页
VC++CSerialPort类的使用_第2页
VC++CSerialPort类的使用_第3页
VC++CSerialPort类的使用_第4页
VC++CSerialPort类的使用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VC CSerialPort 类的使用API 参考: 接口由两个类组成: CSerialException 、CSerialPort 。其成员函数和成员变量清 单如下:CSerialException:CSerialExceptionCSerialException:GetErrorMessageCSerialException:m_dwErrorCSerialPort:CSerialPortCSerialPort:CSerialPortCSerialPort:OpenCSerialPort:CloseCSerialPort:AttachCSerialPort:DetachCSerialPor

2、t:operator HANDLECSerialPort:IsOpenCSerialPort:DumpCSerialPort:ReadCSerialPort:ReadExCSerialPort:WriteCSerialPort:WriteExCSerialPort:TransmitCharCSerialPort:GetOverlappedResultCSerialPort:CancelIoCSerialPort:GetConfigCSerialPort:GetDefaultConfigCSerialPort:SetConfigCSerialPort:SetDefaultConfigCSeria

3、lPort:ClearBreakCSerialPort:SetBreakCSerialPort:ClearErrorCSerialPort:GetStatusCSerialPort:GetStateCSerialPort:SetStateCSerialPort:EscapeCSerialPort:ClearDTRCSerialPort:ClearRTSCSerialPort:SetDTRCSerialPort:SetRTSCSerialPort:SetXOFFCSerialPort:SetXONCSerialPort:GetPropertiesCSerialPort:GetModemStatu

4、sCSerialPort:SetTimeoutsCSerialPort:GetTimeoutsCSerialPort:Set0TimeoutCSerialP ort:SetOWriteTimeoutCSerialPort:SetOReadTimeoutCSerialP ort:SetMaskCSerialP ort:GetMaskCSerialPort:WaitEve ntCSerialP ort:FlushCSerialPort:PurgeCSerialP ort:Termi nateOutsta ndin gWritesCSerialP ort:Termi nateOutsta ndi n

5、gReadsCSerialPo rt:ClearWriteBufferCSerialP ort:ClearReadBufferCSerialPort:SetupCSerialP ort:On Completio nCSerialP ort:BytesWait ingCSerialPo rt:DataWait ingCSerialExcepti on:CSerialExcepti onCSerialExceptio n( DWORD dwError = 0);参数dwError导致异常的错误。注释当创建 CSerialExceptionThis对象时,此成员函数被调用。为了丢出 CSerialE

6、xception ,必须调用全程函数AfxThrowSerialException。如果调用时dwError使用缺省值,则内部则会调用 GetLastError。CSerialExcepti on:GetErrorMessagevirtual BOOL GetErrorMessage( LPTSTR lpszError, UINTnM axError,PUINTpnH elpCo ntext = NULL );CStri ng GetErrorMessage();返回值1) 如果函数调用成功,返回非零;否则,如果没有得到错误信息文本,则返回0。2) 表示错误的一个CStri ng参数lpszE

7、rror接收出错信息的缓冲指针。nMaxError缓冲能容纳的最大字符数,包括NULL终结符。pnHelpContext接收帮助上下文ID的UINT的地址,不返回ID。注释调用此成员函数获取有关出错信息。CSerialExceptio n:m_dwError注释导致异常错误。此错误值为一系统错误代码,类似WINERROR.H文件中的定义。Win32 的错误代码清单请参考Win32 SDK中的Error Codes。CSerialPo rt:CSerialPortCSerialPort();注释标准 C+ 类构造函数。在内部将成员变量置为缺省值。CSerialPort:CSerialPortvi

8、rtual CSerialPort();注释标准 C+ 类析构函数。它确保关闭打开的通讯端口。CSerialPort:Openvoid Open( int nPort, DWORD dwBaud = 9600, Parity parity = NoParity, BYTE DataBits =8, StopBits stopbits = OneStopBit, FlowControl fc = NoFlowControl, BOOL bOverlapped = FALSE);throw( CSerialException );参数nPort 拟打开的通讯端口。dwBaud 使用的波特率pari

9、ty 使用的校验位。取下列枚举值:enum ParityEvenParity,MarkParity,NoParity,OddParity,SpaceParity;Databits 使用的数据位。stopbits 使用的停止位。取下列枚举值:enum StopBitsOneStopBit,OnePointFiveStopBits,TwoStopBits;fc 使用的流控制方法。取下列枚举值:enum FlowControlNoFlowControl,CtsRtsFlowControl, CtsDtrFlowControl,DsrRtsFlowControl,DsrDtrFlowControl,

10、XonXoffFlowControl;bOverlapped TRUE 以重叠模式打开端口,否则为 FALSE 表示使用阻塞调用。 注释调用这个成员函数打开通讯端口。内部将使用 CreateFile 打开 comm 端口,然后根据函 数参数的说明用 SetState 对各种不同的 RS-232 进行设置。如果出错,则会丢出一个CSerialException 异常。CSerialP ort:CloseClose();注释必须与Open函数配对使用。关闭已经打开的通讯端口。CSerialPort:Attachvoid Attach(HANDLE hComm, BOOL bOverlapped =

11、 FALSE);参数hComm打开通讯端口的 SDK句柄。bOverlapped如果端口以重叠模式打开为TRUE,否则为 FALSE。注释允许将某个 CSerialPort实例捆绑到现存的SDK通讯端口句柄。该函数的行为类似于MFC 中 CWnd:Attach 函数。CSerialP ort:DetachHANDLE Detach();返回值SDK通讯端口句柄 HANDLE.注释必须与 Attach函数配对使用。该函数的行为类似于MFC中的CWnd:Detach函数。CSerialPo rt: operator HANDLEoperator HANDLE();返回值SDK通讯端口句柄 HAND

12、LE。注释使用此操作符获取通讯端口对应的句柄。用该句柄可以直接调用Windows APIs。CSerialPo rt: :lsOpe nBOOL IsOpe n() const返回值如果通讯端口处于打开状态则返回TRUE,否则返回 FALSE。CSerialP ort:Dumpvoid Dump(CDumpC on text& dc) const注释标准的MFC诊断支持函数。CSerialPo rt:Read ReadExDWORD Read(void* lpBuf, DWORD dwCou nt);BOOL Read(void* lpBuf, DWORD dwCount, OVERL

13、APPED& overlapped, DWORD* pBytesRead = NULL);void ReadEx(void* lpBuf, DWORD dwCou nt);throw( CSerialExcepti on );返回值1) 读取的字节数。2) 如果是重叠读取全同步完成返回TRUE,如果此操作是异步完成,则返回FALSE参数lpBuf 缓冲指针,从串口读取的数据将被缓冲到此地址。dwCount 指定从串口读取的字节数。overlapped 引用 OVERLAPPED 结构,如果端口以重叠模式打开, 则此为必须的参数。 pBytesRead 如果该值非空,则为存放所读字节数的

14、地址。注释这三个函数包装了 SDK 的 ReadFile 和 ReadFileEx ,第二个 Read 版本用于重叠模式。 CSerialPort:Write WriteExDWORD Write(const void* lpBuf, DWORD dwCount);BOOL Write(const void* lpBuf, DWORD dwCount, OVERLAPPED& overlapped, DWORD* pBytesWritten = NULL);void WriteEx(const void* lpBuf, DWORD dwCount);throw( CSerialExce

15、ption );返回值1) 所写的字节数2) 如果为完全同步的重叠写入则为TRUE ,如果操作以异步方式完成则为 FALSE 。参数lpBuf 该指针指向要写入串口的数据缓冲。dwCount 指定要写入串口的字节数overlapped 引用 OVERLAPPED 结构。如果以重得叠模式打开端口, 此参数是必须的。 pBytesWritten 如果该值非空,则为存放所写字节数的地址。注释这三个函数包装了 SDK 的 WriteFile 和 WriteFileEx ,第二个 Read 版本用于重叠模式。 CSerialPort:TransmitCharvoid TransmitChar(char

16、cChar) constthrow( CSerialException );注释对 TransmitCommChar SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:GetOverlappedResultvoid GetOverlappedResult(OVERLAPPED& overlapped, DWORD& dwBytesTransferred, BOOL bWait)throw( CSerialException );注释对 GetOverlappedResult SDK 函数进行简单打包。具体细节请参考 Win32 SDK

17、 文档。 CSerialPort:CancelIovoid CancelIo()throw( CSerialException );注释对 CancelIo SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。注意此函数 只能在 NT 4+或者 Windows 98+中使用。 Windows 95 中使用该类的 1.0版本将产生错误。 该 问题已在 CSerialPort 的 1.01 版本中更正。CSerialPort:GetConfigvoid GetConfig(COMMCONFIG& config)throw( CSerialException );注释对 Ge

18、tCommConfig SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。CSerialPort:GetDefaultConfigstatic void GetDefaultConfig(int nPort, COMMCONFIG& config) throw( CSerialException );注释对 GetDefaultCommConfig SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文 档。CSerialPort:SetConfigvoid SetConfig(COMMCONFIG& config) throw( CSerialEx

19、ception );注释对 SetCommConfig SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:SetDefaultConfigstatic void SetDefaultConfig(int nPort, COMMCONFIG& config) throw( CSerialException );注释对 SetDefaultCommConfig SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文 档。CSerialPort:ClearBreakvoid ClearBreak() throw( CSerialExcep

20、tion );注释对 ClearCommBreak SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:SetBreakvoid SetBreak() throw( CSerialException );注释对 SetCommBreak SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:ClearErrorvoid ClearError(DWORD& dwErrors)throw( CSerialException );注释对 ClearCommError SDK 函数进行简单打包。具体细节请参考Wi

21、n32 SDK 文档。CSerialPort:GetStatusvoid GetStatus(COMMSTA T& stat)throw( CSerialException );注释对 GetCommStatus SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:GetState void GetState(DCB& dcb) throw( CSerialException );注释对 GetCommState SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:SetStatevoid Se

22、tState(DCB& dcb)throw( CSerialException );注释对 SetCommState SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:Escapevoid Escape(DWORD dwFunc)throw( CSerialException );注释对 EscapeCommFunction SDK 函数进行简单打包。 具体细节请参考 Win32 SDK 文档。 CSerialPort:ClearDTRvoid ClearDTR() throw( CSerialException );注释用低于 DTR 行的

23、 CLRDTR 常量调用 Escape 函数。CSerialPort:ClearRTSvoid ClearRTS() throw( CSerialException );注释用低于 RTR 行的 CLRRTR 常量调用 Escape 函数。CSerialPort:SetDTRvoid SetDTR() throw( CSerialException );注释用发出 DTR 行的 SETDTR 常量调用 Escape 函数。CSerialPort:SetRTSvoid SetRTS() throw( CSerialException );注释用发出 RTR 行的 SETRTR 常量调用 Esca

24、pe 函数。CSerialPort:SetXOFFvoid SetXOFF()throw( CSerialException );注释使用 SETXOFF 常量调用 Escape 函数,该常量导致传送行为接收 XOFF 字符。 CSerialPort:SetXONvoid SetXON()throw( CSerialException );注释使用 SETXON 常量调用 Escape 函数,该常量导致传送行为接收 XON 字符。 CSerialPort:GetPropertiesvoid GetProperties(COMMPROP& properties) throw( CSeri

25、alException );注释对 GetCommProperties SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:GetModemStatusvoid GetModemStatus(DWORD& dwModemStatus)throw( CSerialException );注释对 GetCommModemStatus SDK 函数进行简单打包。 具体细节请参考 Win32 SDK 文档。 CSerialPort:SetTimeoutsvoid SetTimeouts(COMMTIMEOUTS& timeouts)throw(

26、 CSerialException );注释对 SetCommTimeouts SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:GetTimeoutsvoid GetTimeouts(COMMTIMEOUTS& timeouts)throw( CSerialException );注释对 GetCommTimeouts SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:Set0Timeoutvoid Set0Timeout()throw( CSerialException );注释将发送和接收的超

27、时配置为 0 。这样将导致写操作立即返回,读操作时不论接收缓冲 等待什么数据都返回,而不是等待指定的字节数到达后返回。CSerialPort:Set0WriteTimeoutvoid Set0WriteTimeout()throw( CSerialException );注释将发送的超时配置为 0 。这样将导致写操作立即返回。CSerialPort:Set0ReadTimeoutvoid Set0ReadTimeout()throw( CSerialException );注释将接收的超时配置为 0 。这样将导致读操作不论接收缓冲等待什么数据都返回,而不 是等待指定的字节数到达后返回。CSer

28、ialPort:SetMaskvoid SetMask(DWORD dwMask)throw( CSerialException );注释对 SetCommMask SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:GetMaskvoid GetMask(DWORD& dwMask)throw( CSerialException );注释对 GetCommMask SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:WaitEventvoid WaitEvent(DWORD& dwMask)B

29、OOL WaitEvent(DWORD& dwMask, OVERLAPPED& overlapped)throw( CSerialException );返回值如果为完全同步的重叠读操作则为TRUE ,如果操作是异步完成的则为 FALSE 。注释对 WaitCommEvent SDK 函数进行简单打包。第二个为重叠版本,它会立即返回,并 可在代码中手工重新设置 OVERLAPPED 结构 hEvent 成员以信号方式通知。 具体细节请参 考 Win32 SDK 文档。CSerialPort:Flushvoid Flush()throw( CSerialException );

30、 注释对 FlushFileBuffers SDK 函数进行简单打包。具体细节请参考 Win32 SDK 文档。 CSerialPort:Purgevoid Purge(DWORD dwFlags)throw( CSerialException ); 注释对 PurgeComm SDK 函数进行简单打包。具体细节请参考Win32 SDK 文档。CSerialPort:TerminateOutstandingWritesvoid TerminateOutstandingWrites()throw( CSerialException ); 注释用 PURGE_TXABORT 常量调用 Purge

31、函数,该常量终止所有将要进行的写操作并 立即返回,即便是正在进行的还没有完成的写操作。CSerialPort:TerminateOutstandingReadsvoid TerminateOutstandingReads()throw( CSerialException ); 注释用 PURGE_TXABORT 常量调用 Purge 函数, 该常量终止所有将要进行的读操作并立 即返回,即便是正在进行的还没有完成的读操作。CSerialPort:ClearWriteBuffervoid ClearWriteBuffer()throw( CSerialException ); 注释用 PURGE_TXCLEAR 常量调用 Purge 函数,该常量清除输出缓冲(如果设备驱动程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论