📄 mutithreadserial.h
字号:
#if !defined(AFX_BIM10001_H__247217B6_8D3F_11D4_84B3_0050BF117318__INCLUDED_)
#define AFX_BIM10001_H__247217B6_8D3F_11D4_84B3_0050BF117318__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//#include"O231Com.h"
//#include "O231StructDef.h"
#define SUCCESS 0 //返回成功定义为0
#define COMM232GETDATAMAX 409600 //接收缓冲区 400K
#define COMM232SENDDATAMAX 102400 //发送缓冲区 100K
///////////////////////监视线程接收到字符的消息
#define WM_COMM232_COMMRECVNOTIFY WM_USER +100
///////////////////////231消息定义
#define WM_ACTIVE_TRANS WM_USER + 101 //主动上传
#define WM_SEND_AND_RETURN WM_USER + 102 //发送命令后的返回
class AFX_EXT_CLASS MutithreadSerial : public CWnd
{
public:
MutithreadSerial();
virtual ~MutithreadSerial();
public:
bool BeginComm();
bool InitComm(bool bDefault, int p_iCom, HWND p_hwnd);
volatile HANDLE hPostMsgEvent; //用于WM_COMMNOTIFY消息的事件对象
bool bCommRxSign; //Com读信号
bool bCommTxSign; //Com写信号
volatile HANDLE hCom; //端口句柄
volatile bool bCommConnected; //端口连接标志
void CloseComm();
bool Com1IsOpen;
bool Com2IsOpen;
DWORD WriteComm(unsigned char *buf, DWORD dwLength);
BYTE m_bReData[512];
private:
HWND m_hwnd231;
int m_iWhichCommand;
int m_iRevLen;
DWORD ReadComm(unsigned char *buf, DWORD dwLength);
bool m_bShakeHandFlag;
CWinThread *pThread; //辅助线程指针
volatile bool bCodeBusy; //辅助命令处理忙标志
volatile bool bCommOpenOk; //端口打开成功标志,t为成功
char sCommSendBuffer[COMM232SENDDATAMAX]; //发送缓冲区
char sCommGetBuffer[COMM232GETDATAMAX]; //接收缓冲区
char sCommGetBuffer2[COMM232GETDATAMAX]; //接收处理备用缓冲区
int iCommGetCounter; //接收数据计数器
int iCommGetCounter2; //备用接收数据计数器
OVERLAPPED osRead, osWrite; //用于重叠读/写
DWORD dwCommLength; //Com数据长度
DCB CommDcb; //串口状态描述字
bool bDataMode; //数据模式标志
protected:
HICON m_hIcon;
public:
bool ChangeBaud();
char cEndCode;
int iBaud;
void OnCommRecvNotify(WPARAM wParam, LPARAM lParam);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -