📄 serialport.h
字号:
#pragma once
#include "IbmsSerialPortApi.h"
#include <list>
using namespace std;
namespace IBMS
{
class CSerialPort;
class ISerialPortObserver
{
public:
virtual ~ISerialPortObserver(){}
virtual void OnSerialPortOpen(CSerialPort *pSerialPort)=0;
virtual void OnSerialPortClose(CSerialPort *pSerialPort)=0;
virtual void OnSerialPortSend(CSerialPort *pSerialPort, const byte *pData, size_t nDataLen)=0;
virtual void OnSerialPortReceive(CSerialPort *pSerialPort, byte *pData, size_t nDataLen)=0;
};
class CSerialPort
{
public:
CSerialPort(int nPort, int nRate =9600, StopBits stopbits = TwoStopBits,
Parity parity =NoParity, BYTE bDataByte =8, FlowControl fc = NoFlowControl);
virtual ~CSerialPort(void);
virtual void Open();
virtual void Close();
virtual void OnReceiveData(byte *pData, size_t nDataLen);
void Send(const byte *pData, size_t nDataLen);
int GetPort() const { return m_nPort;}
void SetPort(int newPort) { m_nPort = newPort; }
int GetRate() const { return m_nRate; }
void SetRate(int newRate) { m_nRate = newRate;}
StopBits GetStopBits() const { return m_stopbits;}
void SetStopBits(StopBits stopbits) { m_stopbits = stopbits; }
BYTE GetDataBits() const { return m_dataByte;}
void SetDataBits(BYTE dataBits){ m_dataByte = dataBits;}
Parity GetParity() const { return m_parity; }
void SetParity(Parity parity) { m_parity = parity;}
FlowControl GetFlowControl() const { return m_fc;}
void SetFlowControl(FlowControl fc) { m_fc = fc;}
void AtachPortObserver(ISerialPortObserver *pObserver);
void DetchProtObserver(ISerialPortObserver *pObserver);
string GetName() const ;
private:
static void OnReceiveData(LPVOID pSender, void *pData, DWORD nDataLen);
HANDLE m_hSerialPort;
int m_nPort;
int m_nRate;
StopBits m_stopbits;
Parity m_parity;
BYTE m_dataByte;
FlowControl m_fc;
typedef list<ISerialPortObserver *> PortObserverList;
PortObserverList m_portObservers;
};
bool operator==( const CSerialPort& left, const CSerialPort &right);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -