?? 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 + -