| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | /************************************************************************//*  Copyright (C), 2016-2020, [Home], 保留所有权利;/*  模 块 名:同步串口模块;/*  描    述:;/*/*  版    本:[V];/*  作    者:[Home];/*  日    期:[12/20/2017];/*/*/*  注    意:;/*/*  修改记录:[Home];/*  修改日期:;/*  修改版本:;/*  修改内容:;/************************************************************************/#ifndef __SYN_SERIAL__#define __SYN_SERIAL__#pragma once#define MAX_PORT_LEN 10class CSynSerial{public:	CSynSerial(void);	virtual ~CSynSerial(void);private:	DCB		m_dcb;	HANDLE	m_hSerialPort;	COMMTIMEOUTS	m_cts;	// 串口号(1~255);	TCHAR	m_szSerialPort[MAX_PORT_LEN];	// 输入缓存大小(byte);	DWORD	m_dwInQueue;	// 输出缓存大小(byte);	DWORD	m_dwOutQueue;public:	inline BOOL IsOpen() const {		return (m_hSerialPort == NULL || m_hSerialPort == INVALID_HANDLE_VALUE) ? FALSE : TRUE;	}	// 打开串口;	BOOL OpenSerialPort(		IN CONST BYTE& byCommPort,		// 串口号;		IN CONST DWORD& dwBaudRate,		// 波特率;		IN CONST BYTE& bySize,			// 数据位;		IN CONST BYTE& byParity,		// 校验位;		IN CONST BYTE& byStopBits,		// 停止位;		IN CONST BYTE& byStartAddr,		// 起始地址;		IN CONST INT& nInterval			// 间隔时间;	);	// 重装打开串口;	BOOL ReOpenSerialPort();	// 关闭串口;	void CloseSerialPort();	// 设置串口参数;	BOOL SetSerialPort(		IN CONST DWORD& dwBaudRate,		// 波特率;		IN CONST BYTE& byByteSize,		// 数据位;		IN CONST BYTE& byParity,		// 校验位;		IN CONST BYTE& byStopBits,		// 停止位;		IN CONST BYTE& byStartAddr,		// 起始地址;		IN CONST DWORD& dwInQueue,		// 输入缓存;		IN CONST DWORD& dwOutQueue		// 输出缓存;		);	// 设置dcb参数;	void SetSerialDCB(IN CONST DCB &dcb);	// 设置commtimeouts参数;	void SetSerialCommTimeouts(IN CONST COMMTIMEOUTS &commTimeouts);	virtual DWORD WriteComm(IN BYTE *pWirteBuf, IN CONST INT32 nWriteSize);	virtual DWORD ReadComm(IN BYTE *pReadBuf, IN CONST DWORD& nReadSize);};#endif // __SYN_SERIAL__
 |