📄 smcp-message-factory.c
字号:
#include "smcp-message-factory.h"#include <string.h>#include <stdlib.h>#include <stdio.h>char msg_name[32][40] ={ "BOOT_NOTIFY", "BOOT_RESPONSE", "OPERATION_START_REQUEST", "OPERATION_START_RESPONSE ", "ALIVE_CHECK_REQUEST", "ALIVE_CHECK_RESPONSE", "MAPPING_CHANGE_REQUEST", "MAPPING_CHANGE_RESPONSE", "DOWNLOAD_START_INDICATE", "DOWNLOAD_START_RESPONSE", "DOWNLOAD_COMPLETE_NOTIFY", "DOWNLOAD_COMPLETE_RESPONSE", "OPERATION_STATUS_CHANGE_INDICATE", "OPERATION_STATUS_CHANGE_RESPONSE", "CARD_INFORMATION_GET_REQUEST", "CARD_INFORMATION_GET_RESPONSE", "OPERATION_DATA_CHANGE_REQUEST", "OPERATION_DATA_CHANGE_RESPONSE", "OPERATION_DATA_CHANGE_REPORT", "OPERATION_DATA_CHANGE_REPORT_RESPONSE", "RESET_INDICATE", "RESET_INDICATE_RESPONSE", "EVENT_TRAP_NOTIFY", "EVENT_TRAP_RESPONSE", "ACT_NOTIFY", "ACT_RESPONSE ", "TIME_ADJUST_REQUEST ", "TIME_ADJUST_RESPONSE", "RRU_INFO_CHG_NOTIFY", "RRU_INFO_CHG_RESPONSE", "OPERATION_STOP_INDICATE", "OPERATION_STOP_RESPONSE" };/**************************************************** * FOR MHPU ****************************************************/void event_trap_notify(){}void operation_start_response(smcp_msg *msg, unsigned char result){ smcp_msg snd_msg; snd_msg.msg_id = OPERATION_START_RESPONSE; snd_msg.des_rack = rack.mhpu.rack; snd_msg.des_slot = rack.mhpu.slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = (char *) malloc(2 * sizeof(char)); snd_msg.pdata[0] = result; snd_msg.data_length = 5; smcp_msg_send(&snd_msg); if (snd_msg.pdata) free(snd_msg.pdata);}void alive_check_response(smcp_msg *msg){ smcp_msg snd_msg; snd_msg.msg_id = ALIVE_CHECK_RESPONSE; snd_msg.des_rack = msg->src_rack; snd_msg.des_slot = msg->src_slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = NULL; snd_msg.data_length = 2; smcp_msg_send(&snd_msg); if (snd_msg.pdata) free(snd_msg.pdata);}void operation_status_chang_response(smcp_msg *msg, unsigned char result){ //response smcp_msg snd_msg; snd_msg.msg_id = OPERATION_STATUS_CHANGE_RESPONSE; snd_msg.des_rack = rack.mhpu.rack; snd_msg.des_slot = rack.mhpu.slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = (char*) malloc(2 * sizeof(char)); snd_msg.pdata[0] = result; snd_msg.pdata[1] = 0xff; snd_msg.data_length = 2 + 2; smcp_msg_send(&snd_msg); if (snd_msg.pdata) free(snd_msg.pdata);}void reset_indicate_response(smcp_msg *msg, unsigned char result){ smcp_msg snd_msg; snd_msg.msg_id = RESET_INDICATE_RESPONSE; snd_msg.des_rack = rack.mhpu.rack; snd_msg.des_slot = rack.mhpu.slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = (char*) malloc(2 * sizeof(char)); snd_msg.pdata[0] = result; snd_msg.pdata[1] = 0x00; snd_msg.data_length = 2 + 2; smcp_msg_send(&snd_msg); if (snd_msg.pdata) free(snd_msg.pdata);}/**************************************************** * FOR CSWU ****************************************************/void boot_notify(){ // init_rack(); smcp_msg snd_msg; snd_msg.msg_id = BOOT_NOTIFY; snd_msg.des_rack = rack.cswu.rack; snd_msg.des_slot = rack.cswu.slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = (char *) malloc(24 * sizeof(char)); snd_msg.pdata[0] = rack.clpu.type; snd_msg.pdata[1] = rack.clpu.boot_cause; memcpy(snd_msg.pdata + 2, rack.clpu.soft_ver, sizeof(rack.clpu.soft_ver)); memcpy(snd_msg.pdata + 12, rack.clpu.param_ver, sizeof(rack.clpu.param_ver)); snd_msg.pdata[22] = 0xff; snd_msg.pdata[23] = 0xff; snd_msg.data_length = 2 + 24; smcp_msg_send(&snd_msg); free(snd_msg.pdata);}void download_start_response(smcp_msg *msg){ smcp_msg snd_msg; snd_msg.msg_id = DOWNLOAD_START_RESPONSE; snd_msg.des_rack = msg->src_rack; snd_msg.des_slot = msg->src_slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = NULL; snd_msg.data_length = 3; smcp_msg_send(&snd_msg); if (snd_msg.pdata) free(snd_msg.pdata);}void act_response(smcp_msg *msg){ smcp_msg snd_msg; snd_msg.msg_id = ACT_RESPONSE; snd_msg.des_rack = msg->src_rack; snd_msg.des_slot = msg->src_slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = NULL; snd_msg.data_length = 3; smcp_msg_send(&snd_msg); if (snd_msg.pdata) free(snd_msg.pdata);}/*********************************************** * FOR RRU **********************************************/void act_notify(struct rru_t *rru){ smcp_msg snd_msg; snd_msg.msg_id = ACT_NOTIFY; snd_msg.des_rack = rru->rack; snd_msg.des_slot = rru->slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = NULL; snd_msg.data_length = 3; smcp_msg_send(&snd_msg);}void boot_response(smcp_msg *msg){ smcp_msg snd_msg; snd_msg.msg_id = BOOT_RESPONSE; snd_msg.des_rack = msg->src_rack; snd_msg.des_slot = msg->src_slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = NULL; snd_msg.data_length = 3; smcp_msg_send(&snd_msg);}void alive_check(struct rru_t *rru){ smcp_msg snd_msg; snd_msg.msg_id = ALIVE_CHECK_REQUEST; snd_msg.des_rack = rru->rack; snd_msg.des_slot = rru->slot; snd_msg.src_rack = rack.clpu.rack; snd_msg.src_slot = rack.clpu.slot; snd_msg.pdata = NULL; snd_msg.data_length = 3; smcp_msg_send(&snd_msg);}void show_message(smcp_msg *rev_msg){ printf("*******************\n"); printf("%s\n", msg_name[rev_msg->msg_id-1]); printf("data length is:%d\n", rev_msg->data_length); int i; printf("content is:"); for (i = 0; i < rev_msg->data_length && rev_msg->pdata; i++) printf("%x ", rev_msg->pdata[i]); printf("\n--------------------\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -