?? datatype.h
字號:
#ifndef __DATATYPE_H__
#define __DATATYPE_H__
/////////Device Type////////////////////
#define SERIAL_DEV_TYPE 0x00
#define BOARD_DEV_TYPE 0x01
#define RX_QUEU 1024
#define TX_QUEU 512
#define MAX_SEND_BYTES 0x180 //384
#define MAX_PACKET_NUMER 512 //包隊列中能支持的最大包數目
#define RM_FLAG 0
#define RM_CHAR 1
#define COM_PRO 3475
#define VERSION1 1023
#define TIME_INTERVAL 10
//Packet Type
#define PT_READ 0
#define PT_WRITE 1
/*
#define MAX_FLOAT 9999999999.00
#define MIN_FLOAT 0.000000001
#define MAX_STRING_LEN 80 //DDE傳輸中所支持的最大字符串長度.
*/
////MACRO of character.
/*
#define NUL 0x00
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define ACK 0x06
#define DLE 0x10
#define NAK 0x15
*/
//MACRO of datatype.
#define FLOAT_TYPE 1
#define LONG_TYPE 2
#define STRING_TYPE 3
#define DISC_TYPE 4
//Macro of Datatype in device //Old Unsurpport in Later version.
//#define DEV_BIT_TYPE 0
//#define DEV_INT_TYPE 1
//#define DEV_LONG_TYPE 2
//#define DEV_FLOAT_TYPE 3
////MACRO of character.
/*#define NUL 0x00
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define ACK 0x06
#define DLE 0x10
#define NAK 0x15
*/
//AD filter mode
#define FILTER_NO 0
typedef ATOM STR;
union DDEValue
{
long lValue;
float fValue;
BOOL bValue;
//char c[4];
STR sValue;
};
union PlcValue
{
BOOL bitVal;
BYTE byteVal;
short intVal;
UINT uintVal;
WORD bcdVal;
long longVal;
float floatVal;
DWORD longbcdVal;
STR strVal;
} vv;
#define BIT_DATATYPE 0x01
#define BYTE_DATATYPE 0x02
#define INT_DATATYPE 0x04
#define UINT_DATATYPE 0x08
#define BCD_DATATYPE 0x10
#define LONG_DATATYPE 0x20
#define LONGBCD_DATATYPE 0x40
#define FLOAT_DATATYPE 0x80
#define STRING_DATATYPE 0x100
typedef struct
{
int nFlag[2];//驅動程序配置文件特征字
char sComment[8];//簡短說明
int nVersion[2];//版本號
int nVarNum; //變量數
int nCommConfig;//是否記錄串口配置
int reserved[24];//預留48字節
}CFG_FILE_HEAD;
#define COMM_CONFIG_OFFSET 256 //Config Part1 offset. ----- Store Comm Config.
#define VAR_CONFIG_OFFSET 512 //Config Part2 offset. ----- Store Var Config.
typedef struct
{
char szDevName[32];//設備名稱
char szRegister[128];
short nDataType;
// short nFrequency;
short nAccessMode;
short reserved[2];
}MiniDbItem;
typedef MiniDbItem MINIDBITEM;
struct CommConfig
{
BYTE bId;
UINT nBaudRate;
BYTE bByteSize;
BYTE bStopBits;
BYTE bParity;
char evtChr;
WORD wRxMode;
UINT nTimeOut;
WORD reserved[5];
};
typedef CommConfig COMM_CONFIG;
struct ComDevice//size: 54
{
short nFlag;//為1,表示此位置有串口,為-1,無。
WORD deviceKind;//此值為1,表示串行設備
char deviceName[32];//邏輯名稱=={COM1,COM2...}
int baudRate;//波特率
short dataBits;//數據位
short stopBits;//停止位
short parity;//校驗方式
short timeOut;//超時
short failTimes;//失敗次數
short retryInterval;//嘗試恢復間隔
short isRs232;//是RS232通訊還是RS485
};//Wang Mingyu Added in 98/10/12.
typedef struct CommData
{
char szProtocolName[16];//該串口的協議名
CLSID clsidProtocol; //該串口的協議ID
IUnknown *pComProtocol;
CPtrList PacketList; //包隊列
}COMM_DATA;
#define MAX_DEV_LEN 64
typedef struct _DevAddr
{
UINT nDevAddr;
char sDevAddr[MAX_DEV_LEN];
}DEVADDR, * PDEVADDR;
typedef struct Device
{
char szDevName[32];
char szDevAddr[32];
DEVADDR devAddress;
int nCommId;
int nFailTime;
BOOL bBad;
UINT nTimerCount;
}DEVICE, * PDEVICE;
typedef struct var
{
WORD wVarID; // 組態王中變量ID
WORD wVarType; // 組態王變量類型
char szVarName[32]; // 組態王變量名稱
short nDeviceIndex; // PLC索引
short nUnitNo; // PLC地址
DEVADDR *pDevAddr; // 設備地址指針,新添內容
char *pszRegName; //寄存器名稱
short nRegType; // 寄存器類型
short nSubType; // 類型子碼
short nSubType1;
short nSubType2; // 類型子碼2
short nNo; // 地址
short nDataType; // 數據類型
short nAccessMode; // I/O Mode.
long nFrequency; // 采樣頻率(基頻的倍數)
long nTimerCount; // 采樣計數器
CWinThread* pComThread; // 該變量所在的線程
DDEValue maxRaw; // 最大原始值
DDEValue minRaw; // 最小原始值
short bConvertion; // 轉換方式
short isBad; //設備壞
short isUnvalid; //變量無效
// WORD unused[2]; //no used
}PLCVAR;
typedef PLCVAR * PPLCVAR;
typedef unsigned short USHO;
#define PS_SOP 0x0000
#define PS_EOP 0x8000
//協議處理核心
typedef struct Packet
{
short nDeviceIndex; //-----------//
short nUnitNo; // 設備地址 |
DEVADDR * pDevAddr; // 設備地址指針, 新添內容
char * pszDevName; // 設備名稱 //
char *pszRegName; //寄存器名稱
short nRegType; // 類型碼
short nSubType; // 子類型碼
short nSubType1;
short nSubType2; // 子類型碼(附加)
int nStartNo; // 起始偏移量
int nEndNo; // 結束偏移量
short nPacketType; // Read, write, something else.
//WORD wState; // Packet state.
CPtrList varList; // store 'struct id_no'
}PACKET;
typedef PACKET * PPACKET;
typedef struct IdNo
{
WORD wVarId;
// WORD wVarType;
WORD wNo;
WORD wDataType;
BYTE Special[4];
PlcValue plcValue;
}ID_NO;
//////////////////////////
typedef struct reginfo
{
char sRegName[8];//寄存器名
int nLowIndex;
int nUpperIndex;
WORD wDataType;//所支持的基本數據類型
int nData;
}REG_INFO;
#define MAX_REG_NUM 256
//////////////////////////
//used for COM
#define RF_BAD_REGISTER 1
#define RF_NO_OVERFLOW_LOW 2
#define RF_NO_OVERFLOW_HIGH 3
#define RF_INVALID_DATATYPE 0x8001
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -