?? datastruct.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 + -