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

📄 fsmib.h

📁 包括EPA协议栈
💻 H
📖 第 1 页 / 共 2 页
字号:
			n2h32(payload, &gfs_com.max_rsp_time);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 6:
			n2h16(payload, &gfs_com.e_sn);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		default:
			if(idx > 6) {
				Write_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
				return EPA_SUBINDEX_ILLEGAL;
			}
			Write_Neg_Output(src_app, 1, 3, 0, msg_id, src_port, src_ip);
			return EPA_OBJ_UNWRITABLE;
	}
	return EPA_NO_ERR;
}

void FSComFail_Init(void);

__inline uint8 FSComFail_Read(uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	switch (idx) {
		case 0:
			h2n16(gfs_com_fail.obj_id, payload);
			h2n16(gfs_com_fail.dev_fail, payload + 2);
			h2n16(gfs_com_fail.fail_report_state, payload + 4);
			h2n16(gfs_com_fail.fail_report_cfg, payload + 6);
			h2n16(gfs_com_fail.fail_ack_state, payload + 8);
			h2n16(gfs_com_fail.fail_ack_cfg, payload + 10);
			h2n16(gfs_com_fail.fail_report_prio, payload + 12);
			h2n32(gfs_com_fail.max_rsp_time, payload + 16);
			Read_Pos_Output(src_app, payload, 20, msg_id, src_port, src_ip);
			break;
		case 2:
			h2n16(gfs_com_fail.dev_fail, payload + 2);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 3:
			h2n16(gfs_com_fail.fail_report_state, payload + 4);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 4:
			h2n16(gfs_com_fail.fail_report_cfg, payload + 6);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 5:
			h2n16(gfs_com_fail.fail_ack_state, payload + 8);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 6:
			h2n16(gfs_com_fail.fail_ack_cfg, payload + 10);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 7:
			h2n16(gfs_com_fail.fail_report_prio, payload + 12);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 8:
			h2n32(gfs_com_fail.max_rsp_time, payload + 16);
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
		default:
			Read_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
			return EPA_SUBINDEX_ILLEGAL;
	}
	return EPA_NO_ERR;
}

__inline uint8 FSComFail_Write(uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	switch (idx) {
		case 0:
			n2h16(payload + 2, &gfs_com_fail.dev_fail);
			n2h16(payload + 4, &gfs_com_fail.fail_report_state);
			n2h16(payload + 6, &gfs_com_fail.fail_report_cfg);
			n2h16(payload + 8, &gfs_com_fail.fail_ack_state);
			n2h16(payload + 10, &gfs_com_fail.fail_ack_cfg);
			n2h16(payload + 12, &gfs_com_fail.fail_report_prio);
			n2h32(payload + 16, &gfs_com_fail.max_rsp_time);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 2:
			n2h16(payload, &gfs_com_fail.dev_fail);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 3:
			n2h16(payload, &gfs_com_fail.fail_report_state);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 4:
			n2h16(payload, &gfs_com_fail.fail_report_cfg);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 5:
			n2h16(payload, &gfs_com_fail.fail_ack_state);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 6:
			n2h16(payload, &gfs_com_fail.fail_ack_cfg);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 7:
			n2h16(payload, &gfs_com_fail.fail_report_prio);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 8:
			n2h32(payload, &gfs_com_fail.max_rsp_time);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		default:
			if(idx > 8) {
				Write_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
				return EPA_SUBINDEX_ILLEGAL;
			}
			Write_Neg_Output(src_app, 1, 3, 0, msg_id, src_port, src_ip);
			return EPA_OBJ_UNWRITABLE;
	}
	return EPA_NO_ERR;
}

void FSAlert_Init(void);

__inline uint8 FSAlert_Read(uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	switch (idx) {
		case 0:
			h2n16(gfs_alert.obj_id, payload);
			payload[2] = gfs_alert.alert_type;
			payload[3] = gfs_alert.msg_type;
			h2n32(gfs_alert.fail_ip, payload + 4);
			payload[8] = gfs_alert.prio;
//			h2n32(gfs_alert.stamp, payload + 9);  binarydate
			Read_Pos_Output(src_app, payload, 17, msg_id, src_port, src_ip);
			break;
		case 2:
			payload[0] = gfs_alert.alert_type;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 3:
			payload[0] = gfs_alert.msg_type;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 4:
			h2n32(gfs_alert.fail_ip, payload);
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
		case 5:
			payload[0] = gfs_alert.prio;
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
//		case 6:
//			h2n16(gfs_alert.stamp, payload);
//			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
//			break;
		default:
			Read_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
			return EPA_SUBINDEX_ILLEGAL;
	}
	return EPA_NO_ERR;
}

__inline uint8 FSAlert_Write(uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	switch (idx) {
		case 0:
			gfs_alert.alert_type = payload[2];
			gfs_alert.msg_type = payload[3];
			n2h32(payload + 4, &gfs_alert.fail_ip);
			gfs_alert.max_rsp_time = payload[8];
//			n2h16(payload + 20, &gfs_alert.e_sn); binarydate
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 2:
			gfs_alert.alert_type = payload[2];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 3:
			gfs_alert.msg_type = payload[3];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 4:
			n2h32(payload + 4, &gfs_alert.fail_ip);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 5:
			gfs_alert.max_rsp_time = payload[8];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
//		case 6:
//			n2h32(payload + 16, &gfs_alert.max_rsp_time);
//			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
//			break;
		default:
			if(idx > 6) {
				Write_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
				return EPA_SUBINDEX_ILLEGAL;
			}
			Write_Neg_Output(src_app, 1, 3, 0, msg_id, src_port, src_ip);
			return EPA_OBJ_UNWRITABLE;
	}
	return EPA_NO_ERR;
}

void FSLinkObj_Init(void);

__inline uint8 FSLinkObj_Read(uint16 id, uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	id = id - FSMIB_BASE_OBJID_LINKOBJ;
	if(id >= MIB_NUM_FS_LINKOBJ) {
		Read_Neg_Output(src_app, 1, 1, 0, msg_id, src_port, src_ip);
		return EPA_OBJID_ILLEGAL;
	}
	switch(idx){
		case 0:
			h2n16(gfs_link_obj[id].obj_id, payload);
			h2n16(gfs_link_obj[id].local_app_id, payload + 2);
			h2n16(gfs_link_obj[id].local_obj_id, payload + 4);
			h2n16(gfs_link_obj[id].rmt_app_id, payload + 6);
			h2n16(gfs_link_obj[id].rmt_obj_id, payload + 8);
			payload[10] = gfs_link_obj[id].srv_op;
			payload[11] = gfs_link_obj[id].srv_role;
			h2n32(gfs_link_obj[id].rmt_ip, payload + 12);
			h2n32(gfs_link_obj[id].send_time_offset, payload + 16);
			payload[20] = gfs_link_obj[id].err_cnt_limit;
			payload[21] = gfs_link_obj[id].err_cnt;
			h2n16(gfs_link_obj[id].e_sn, payload + 22);
			h2n16(gfs_link_obj[id].lr_sn, payload + 24);
			h2n16(gfs_link_obj[id].tolr_delay, payload + 26);
			h2n32(gfs_link_obj[id].r_key, payload + 28);
			Read_Pos_Output(src_app, payload, 32, msg_id, src_port, src_ip);
			break;
		case 2:
			h2n16(gfs_link_obj[id].local_app_id, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 3:
			h2n16(gfs_link_obj[id].local_obj_id, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 4:
			h2n16(gfs_link_obj[id].rmt_app_id, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 5:
			h2n16(gfs_link_obj[id].rmt_obj_id, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 6:
			payload[0] = gfs_link_obj[id].srv_op;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 7:
			payload[0] = gfs_link_obj[id].srv_role;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 8:
			h2n32(gfs_link_obj[id].rmt_ip, payload);
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
		case 9:
			h2n32(gfs_link_obj[id].send_time_offset, payload);
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
		case 10:
			payload[20] = gfs_link_obj[id].err_cnt_limit;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 11:
			payload[21] = gfs_link_obj[id].err_cnt;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 12:
			h2n16(gfs_link_obj[id].e_sn, payload + 22);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 13:
			h2n16(gfs_link_obj[id].lr_sn, payload + 24);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 14:
			h2n16(gfs_link_obj[id].tolr_delay, payload + 26);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 15:
			h2n32(gfs_link_obj[id].r_key, payload + 28);
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
		default:
			Read_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
			return EPA_SUBINDEX_ILLEGAL;
	}
	return EPA_NO_ERR;
}

__inline uint8 FSLinkObj_Write(uint16 id, uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {

	id = id - FSMIB_BASE_OBJID_LINKOBJ;
	if(id >= MIB_NUM_FS_LINKOBJ) {
		Write_Neg_Output(src_app, 1, 1, 0, msg_id, src_port, src_ip);
		return EPA_OBJID_ILLEGAL;
	}
	switch (idx) {
		case 0:
			n2h16(payload + 2, &gfs_link_obj[id].local_app_id);
			n2h16(payload + 4, &gfs_link_obj[id].local_obj_id);
			n2h16(payload + 6, &gfs_link_obj[id].rmt_app_id);
			n2h16(payload + 8, &gfs_link_obj[id].rmt_obj_id);
			gfs_link_obj[id].srv_op = payload[10];
			gfs_link_obj[id].srv_role = payload[11];
			n2h32(payload + 12, &gfs_link_obj[id].rmt_ip);
			n2h32(payload + 16, &gfs_link_obj[id].send_time_offset);
			gfs_link_obj[id].err_cnt_limit = payload[20];
			gfs_link_obj[id].err_cnt = payload[21];
			n2h16(payload + 22, &gfs_link_obj[id].e_sn);
			n2h16(payload + 24, &gfs_link_obj[id].lr_sn);
			n2h16(payload + 26, &gfs_link_obj[id].tolr_delay);
			n2h32(payload + 28, &gfs_link_obj[id].r_key);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 2:
			n2h16(payload, &gfs_link_obj[id].local_app_id);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 3:
			n2h16(payload, &gfs_link_obj[id].local_obj_id);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 4:
			n2h16(payload, &gfs_link_obj[id].rmt_app_id);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 5:
			n2h16(payload, &gfs_link_obj[id].rmt_obj_id);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 6:
			gfs_link_obj[id].srv_op = payload[0];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 7:
			gfs_link_obj[id].srv_role = payload[0];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 8:
			n2h32(payload, &gfs_link_obj[id].rmt_ip);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 9:
			n2h32(payload, &gfs_link_obj[id].send_time_offset);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 10:
			gfs_link_obj[id].err_cnt_limit = payload[20];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 11:
			gfs_link_obj[id].err_cnt = payload[21];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 12:
			n2h16(payload + 22, &gfs_link_obj[id].e_sn);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 13:
			n2h16(payload + 24, &gfs_link_obj[id].lr_sn);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 14:
			n2h16(payload + 26, &gfs_link_obj[id].tolr_delay);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 15:
			n2h32(payload + 28, &gfs_link_obj[id].r_key);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		default:
			if (idx > 15) {
				Write_Neg_Output(src_app, 1, 2, 0, msg_id, src_port, src_ip);
				return EPA_SUBINDEX_ILLEGAL;
			}
			Write_Neg_Output(src_app, 1, 3, 0, msg_id, src_port, src_ip);
			return EPA_OBJ_UNWRITABLE;
	}
	return EPA_NO_ERR;
}

#endif	// _FSMIB_H

⌨️ 快捷键说明

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