📄 d189.bmp.txt
字号:
时,Modem就处于联机模式,此时由计算机传送到Modem的信息都会通过电话线传递到另
一台计算机上。
CYsATModem类封装了主要的Modem的AT命令操作,其他类只需简单的调用
CYsATModem提供的接口就能实现Modem的AT命令操作。CYsATModem类涉及到串口操
作,为使读者更加清晰地了解串口操作的细节,我们没有使用MSComm控件,而是自己编
写了一个串口操作的类CYsComm。CYsATModem正是从CYsComm派生出来的。
6.2.1 CYsComm类
首先由ClassWizard生成一个通用类,即“Generic Class”。下面挑选一些难点程序,讲
解该类的关键开发过程。
1)在CYsComm.h头文件中添加宏定义。
#define TYPE_READ 1
#define TYPE_WRITE 0
/,定义串口事件
#define WM_YSCOMM_MESSAGE WM_USER+2998
//在输入中发现了一个中断
#define WM_EV__ BREAK WM_USER+2999
,,CTS (clear-to-send)信号发生状态改变
#defineWM_EV_CTS WM_EV BREAK+1
,/DSR(data-set-ready)信号发生状态改变
#define WM_EV_DSR WM_EV_B REAK+2
,,一个line-status错误发生,包括CE_FRAME, CE_OVERRUN, and CE RXPARITY
#define WM_EV_ERRWM_EV_BREAK+3
//拨号被侦测到
#defineWM_EV_RINGWM_EV_BREAK+4
//RLSD (receive-line-signal-detect)信号发生状态改变
#define WM_EV_RLSDWM_EV_B REAK+5
,/一个字符接收到并放入接收缓冲区
#define WM_EV_RXCHAR WM_EV_BREAK+6
//一个事件字符接收到并放入接收缓冲区
#define WM_EV- RXFLAGWM- EV .BREAK+7
,/发送缓冲区最后一个字符已发送
#defineWM_EV_TXEMPTY WM_EV__- BREAK+8
2)定义成员变量。
BOOL m _bSemiduplex; //半双工或全双工方式
HWND In_-hWnd;彬丑来接收消息的窗口
HANDLE m_hFileHandle; //存在comm句柄
HANDLEm_hStopReadEvent; //停止读线程函数句柄
HANDLE m_hStopWriteEvent; //停止写线程函数句柄
UINT m_nPort;,,端口号
3)构造函数CYsComm()。在其中添加初始化内容,主要是定义与串口相关的一些事件,
189
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -