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

📄 serialport.h

📁 用VC++实现在PC平台的主从蓝牙HCI层数据传输
💻 H
字号:
#pragma once
#include <windows.h>
#include "baseport.h"

#define		SP_OK	0

class CSerialPort : public CBasePort
{
public:
	CSerialPort(void);
	~CSerialPort(void);
	
	// property inquire
	BOOL	IsOpen(void);

	// port process
	BOOL	Open(DWORD dwComPort,DWORD dwBaudrate,BYTE bByteBits,BYTE bStopBits,BYTE bParity);
	BOOL	Close(void);

	// set port property	
	BOOL	SetupConnect();
	void	SetDCB(DWORD dwBaudrate,BYTE bByteBits,BYTE bStopBits,BYTE bParity);
	void	SetDCB(DCB* pDcb = NULL);
	void	SetTimeouts(COMMTIMEOUTS* pCommTimeouts = NULL);
	void	SetFlowControl(DWORD dwDtrControl,DWORD dwRtsControl,
							BOOL fOutCtsFlow,BOOL fOutDsrFlow,							
							BOOL fOutX,BOOL fInX,char cXonChar,char cXoffChar);

	// communication
	BOOL	PortOutput(BYTE* pData,UINT uLen);
	BOOL	PortInput(BYTE* pData,UINT& uLen);

	// interface of device
	BOOL	Send(BYTE* pData,UINT uLen);
	UINT	GetReceivedLenght();
	BOOL	Receive(BYTE* pData,UINT& uLen,DWORD dwMilliSecond);
	BOOL	Receive(BYTE* pData,UINT& uLen);

	// thread of watch input port
	static  DWORD WINAPI WatchThreadProc(PVOID pParam);
public:
	HANDLE				m_hComm;
//	HANDLE				m_hWriteThread;
	HANDLE				m_hWatchThread;

	BOOL				m_fOpen;

	DCB					m_Dcb;
	COMMTIMEOUTS		m_CommTimeouts;

	CRITICAL_SECTION	m_CriticalSection;	
	OVERLAPPED			m_osWrite;	
	OVERLAPPED			m_osRead;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -