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

📄 event.c

📁 包括EPA协议栈
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -