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

📄 datastruct.h

📁 VC读取用XML描述的文件,该文件是用来记录设备参数的,程序将文件读取后并显示出设备机构
💻 H
字号:
#pragma once
#include "afxtempl.h"
#include "windows.h"
#define MAX_LEN 30			//定义测量点的表示符和单位的长度不超过30个字节
#define OUTPUT	1			//定义测量点的输出
#define INPUT	0			//定义测量点的输入
#define NONE	0			//定义无奇偶校验
#define ODD		1			//定义偶校验
#define EVEN	2			//定义奇校验


//用于记录测量点的数据类型
enum NODEDATATYPE{
					tpBYTE,
					tpCHAR,
					tpWORD,
					tpSHORT,
					tpDWORD,
					tpINT,
					tpFLOAT,
					tpDOUBLE
				 };
//定义测量点的数据类型		 
union NODEDATA
{
	BYTE nByte;
	char nChar;
	WORD nWord;
	short nShort;
	DWORD nDWord;
	int  nInt;
	float nFlaot;
	double nDouble;
};
//定义串口的结构
struct COMMUINFO
{
	BYTE nCommuID;					//串口号
	UINT nBaudRate;					//波特率
	BYTE nDataBit;					//数据位长度
	BYTE nParity;					//奇偶校验位
	BYTE nStopBit;					//停止位
	BYTE FlowCtr;					//流量控制,保留未使用
};
//定义每个测量点的结构
struct NODEINFO
{
	WORD nNodeID;					//测量点ID,保留未使用
	char strNodeName[MAX_LEN];		//测量点表示符,如Ia,Vc等
    char strNodeUnit[MAX_PATH];		//测量点单位,如A,V,W等
	bool nNodeIOType;				//测量点是输入还是输出
	NODEDATATYPE nNodeDataType;		//测量点的数据类型,正如前面定义的tpBYTE,tpWORD等
	NODEDATA nNodeData;				//测量点数据
};	
//定义测量点组,每个仪表有这样一个测量点组
typedef CArray<NODEINFO,NODEINFO&> *LPARRNODE;
//定义仪表结构
struct DEVICEINFO
{
	UINT nDeviceID;					//仪表ID号
	CString strDeviceName;			//仪表名称,由用户决定
	CString strDeviceType;			//仪表类型,由生产厂家决定
	LPARRNODE parrNode;				//仪表中的测量点组指针
};
//定义仪表组,每一个通道有这样一个仪表组
typedef CArray<DEVICEINFO,DEVICEINFO&> *LPARRDEVICE;
//定义通道结构
struct CHANNELSTRUCT
{
	CString strPortName;			//通道名称
	CString strDriverFile;			//通道所配置的驱动程序文件名
	COMMUINFO stcCommuInfo;			//通道的串口配置
	LPARRDEVICE parrDevice;			//通道中指向仪表组的指针
};
//定义通道指针,在一份配置文件中可能有多个通道
typedef struct CHANNELSTRUCT *LPCHANNELSTRUCT;

⌨️ 快捷键说明

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