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

📄 slave104.h

📁 104规约从站库源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _SLAVE_104_
#define _SLAVE_104_
#include "Data_template.h"
class AFX_EXT_CLASS CSlave104:public CDataASDU
{
	public:
		CSlave104();
		~CSlave104();
		
		void Init_Linkpara(int t0=30,int t1=15,int t2=10,int t3=20,int k=12,int w=8);
		void Init_SockServerport(WORD port=2404);			// 1 or  2
		void Init_CauseOfTransfer_Size(int size=2);// 1 or 2
		void Init_InfoBodyAddr_Size(int size=3);// 1 2 or 3
		void Init_ASDU_Common_addr_size(int size=2);// 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_Sock_process(){};
		virtual void On_RecvMsg(_BYTE *msgbuf,_int len ){};//显示接收报文
		virtual void On_SendMsg(_BYTE *msgbuf,_int len){};//显示发送报文
		virtual void On_ErrorMsg(char *msgbuf){};


		void 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=1//  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=1//  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=1//  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=1//  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=1//  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=1//  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=1//  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 + -