?? portctl.h
字號:
// SerialCtl.h: interface for the SerialCtl class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SERIALCTL_H__EBE94BCF_8352_44EF_B11D_5DF017064C65__INCLUDED_)
#define AFX_SERIALCTL_H__EBE94BCF_8352_44EF_B11D_5DF017064C65__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxmt.h>
#define XON 0x11
#define XOFF 0x13
#define INBUF 409600
#define OUTBUF 409600
#define READBUFLEN 50
#define MAXNUM 409600
#define WM_SERIALGET WM_USER + 50
// 監聽串口線程
UINT hCommWatchPro(LPVOID pParam);
class AFX_CLASS_EXPORT SerialCtl
{
public:
SerialCtl();
// 打開通信串口
void OpenSerial();
// 關閉通信串口
void CloseSerial();
// 串口設置
void SetSerial(CString Com = "COM1", long Baud = 9600, int Data = 8, int End = 1, CString Parity = "NONE");
// 寫串口
BOOL WriteSerial(const BYTE * SendData, const DWORD SendLen);
// 讀串口
void ReadSerial(BYTE * resData, int * length);
// 讀串口2(針對IPC設計)
int ReadSerial2(BYTE * resData, int length);
// 清空串口緩沖區
void ClearSerialBuf();
// 監聽串口
void ListenSerial(long delayRead = 100, long circleTimeSpan = 100);
// 停止監聽串口
void StopListenSerial();
// 判斷串口是否打開
bool IsSerialOpen();
// 得到版本信息
CString GetVersion();
// 得到版本信息
float GetVer();
//
BOOL isCanSend();
// Attributes
public:
// 串口結構
struct SERIAL
{
char COM[10];
unsigned long BAUD;
unsigned int DATA;
unsigned int END;
unsigned char PARITY;
};
// Operations
public:
HANDLE hCom;
OVERLAPPED m_OverRead;
COMSTAT ComStat;
long DelayRead,
CircleTimeSpan;
long m_lParam; // 消息參數(如:CDM1000、ASM...)
private:
SERIAL Serial;
DCB dcb;
COMMCONFIG CommConfig;
OVERLAPPED m_OverWrite;
HANDLE hCommWatchThread;
BYTE Data[MAXNUM];
char strData[MAXNUM];
bool OPEN_FLAG;
};
#endif // !defined(AFX_SERIALCTL_H__EBE94BCF_8352_44EF_B11D_5DF017064C65__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -