⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialportbase.h

📁 serial port io rw wce w32
💻 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 + -