comstatus.h

来自「和基恩士对接的串口程序」· C头文件 代码 · 共 76 行

H
76
字号
#if !defined(_COMM_ACCESS_FUNCTIONS_AND_DATA)
#define _COMM_ACCESS_FUNCTIONS_AND_DATA

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define EVENTCHAR               0x0d
#define MAXBLOCKLENGTH          59//130


// Flow control flags以下是一些流控制标志 

#define FC_DTRDSR       0x01
#define FC_RTSCTS       0x02
#define FC_XONXOFF      0x04


// ascii definitions // ascii  码的定义

#define ASCII_XON       0x11
#define ASCII_XOFF      0x13

class CComStatus
{
public:
	BOOL AutoZero(int outID=1);
	int ReadCommBlock(LPSTR lpszBlock, int nMaxLength );
	BOOL WriteCommBlock(LPSTR lpByte,DWORD dwBytesToWrite );
	float ReadOutValue(int outID=1);

	BOOL InitialCom();
	char HexChar(char c);
	int Str2Hex(CString str, char *data);
	//串口共用句柄
	HANDLE m_hCom;
	BYTE m_bComId;

	//串口的一些配置参数
	BYTE m_bByteSize;
	BYTE m_bStopBits;
	BYTE m_bParity;
	DWORD m_dwBaudRate;
	char m_bEvtChar;
	DWORD m_fBinary;

	//当前的一些状态信息
	BOOL m_bConnected;
	BOOL m_fXonXoff;
	BOOL m_bFlowCtrl;

	//重叠读写
	OVERLAPPED	m_rdos;
	OVERLAPPED  m_wtos;

	

	CComStatus();
	void Set(BYTE bComId=1,BYTE bByteSize=8,BYTE bStopBits=ONESTOPBIT,BYTE bParity=NOPARITY,DWORD dwBaudRate=9600,char bEvtChar=EVENTCHAR,DWORD fBinary=1);
	BOOL OpenConnection();   //打开串口
	BOOL CloseConnection();  //关闭串口
	BOOL SetupConnection();  //设置串口参数
	BOOL IsConnected();      //串口是否打开


  }; 
/******************************************************
GLOBAL FUNCTIONS
******************************************************/
//全局函数
//写串口数据函数
BOOL WriteCommBlock( CComStatus& comDev, LPSTR lpByte , DWORD dwBytesToWrite);
//读串口数据函数
int ReadCommBlock(CComStatus& comDev,LPSTR lpszBlock, int nMaxLength );

#endif

⌨️ 快捷键说明

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