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

📄 mib.h

📁 包括EPA协议栈
💻 H
📖 第 1 页 / 共 3 页
字号:
			break;
		case 7:
			h2n16(gfb_app[id].first_instantion, 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 FBApp_Write(uint16 id, uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {

	id = id - MIB_BASE_OBJID_FBAPP;
	if(id >= MIB_NUM_FBAPP) {
		Write_Neg_Output(0, 1, 1, 0, msg_id, src_port, src_ip);
		return EPA_OBJID_ILLEGAL;
	}
	switch (idx) {
		case 0:
			memcpy(gfb_app[id].name, payload + 4, VISUAL_STRING_LEN);
			n2h16(payload + 4 + VISUAL_STRING_LEN, &gfb_app[id].type);
			n2h16(payload + 6 + VISUAL_STRING_LEN, &gfb_app[id].max_instantion);
			n2h32(payload + 8 + VISUAL_STRING_LEN, &gfb_app[id].exec_time);
			n2h16(payload + 12 + VISUAL_STRING_LEN, &gfb_app[id].first_instantion);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 3:
			memcpy(gfb_app[id].name, payload, VISUAL_STRING_LEN);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 4:
			n2h16(payload, &gfb_app[id].type);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 5:
			n2h16(payload, &gfb_app[id].max_instantion);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 6:
			n2h32(payload, &gfb_app[id].exec_time);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 7:
			n2h16(payload, &gfb_app[id].first_instantion);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		default:
			if (idx > 7) {
				Write_Neg_Output(0, 1, 2, 0, msg_id, src_port, src_ip);
				return EPA_SUBINDEX_ILLEGAL;
			}
			Write_Neg_Output(0, 1, 3, 0, msg_id, src_port, src_ip);
			return EPA_OBJ_UNWRITABLE;
	}
	return EPA_NO_ERR;
}

void DomainAppHdr_Init(void);

__inline uint8 DomainAppHdr_Read(uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	switch(idx){
		case 0:
			h2n16(gdomain_app_hdr.obj_id, payload);		
			h2n16(gdomain_app_hdr.num_domain_obj, payload + 2);
			h2n16(gdomain_app_hdr.first_domain_obj, payload + 4);
			h2n16(gdomain_app_hdr.cfged_domain_obj, payload + 6);
			h2n16(gdomain_app_hdr.uncfged_domain_obj, payload + 8);
			Read_Pos_Output(src_app, payload, 10, msg_id, src_port, src_ip);
			break;
		case 2:
			h2n16(gdomain_app_hdr.num_domain_obj, payload + 2);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 3:
			h2n16(gdomain_app_hdr.first_domain_obj, payload + 4);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 4:
			h2n16(gdomain_app_hdr.cfged_domain_obj, payload + 6);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 5:
			h2n16(gdomain_app_hdr.uncfged_domain_obj, payload + 8);
			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 DomainAppHdr_Write(uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	if (idx > 5) {
		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;
}

void DomainApp_Init(void);

__inline uint8 DomainApp_Read(uint16 id, uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	id = id - MIB_BASE_OBJID_DOMAINAPP;
	if(id >= MIB_NUM_DOMAINAPP) {
		Read_Neg_Output(src_app, 1, 1, 0, msg_id, src_port, src_ip);
		return EPA_OBJID_ILLEGAL;
	}
	switch(idx){
		case 0:
			h2n16(gdomain_app[id].obj_id, payload);		
			h2n16(gdomain_app[id].domain_obj_id, payload + 2);
			payload[4] = gdomain_app[id].cfg_status;
			payload[5] = EPA_RESERVED_VALUE;
			payload[6] = EPA_RESERVED_VALUE;
			payload[7] = EPA_RESERVED_VALUE;
			memcpy(payload + 8, gdomain_app[id].name, VISUAL_STRING_LEN);
			Read_Pos_Output(src_app, payload, (8 + VISUAL_STRING_LEN), msg_id, src_port, src_ip);
			break;
		case 2:
			h2n16(gdomain_app[id].domain_obj_id, payload + 2);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 3:
			h2n16(gdomain_app[id].cfg_status, payload + 4);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 4:
			payload[6] = gdomain_app[id].cfg_status;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 6:
			memcpy(payload + 10, gdomain_app[id].name, VISUAL_STRING_LEN);
			Read_Pos_Output(src_app, payload, VISUAL_STRING_LEN, 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 DomainApp_Write(uint16 id, uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {

	id = id - MIB_BASE_OBJID_DOMAINAPP;
	if(id >= MIB_NUM_DOMAINAPP) {
		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, &gdomain_app[id].domain_obj_id);
			gdomain_app[id].cfg_status = payload[4];
			gdomain_app[id].res[0] = EPA_RESERVED_VALUE;
			gdomain_app[id].res[1] = EPA_RESERVED_VALUE;
			gdomain_app[id].res[2] = EPA_RESERVED_VALUE;
			memcpy(gdomain_app[id].name, payload + 8, VISUAL_STRING_LEN);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 3:
			n2h16(payload, &gdomain_app[id].domain_obj_id);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 4:
			gdomain_app[id].cfg_status = payload[0];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 5:
			memcpy(gdomain_app[id].name, payload, VISUAL_STRING_LEN);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		default:
			if (idx > 5) {
				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 LinkObjHdr_Init(void);

__inline uint8 LinkObjHdr_Read(uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	switch(idx){
		case 0:
			h2n16(glink_obj_hdr.obj_id, payload);
			h2n16(glink_obj_hdr.num_link_obj, payload + 2);
			h2n16(glink_obj_hdr.first_link_obj, payload + 4);
			h2n16(glink_obj_hdr.cfged_link_obj, payload + 6);
			h2n16(glink_obj_hdr.uncfged_link_obj, payload + 8);
			Read_Pos_Output(src_app, payload, 10, msg_id, src_port, src_ip);
			break;
		case 2:
			h2n16(glink_obj_hdr.num_link_obj, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 3:
			h2n16(glink_obj_hdr.first_link_obj, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 4:
			h2n16(glink_obj_hdr.cfged_link_obj, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 5:
			h2n16(glink_obj_hdr.uncfged_link_obj, 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 LinkObjHdr_Write(uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	if (idx > 5) {
		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;
}

void LinkObj_Init(void);

__inline uint8 LinkObj_Read(uint16 id, uint16 idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {
	OctetString payload;
	
	id = id - MIB_BASE_OBJID_LINKOBJ;
	if(id >= MIB_NUM_LINKOBJ) {
		Read_Neg_Output(src_app, 1, 1, 0, msg_id, src_port, src_ip);
		return EPA_OBJID_ILLEGAL;
	}
	switch(idx){
		case 0:
			h2n16(glink_obj[id].obj_id, payload);
			h2n16(glink_obj[id].local_app, payload + 2);
			h2n16(glink_obj[id].local_obj, payload + 4);
			h2n16(glink_obj[id].rmt_app, payload + 6);
			h2n16(glink_obj[id].rmt_obj, payload + 8);
			payload[10] = glink_obj[id].srv_op;
			payload[11] = glink_obj[id].srv_role;
			h2n32(glink_obj[id].rmt_ip, payload + 12);
			h2n32(glink_obj[id].send_time_offset, payload + 16);
			Read_Pos_Output(src_app, payload, 20, msg_id, src_port, src_ip);
			break;
		case 2:
			h2n16(glink_obj[id].local_app, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 3:
			h2n16(glink_obj[id].local_obj, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 4:
			h2n16(glink_obj[id].rmt_app, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 5:
			h2n16(glink_obj[id].rmt_obj, payload);
			Read_Pos_Output(src_app, payload, 2, msg_id, src_port, src_ip);
			break;
		case 6:
			payload[0] = glink_obj[id].srv_op;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 7:
			payload[0] = glink_obj[id].srv_role;
			Read_Pos_Output(src_app, payload, 1, msg_id, src_port, src_ip);
			break;
		case 8:
			h2n32(glink_obj[id].rmt_ip, payload);
			Read_Pos_Output(src_app, payload, 4, msg_id, src_port, src_ip);
			break;
		case 9:
			h2n32(glink_obj[id].send_time_offset, payload);
			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 LinkObj_Write(uint16 id, uint16 idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip) {

	id = id - MIB_BASE_OBJID_LINKOBJ;
	if(id >= MIB_NUM_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, &glink_obj[id].local_app);
			n2h16(payload + 4, &glink_obj[id].local_obj);
			n2h16(payload + 6, &glink_obj[id].rmt_app);
			n2h16(payload + 8, &glink_obj[id].rmt_obj);
			glink_obj[id].srv_op = payload[10];
			glink_obj[id].srv_role = payload[11];
			n2h32(payload + 12, &glink_obj[id].rmt_ip);
			n2h32(payload + 16, &glink_obj[id].send_time_offset);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 2:
			n2h16(payload, &glink_obj[id].local_app);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 3:
			n2h16(payload, &glink_obj[id].local_obj);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 4:
			n2h16(payload, &glink_obj[id].rmt_app);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 5:
			n2h16(payload, &glink_obj[id].rmt_obj);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 6:
			glink_obj[id].srv_op = payload[0];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 7:
			glink_obj[id].srv_role = payload[0];
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 8:
			n2h32(payload, &glink_obj[id].rmt_ip);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		case 9:
			n2h32(payload, &glink_obj[id].send_time_offset);
			Write_Pos_Output(src_app, msg_id, src_port, src_ip);
			break;
		default:
			if (idx > 9) {
				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;
	}
	gAtcPrdOff = glink_obj[id].send_time_offset;
	return EPA_NO_ERR;
}

/*----------------------------------------------------------------------------------*
 *- Read & Write Interface of EPA Mib
 *----------------------------------------------------------------------------------*/

uint8 MIBInit(void);

uint8 MIBRead(uint16 obj_id, uint16 sub_idx, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip);

uint8 MIBWrite(uint16 obj_id, uint16 sub_idx, OctetString payload, uint16 msg_id, uint16 src_app, uint16 src_port, uint32 src_ip);

#endif	// _MIB_H

⌨️ 快捷键说明

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