📄 def.h
字号:
#ifndef _DEF_H_
#define _DEF_H_
//--------- BIT DEFINE ---------//
#define bit0 0x1
#define bit1 0x2
#define bit2 0x4
#define bit3 0x8
#define bit4 0x10
#define bit5 0x20
#define bit6 0x40
#define bit7 0x80
#define bit8 0x100
#define bit9 0x200
#define bit10 0x400
#define bit11 0x800
#define bit12 0x1000
#define bit13 0x2000
#define bit14 0x4000
#define bit15 0x8000
#define bit16 0x10000l
#define bit17 0x20000l
#define bit18 0x40000l
#define bit19 0x80000l
#define bit20 0x100000l
#define bit21 0x200000l
#define bit22 0x400000l
#define bit23 0x800000l
#define bit24 0x1000000l
#define bit25 0x2000000l
#define bit26 0x4000000l
#define bit27 0x8000000l
#define bit28 0x10000000l
#define bit29 0x20000000l
#define bit30 0x40000000l
#define bit31 0x80000000l
//define Max Number
#define CHANNELMAXNUM 64 // 最多通道数
#define PROTOMAXNUM 32 // 最多规约数
#define STATIONMAXNUM 64 // 最多站数
#define HARDWAREMAXNUM 4 // 硬件总数
//define Hardware Type for communication
#define CTKBOARD 0 // CTK板
#define STANDRS232 1 // 标准RS232串行口
#define MULTIRS232 2 // 多串口板
#define OTHERSIO 3 // 其它
//define Type of Display Window
#define WNDTYPEMAXNUM 12 // 窗口总数
#define RXBUFFWINDOW 0 // 串行接收缓冲区
#define TXBUFFWINDOW 1 // 串行发送缓冲区
#define CHSTATUSWINDOW 2 // 通道状态图
#define REALYXWINDOW 3 // 实时遥信
#define REALYCWINDOW 4 // 实时遥测
#define REALKWHWINDOW 5 // 实时电度
#define EVENTWINDOW 6 // 事项缓冲区
#define RECCMDWINDOW 7 // 网络接收命令区
#define RECDATAWINDOW 8 // 网络接收数据区
#define SENDCMDWINDOW 9 // 网络发送命令区
#define SENDDATAWINDOW 10 // 网络发送数据区
#define OTHERWINDOW 11 // 其它
//define
#define MULTISTANO 0xffff
#define ChOpen bit0 // 通道开启
#define ChInit bit1 // 通道初始化
#define SyncR bit2 // 收到同步字
#define CtrlW bit3 // 收到控制字
#define InforW bit4 // 收到信息字
#define CommBreakFlag bit5 // 通讯中断
#define CharInvFlag bit6 // 字符无效
#define NoSyncFlag bit7 // 失步
#define OnlySyncFlag bit8 // 只有同步字
#define ErrDataFlag bit9 // 误码率高
#define NoTxFlag bit10 // 空发
#define CommBreakFlag1 bit11 // 通讯中断
#define CharInvFlag1 bit12 // 字符无效
#define NoSyncFlag1 bit13 // 失步
#define OnlySyncFlag1 bit14 // 只有同步字
#define ErrDataFlag1 bit15 // 误码率高
#define NoTxFlag1 bit16 // 空发
//define Down Command Type to RTU
#define DCMDSST 1 // 向RTU对钟
#define DCMDYK0 2 // 遥控预置
#define DCMDYK1 3 // 遥控执行
#define DCMDYK2 4 // 遥控撤消
#define DCMDSJ0 5 // 升降选择
#define DCMDSJ1 6 // 升降执行
#define DCMDSJ2 7 // 升降撤消
#define DCMDGB 8 // 广播命令(冻结电度读数)
#define DCMDFG 9 // 复归命令
//------------------------------------------------------------
// 下行命令缓冲区字节定义
// 1. 向 RTU 对钟
/*
Cmd[0] = DCMDSST;
Cmd[1] = RTU序号低字节;
Cmd[2] = RTU序号高字节;
*/
// 2. 遥控预置 3. 遥控执行 4. 遥控撤消
/*
Cmd[0] = DCMDYK0 / DCMDYK1 / DCMDYK2;
Cmd[1] = RTU序号低字节;
Cmd[2] = RTU序号高字节;
Cmd[3] = 遥控序号低字节;
Cmd[4] = 遥控序号高字节;
Cmd[5] = 遥控状态 (合0xcc/分0x33);
*/
// 5. 升降选择 6. 升降执行 7. 升降撤消
/*
Cmd[0] = DCMDSJ0 / DCMDSJ1 / DCMDSJ2;
Cmd[1] = RTU序号低字节;
Cmd[2] = RTU序号高字节;
Cmd[3] = 升降序号低字节;
Cmd[4] = 升降序号高字节;
Cmd[5] = 性质 (升0xcc/降0x33);
*/
// 8. 广播命令
/*
Cmd[0] = DCMDGB;
*/
// 9. 复归命令
/*
Cmd[0] = DCMDFG;
Cmd[1] = RTU序号低字节;
Cmd[2] = RTU序号高字节;
*/
typedef struct
{
BYTE HiBaud; //波特率高位
BYTE LoBaud; //波特率低位
WORD SyncWord; //同步字
BYTE MultiUse; //信道复用
BYTE StopBits; //停止位
BYTE Datas; //数据位
BYTE Verafys; //校验位
BYTE HiFreqTURE; //“1”频高位
BYTE LoFreqTURE; //“1”频低位
BYTE HiFreqFALSE; //“0”频高位
BYTE LoFreqFALSE; //“0”频低位
BYTE RadioDelay; //无线通讯电台延时
BYTE CommType; //通讯方式(同步0,异步非0)
BYTE CommMode; //通讯模式(有线0,无线1)
BYTE ModemStatus;
}COMMPARAMESSAGE;
//------------------------------------------------------------
typedef struct{
WORD CommBreakNum; //通讯中断计数(写指针不变)
WORD InvalidCharNum; //字符无效计数(硬件读状态不正确,数据无法读出)
WORD NoSyncNum; //失步(找不到同步字)计数
WORD OnlySyncNum; //只有同步字计数
WORD ErrDataNum; //误码率计数
WORD NoTxNum; //空发(有发送任务,但硬件发状态不正确无法发送)
LONG CHErr;
float ErrRate;
LONG CHWorkTime;
LONG CHStopTime;
}RUNFLAG;
typedef struct {
BYTE CHValidFlag;
BYTE CHCheckFlag;
BYTE CHType;
BYTE SIOOrd;
BYTE ChNoInComm;
COMMPARAMESSAGE TczPara;
WORD StaNo;
WORD DownCmdSta;
LONG CHStatus;
LONG CHProcessFlag;
HGLOBAL hChRxBuff;
BYTE FAR *RecBuff;
WORD RxBuffLen;
WORD RxReadP;
WORD RxWriteP;
HGLOBAL hChTxBuff;
BYTE FAR *SendBuff;
WORD TxBuffLen;
WORD TxReadP;
WORD TxWriteP;
BYTE SyncWord[2];
WORD READTONETP;
// WORD WRITETONETP;
WORD CommBreakNum; //通讯中断计数(写指针不变)
WORD InvalidCharNum; //字符无效计数(硬件读状态不正确,数据无法读出)
WORD NoSyncNum; //失步(找不到同步字)计数
WORD OnlySyncNum; //只有同步字计数
WORD ErrDataNum; //误码率计数
WORD NoTxNum; //空发(有发送任务,但硬件发状态不正确无法发送)
LONG CHErr;
float ErrRate;
LONG CHWorkTime;
LONG CHStopTime;
char yktemp[6];
BYTE MultiStation;
BYTE PolCdt;
WORD ChangFlag;
char Reserved[256];
} CHANNELPARAM;
typedef struct {
char Cmd[16];
} DOWNCMD;
typedef struct
{
WORD ORDER;
BYTE DATE;
BYTE TIME;
BYTE MINUTE;
BYTE SECOND;
BYTE MSH;
BYTE MSL;
BYTE STATUS;
} TEMPSOE;
typedef struct {
BYTE CurrUsedCh;
BYTE RotateFlag;
BYTE ProtoType;
char BackCh[4];
BYTE SetClockTimer;
DOWNCMD DownCmd[4];
BYTE DownCmdRP; //下行命令读指针
BYTE DownCmdWP; //下行命令写指针
BYTE SoeNum;
BYTE DataToHost;
BYTE STATIONNO; //Polling 站号
// BYTE Poll; //Polling 规约任务计数
// WORD PollOver; //Polling 规约超时
// BYTE RANDOM[3]; //Polling 规约的初始化
WORD DeadValue;
BYTE SLOT[16];
BYTE RTUSTATUS;
BYTE YCNUM;
BYTE YXNUM;
BYTE KWHNUM;
BYTE KZNUM;
BYTE YCB[16];//polling
BYTE YXB[16];//polling
BYTE KWHB[16];//polling
TEMPSOE Soe[1];
// BYTE TIME;
DWORD TIMES; //RTU当前时间
WORD TIMEM;
BYTE HOUR;
BYTE MIN;
BYTE SEC;
BYTE MS;
// BYTE PAFFLAG;
// DWORD KwhCount;
BYTE SwitchNo;
WORD YKMESSAGE;
BYTE LastCode;
BYTE LastCodeType;
BYTE LastDataType;
BYTE KwhDealFlag;
BYTE RepeatTimes;//for polling
BYTE ConStartBoard;//for polling
BYTE Interval;//for polling 5~200
BYTE PollCdt;//for polling 监听
WORD ProcCount;//=Interval*10;polling
} STATIONPARAM;
typedef struct
{
BYTE COMMBAUD;
BYTE Used;
BYTE CHANEL1; //本串行口对应的第一通道
BYTE CHANEL2; //本串行口对应的第二通道
}COMMPARA;
#ifdef __cplusplus
extern "C" {
int FAR PASCAL RxProc(HWND, WORD, CHANNELPARAM FAR *, STATIONPARAM FAR *);
int FAR PASCAL TxProc(HWND, CHANNELPARAM FAR *, STATIONPARAM FAR *,int);
};
#endif
typedef int (FAR PASCAL *RXPROC)(HWND, WORD, CHANNELPARAM FAR *, STATIONPARAM FAR *);
typedef int (FAR PASCAL *TXPROC)(HWND, CHANNELPARAM FAR *, STATIONPARAM FAR *,int);
typedef struct {
HINSTANCE hDLLInst;
RXPROC RxProc;
TXPROC TxProc;
char ProtoName[32];
char DllName[32];
} PROTOCAL;
typedef struct {
BYTE SIONum; //SIO口数目
BYTE DataRSIrqNo;
WORD IntTimer1;
BYTE DataProcIrqNo;
WORD IntTimer2;
WORD BaudRate[64];
WORD SIOWriteReg[64][8];
BYTE StopDataBits[64];
} CTKSIO;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -