📄 slave101.h
字号:
#ifndef _SLAVE_101_
#define _SLAVE_101_
#include "Data_template.h"
class AFX_EXT_CLASS CSlave101:public CDataASDU
{
public:
CSlave101();
~CSlave101();
bool Init_SerialComm(char * comm,int baudrate=1200);
void Init_LinkAddr_size(int size=1); // 1 or 2
void Init_LinkAddr(WORD addr=1); // 1 or 2
void Init_framesize(int size=246); //设置帧长 size<=246
void Init_CauseOfTransfer_Size(int size=1);// 1 or 2
void Init_InfoBodyAddr_Size(int size=2);// 1 2 or 3
void Init_ASDU_Common_addr_size(int size=1);// 1 or 2
void Init_ASDU_Common_addr(WORD Common_addr=1);
void Init_Backgroundperiod(int seconds=300);
virtual void On_init_ASDU_process(){};
virtual void On_init_Link_process(){};
virtual void On_init_Serial_process(){};
virtual void On_RecvMsg(_BYTE *msgbuf,_int len ){};//显示接收报文
virtual void On_SendMsg(_BYTE *msgbuf,_int len){};//显示发送报文
bool slave_start();
void slave_close();//
/*////////////////////////////////////////////////////////////////////////////////
*
* 单点信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_SP_create(
int data_counts=512,// data_counts <=1024
DWORD addr_low=0x0001,
DWORD addr_high=0x0200,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_SP_setgroup(int index,BYTE group=1);
void init_SP_enable(bool enable=1);
//255:means invalidate, IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_SP_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255);
void slave_SP_SetData(int index,//based on 0
BYTE value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 双点信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_DP_create(
int data_counts=512,// data_counts <=1024
DWORD addr_low=0x0201,
DWORD addr_high=0x0400,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_DP_setgroup(int index,BYTE group=2);
void init_DP_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_DP_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255);
void slave_DP_SetData(int index,//based on 0
BYTE value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 步位置信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_ST_create(
int data_counts=16,// data_counts <=1024
DWORD addr_low=0x6601,
DWORD addr_high=0x6700,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_ST_setgroup(int index,BYTE group=15);
void init_ST_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_ST_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255,BYTE OV=255);
void slave_ST_SetData(int index,//based on 0
char value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 比特串信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_BO_create(
int data_counts=16,// data_counts <=1024
DWORD addr_low=0x6701,
DWORD addr_high=0x6800,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_BO_setgroup(int index,BYTE group=3);
void init_BO_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_BO_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255,BYTE OV=255);
void slave_BO_SetData(int index,//based on 0
DWORD value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 状态检出信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_PS_create(
int data_counts=64,// data_counts <=1024
DWORD addr_low=0x0401,
DWORD addr_high=0x0800
);
void init_PS_setgroup(int index,BYTE group=4);
void init_PS_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_PS_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255,BYTE OV=255);
void slave_PS_SetData(int index,//based on 0
WORD value);
/*////////////////////////////////////////////////////////////////////////////////
*
* 规一化遥测信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_ME_NA_create(
int data_counts=512,// data_counts <=1024
DWORD addr_low=0x4001,
DWORD addr_high=0x4200,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_ME_NA_setgroup(int index, BYTE group=9, BYTE cycle=0,float coef=1.0);
void slave_ME_NA_setDeadband(int index,WORD dead);
WORD slave_ME_NA_getDeadband(int index);
void init_ME_NA_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_ME_NA_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255,BYTE OV=255);
void slave_ME_NA_SetData(int index,//based on 0
WORD value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 标度化遥测信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_ME_NB_create(
int data_counts=512,// data_counts <=1024
DWORD addr_low=0x4201,
DWORD addr_high=0x4400,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_ME_NB_setgroup(int index, BYTE group=10, BYTE cycle=0,float coef=1.0);
void slave_ME_NB_setDeadband(int index,WORD dead);
WORD slave_ME_NB_getDeadband(int index);
void init_ME_NB_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_ME_NB_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255,BYTE OV=255);
void slave_ME_NB_SetData(int index,//based on 0
WORD value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 短浮点遥测信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_ME_NC_create(
int data_counts=512,// data_counts <=1024
DWORD addr_low=0x4401,
DWORD addr_high=0x4600,
BYTE timestamp=0// 0: 3bytes timestamp, 1: 7bytes timestamp
);
void init_ME_NC_setgroup(int index, BYTE group=11, BYTE cycle=0,float coef=1.0);
void slave_ME_NC_setDeadband(int index,float dead);
float slave_ME_NC_getDeadband(int index);
void init_ME_NC_enable(bool enable=1);
//255:means invalidate IV: 0有效/1无效 NT:0当前值/1非当前 SB:0未取代/1被取代 BL:0未被闭锁/1闭锁 OV:1溢出/ 0:不溢出
void slave_ME_NC_SetQuality(int index,BYTE IV=255,BYTE NT=255,BYTE SB=255,BYTE BL=255,BYTE OV=255);
void slave_ME_NC_SetData(int index,//based on 0
float value,SYSTEMTIME *timetag=NULL);
/*////////////////////////////////////////////////////////////////////////////////
*
* 不带品质描述遥测信息服务
*
*
////////////////////////////////////////////////////////////////////////////*/
void init_ME_ND_create(
int data_counts=512,// data_counts <=1024
DWORD addr_low=0x4601,
DWORD addr_high=0x4800
);
void init_ME_ND_setgroup(int index, BYTE group=12, BYTE cycle=0,float coef=1.0);
void slave_ME_ND_setDeadband(int index,WORD dead);
WORD slave_ME_ND_getDeadband(int index);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -