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

📄 domain.c

📁 包括EPA协议栈
💻 C
字号:
#include "tcpip.h"
#include "epa.h"
#include <string.h>
#define DOMAINE_GLOBALS
#include "domain.h"
#undef DOMAIN_GLOBALS

void Domain_DownLoad_Output(uint16 src_app, uint16 dst_app, uint16 dst_obj, OctetString data, uint16 len, uint32 dst_ip) {
	PSock psock;
	  
	psock = GetSock(PROTOCOL_EPA_FB, LEN_DOMAINDOWNLOAD(len), EPA_PORT, dst_ip, NISelect(dst_ip));
	
	h2n16(src_app, psock->payload);
	h2n16(dst_app, psock->payload + 2);
	h2n16(dst_obj, psock->payload + 4);
	psock->payload[6] = 1;
	psock->payload[7] = 0;
	h2n16(len, psock->payload + 8);
	memcpy(psock->payload + 10, data, len);
  	
	EPAOutput(psock, EDS_DOMAINDOWNLOAD, EPA_COM_TYPE, EPA_MSG_ID);
}

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

	psock = GetSock(PROTOCOL_EPA_FB, LEN_DOMAINDOWNLOAD_POS, dst_port, dst_ip, NISelect(dst_ip));
    
	h2n16(dst_app, psock->payload); 

	EPAOutput(psock, EDS_DOMAINDOWNLOAD_POS, EPA_COM_TYPE, msg_id);
}

void Domain_DownLoad_Neg_Output(uint8 err_class, uint8 err_code, uint8 add_code, uint16 dst_app, uint16 msg_id, uint16 dst_port, uint32 dst_ip) {
	PSock psock;    

	psock = GetSock(PROTOCOL_EPA_FB, LEN_DOMAINDOWNLOAD_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, EDS_DOMAINDOWNLOAD_NEG, EPA_COM_TYPE, msg_id);
}

void Domain_DownLoad_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 src_app, dst_app, dst_obj, data_num;
	uint16 length;
	
	length = psock->length;
	n2h16(psock->payload, &src_app);
	n2h16(psock->payload + 2, &dst_app);
	n2h16(psock->payload + 4, &dst_obj);
	n2h16(psock->payload + 6, &data_num);
	  	
	PutSock(psock);		
}

void Domain_DownLoad_Pos_Input(PSock psock, uint8 com_type, uint16 msg_id) {

	PutSock(psock);
}

void Domain_DownLoad_Neg_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	
	PutSock(psock);
}

void Domain_UpLoad_Output(uint16 src_app, uint16 dst_app, uint16 dst_obj, uint16 data_num, uint32 dst_ip) {
	PSock psock;    

	psock = GetSock(PROTOCOL_EPA_FB, LEN_DOMAINUPLOAD, EPA_PORT, dst_ip, NISelect(dst_ip));
    
	h2n16(src_app, psock->payload);
	h2n16(dst_app, psock->payload + 2);
	h2n16(dst_obj, psock->payload + 4);
	h2n16(data_num, psock->payload + 6);

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

void Domain_UpLoad_Pos_Output(uint16 dst_app, OctetString data, uint16 len, uint16 msg_id, uint16 dst_port, uint32 dst_ip) {
	PSock psock;    

	psock = GetSock(PROTOCOL_EPA_FB, LEN_DOMAINUPLOAD_POS(len), dst_port, dst_ip, NISelect(dst_ip));

	h2n16(dst_app, psock->payload); 
 	h2n16(len, psock->payload + 2);  
	psock->payload[4] = 0;
	psock->payload[5] = EPA_RESERVED_VALUE;
	psock->payload[6] = EPA_RESERVED_VALUE;
	psock->payload[7] = EPA_RESERVED_VALUE;
	memcpy(psock->payload + 8, data, len);
	
	EPAOutput(psock, EDS_DOMAINUPLOAD_POS, EPA_COM_TYPE, msg_id);
}

void Domain_UpLoad_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_DOMAINUPLOAD_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], 32);
	
	EPAOutput(psock, EDS_DOMAINUPLOAD_NEG, EPA_COM_TYPE, msg_id);
}

void Domain_UpLoad_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	uint16 src_app, dst_app, dst_obj, data_num;
	
	n2h16(psock->payload, &src_app);
	n2h16(psock->payload + 2, &dst_app);
	n2h16(psock->payload + 4, &dst_obj);
	n2h16(psock->payload + 6, &data_num);
	PutSock(psock);
}

void Domain_UpLoad_Pos_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	PutSock(psock);
}

void Domain_UpLoad_Neg_Input(PSock psock, uint8 com_type, uint16 msg_id) {
	PutSock(psock);
}

⌨️ 快捷键说明

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