📄 serialportbase.h
字号:
// CSerialPortBase.h: interface for the CSerialPortBase class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SERIALPORTBASE_H__28BC6B5E_2C9A_4692_9671_31FBA771AB5E__INCLUDED_)
#define AFX_SERIALPORTBASE_H__28BC6B5E_2C9A_4692_9671_31FBA771AB5E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CSerialPortBase
{
public:
CSerialPortBase();
virtual ~CSerialPortBase();
// Thread manipulations
public:
DWORD StartThread( void );
void StopThread( void );
BOOL SetPortName(LPCTSTR strPortName);
private:
TCHAR m_strPortName[10];
BOOL m_bRunning;
HANDLE m_hThread;
unsigned int m_nThreadID;
HANDLE GetHandle( void ) { return m_hThread; }
unsigned int GetID( void ) { return m_nThreadID; }
BOOL IsRunning( void ) { return m_bRunning; }
BOOL IsThreadRunning( void ) { return m_hThread != INVALID_HANDLE_VALUE; }
static unsigned int _stdcall ThreadFunc( void* pArg );
unsigned int Run( void );
BOOL OnStartup( void );
void OnShutdown( void );
private:
HANDLE m_hSerialPort;
BOOL SerialPortOpen(LPCTSTR lpszPortName);
void SerialPortClose();
BOOL ConfigureTimeOuts();
BOOL ConfigurePort();
void EventLoop2();
private:
virtual void ProcessChar (TCHAR Byte);
public:
BOOL Write(LPCTSTR lpBuffer, DWORD nNumberOfBytesToWrite);
#if 0
void EventLoop();
virtual void OnCommEventRxChar(void); //#define EV_RXCHAR 0x0001 // Any Character received
virtual void OnCommEventRxFlag(void); //#define EV_RXFLAG 0x0002 // Received certain character
virtual void OnCommEventTxEmpty(void); //#define EV_TXEMPTY 0x0004 // Transmitt Queue Empty
virtual void OnCommEventCTS(void); //#define EV_CTS 0x0008 // CTS changed state
virtual void OnCommEventDSR(void); //#define EV_DSR 0x0010 // DSR changed state
virtual void OnCommEventRLSD(void); //#define EV_RLSD 0x0020 // RLSD changed state
virtual void OnCommEventBreak(void); //#define EV_BREAK 0x0040 // BREAK received
virtual void OnCommEventErr(void); //#define EV_ERR 0x0080 // Line status error occurred
virtual void OnCommEventRing(void); //#define EV_RING 0x0100 // Ring signal detected
virtual void OnCommEventPERR(void); //#define EV_PERR 0x0200 // Printer error occured
virtual void OnCommEventRx80Full(void); //#define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full
virtual void OnCommEventEvent1(void); //#define EV_EVENT1 0x0800 // Provider specific event 1
virtual void OnCommEventEvent2(void); //#define EV_EVENT2 0x1000 // Provider specific event 2
#endif
};
#endif // !defined(AFX_SERIALPORTBASE_H__28BC6B5E_2C9A_4692_9671_31FBA771AB5E__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -