event.c

来自「包括EPA协议栈」· C语言 代码 · 共 175 行

C
175
字号
#include "tcpip.h"
#define EVENT_GLOBALS
#include "epa.h"
#undef EVENT_GLOBALS
#include <string.h>

void Event_Noti_Output(uint16 dst_app, uint16 src_app, uint16 src_obj, uint16 event_num, OctetString data, uint16 len, uint32 dst_ip) {
	PSock psock;
	
	psock = GetSock(PROTOCOL_EPA_FB, LEN_EVENT_NOTI(len), EPA_PORT, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);
	h2n16(src_app, psock->payload + 2);
	h2n16(src_obj, psock->payload + 4);
	h2n16(event_num, psock->payload + 6);
	memcpy(psock->payload + 8, data, len);
    
	EPAOutput(psock, EES_EVENT_NOTI, EPA_COM_TYPE, EPA_MSG_ID);
}

void Event_Noti_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 src_app, src_obj, event_num;
	uint32 src_ip;
	
	src_ip = psock->src_ip;
	n2h16(psock->payload + 2,&src_app);
	n2h16(psock->payload + 4,&src_obj);
	n2h16(psock->payload + 6,&event_num);
	PutSock(psock);
	 
//	Ack_Noti_Output(src_app, src_obj, event_num, src_ip); 
}

void Ack_Noti_Output(uint16 dst_app, uint16 dst_obj, uint16 event_num, uint32 dst_ip) {
	PSock psock;
	
	psock = GetSock(PROTOCOL_EPA_FB, LEN_ACK_NOTI, EPA_PORT, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);
	h2n16(dst_obj, psock->payload + 2);
	h2n16(event_num, psock->payload + 4);       

	EPAOutput(psock, EES_ACK_NOTI, EPA_COM_TYPE, EPA_MSG_ID);
}

void Ack_Noti_Pos_Output(uint16 dst_app, uint16 msg_id, uint16 dst_port, uint32 dst_ip) {
	PSock psock;

	psock = GetSock(PROTOCOL_EPA_FB, LEN_ACK_NOTI_POS, EPA_PORT, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);
    
	EPAOutput(psock, EES_ACK_NOTI_POS, EPA_COM_TYPE, msg_id);
}

void Ack_Noti_Neg_Output(uint16 dst_app, uint8 err_class, uint8 err_code, uint8 add_code, uint16 msg_id, uint16 dst_port, uint32 dst_ip) {
	PSock psock;
	
	psock = GetSock(PROTOCOL_EPA_FB, LEN_ACK_NOTI_NEG, dst_port, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);
	psock->payload[2] = EPA_RESERVED_VALUE;
	psock->payload[3] = EPA_RESERVED_VALUE;
	psock->payload[4] = err_class;
	psock->payload[5] = err_code;
	psock->payload[6] = add_code;
	psock->payload[7] = EPA_RESERVED_VALUE;
	memcpy(psock->payload + 8, gErr_Des[err_class][err_code], VISUAL_STRING_LEN);
   
	EPAOutput(psock, EES_ACK_NOTI_POS, EPA_COM_TYPE, msg_id);
}

void Ack_Noti_Input(PSock psock, uint8 com_type, uint16 msg_id) {   
	uint16 dst_app, dst_obj, event_num;
	
	n2h16(psock->payload, &dst_app);
	n2h16(psock->payload + 2, &dst_obj);
	n2h16(psock->payload + 4, &event_num);    
	PutSock(psock);
	
	// Ack_Noti_Pos_Output
}

void Ack_Noti_Pos_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 dst_app;
	
	n2h16(psock->payload, &dst_app);
	PutSock(psock);
}

void Ack_Noti_Neg_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 dst_app;
	uint8 err_class, err_code, add_code;
	
	n2h16(psock->payload, &dst_app);
	err_class = psock->payload[4];
	err_code = psock->payload[5];
	add_code = psock->payload[6];
	PutSock(psock);
} 

void Alter_Monitor_Output(uint16 dst_app, uint16 dst_obj, boolean be_en, uint32 dst_ip) {
	PSock psock;
	
	psock = GetSock(PROTOCOL_EPA_FB, LEN_ALTER_MONITOR, EPA_PORT, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);
	h2n16(dst_obj, psock->payload + 2);
	psock->payload[4] = be_en;
	psock->payload[5] = EPA_RESERVED_VALUE;
	psock->payload[6] = EPA_RESERVED_VALUE;
	psock->payload[7] = EPA_RESERVED_VALUE;
     
	EPAOutput(psock, EES_ALTER_MONITOR, EPA_COM_TYPE, EPA_MSG_ID);	 	
}

void Alter_Monitor_Pos_Output(uint16 dst_app, uint16 msg_id, uint16 dst_port, uint32 dst_ip) {
	PSock psock;
	
	psock = GetSock(PROTOCOL_EPA_FB, LEN_ALTER_MONITOR_POS, dst_port, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);
       
	EPAOutput(psock, EES_ALTER_MONITOR_POS, EPA_COM_TYPE, msg_id);	
}

void Alter_Monitor_Neg_Output(uint16 dst_app, uint8 err_class, uint8 err_code, uint8 add_code, uint16 msg_id, uint16 dst_port, uint32 dst_ip) {
	PSock psock;
	
	psock = GetSock(PROTOCOL_EPA_FB, LEN_ALTER_MONITOR_NEG, dst_port, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload);     
	psock->payload[2] = EPA_RESERVED_VALUE;
	psock->payload[3] = EPA_RESERVED_VALUE;
	psock->payload[4] = err_class;
	psock->payload[5] = err_code;
	psock->payload[6] = add_code;
	psock->payload[7] = EPA_RESERVED_VALUE;
      
	memcpy(psock->payload + 8, gErr_Des[err_class][err_code], VISUAL_STRING_LEN);
       
	EPAOutput(psock, EES_ALTER_MONITOR_NEG, EPA_COM_TYPE, msg_id);
}

void Alter_Monitor_Input(PSock psock, uint8 com_type, uint16 msg_id) {   
	uint16 dst_app, dst_obj;
	boolean be_en; 
	 	
	n2h16(psock->payload, &dst_app);
	n2h16(psock->payload + 2, &dst_obj);
	be_en = psock->payload[4] ;
	 
	PutSock(psock);
	
	// Alert_Monitor_Pos_Output	
}

void Alter_Monitor_Pos_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 dst_app;
	
	n2h16(psock->payload, &dst_app);
	PutSock(psock);
}

void Alter_Monitor_Neg_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 dst_app;
	uint8  err_class, err_code, add_code;

	n2h16(psock->payload, &dst_app);
	err_class = psock->payload[4];
	err_code = psock->payload[5];
	add_code = psock->payload[6];
	PutSock(psock);
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?