/**************************************************************************** Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED. This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT be copied by any method or incorporated into another program without the express written consent of Aerospace C.Power. This Information or any portion thereof remains the property of Aerospace C.Power. The Information contained herein is believed to be accurate and Aerospace C.Power assumes no responsibility or liability for its use in any way and conveys no license or title under any patent or copyright and makes no representation or warranty that this Information is free from patent or copyright infringement. ****************************************************************************/ #include "iot_cli.h" #include "iot_cli_host_interface.h" #include "iot_cli_host_upgrade.h" #include "iot_cli_dbg_log.h" #include "iot_cli_flash_log.h" #include "iot_cli_host_pib.h" #include "iot_cli_discovery.h" #include "iot_cli_ckq.h" #include "iot_cli_ada_dump.h" #include "iot_cli_ram_operation.h" #include "iot_cli_ul_buf.h" #include "iot_cli_mac_test.h" #include "iot_cli_oem.h" #include "iot_cli_ping.h" #include "iot_cli_rate_test.h" #include "iot_cli_set_info.h" #include "iot_cli_plc_function.h" #include "iot_cli_basic_operation.h" #include "iot_cli_tput.h" #include "iot_cli_plc_nw.h" #include "iot_cli_plc_mgr_alive.h" #include "iot_cli_hw_ver.h" /*all the cli msg and its hander*/ #if PLC_SUPPORT_CCO_ROLE const CLI_MSG_ENTRY all_cli_cco_msg_entry[] = { { CLI_MODULEID_COMMUNICATION, CLI_MSGID_SET_SNR, cli_set_snr }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_TOPO, cli_get_topo}, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_MISSED_TOPO, cli_get_topo }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_METER_DATA, cli_get_meter_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_START_SEARCH_METER, cli_start_search_meter }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_STOP_SEARCH_METER, cli_stop_search_meter }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GETMETERLIST, cli_get_meter_list}, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GETWHITELIST_STATE, cli_get_white_list_state }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GETWHITELIST, cli_get_white_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_ADD_WHITELIST, cli_add_white_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RM_WHITELIST, cli_rm_white_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_WHITELIST_STATE, cli_set_white_list_state }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_ONLINE, cli_online_handler }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_PING, cli_ping_handler }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_PING_ACK, cli_ping_ack_handler }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_RESET, cli_upgrade_reset }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_STOP, cli_upgrade_stop }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SG_UPGRADE_DATA, cli_sg_upgrade_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_DST_STATUS_QUERY, cli_upgrade_dst_status_query }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_DST_STATUS_LIST, cli_upgrade_dst_status_list }, #if IOT_CLI_UPGRADE_ENABLE { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_START, cli_upgrade_start }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_DST_LIST, cli_upgrade_dst_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_DATA, cli_upgrade_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_STOP_ACK, cli_upgrade_stop_ack }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_RESET_ACK, cli_upgrade_reset_ack }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_REMOTE_UPGRADE_START_ACK, cli_remote_upgrade_start_ack }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_REMOTE_UPGRADE_DATA_REQUEST, cli_remote_upgrade_data_request }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_RESULT, cli_remote_upgrade_result }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_PROGRESS, cli_remote_upgrade_progress }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_NODE_INFO_RESPONSE, cli_remote_upgrade_node_info_rsp}, #endif { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_BAND_ID, cli_get_band_id }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_BAND_ID, cli_set_band_id }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_RF_CHANNEL, cli_set_rf_channel }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_TX_POWER, cli_set_tx_power }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_START, cli_rate_test_start }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_STOP, cli_rate_test_stop }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_TEST, cli_recv_rate_test_packet }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_TEST_RESP, cli_recv_rate_test_result }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SWITCH_BOOT_PART, cli_switch_boot_part }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_PCO_SNR_CFG, cli_set_pco_snr_config }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_CLI_UPGRADE_ENABLED, cli_set_cli_upgrade_enabled }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_NEIGHBOR_INFO_QUERY, cli_neighbor_info_query }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_NEIGHBOR_INFO_RESP, cli_neighbor_info_response }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_TSFM_DETECT_STATE, cli_set_tsfm_detect_state }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_QUERY_TSFM_DETECT_STATE, cli_get_tsfm_detect_state }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_USER_DATA, cli_handle_user_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_VENDOR, cli_set_vendor }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_VENDOR_REPORT, cli_set_vendor_report }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_BUILD_INFO, cli_set_build_info }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_BUILD_INFO_REPORT, cli_set_build_info_report }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_NID, cli_set_nid }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_EVENT_RPT_ENABLED, cli_set_event_rpt_enabled }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_CCTT_DATA_ENABLED, cli_set_cctt_data_enabled }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_BD_START, cli_bd_start }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_BD_QUERY_STATE, cli_bd_query_state }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_BD_QUERY_RET, cli_bd_query_result }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_ESP, cli_set_esp}, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_QUERY_ESP, cli_query_esp}, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_QUERY_NODE_INFO, cli_query_node_info }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSG_SET_CON_MR_PARAM, cli_set_con_mr_param }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSG_QUERY_CON_MR_PARAM, cli_get_con_mr_param }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_METER_RT_DATA, cli_get_meter_rt_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_REPORT_ACK, cli_get_report_ack }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_NEIGHBOR_NW_QUERY, cli_neighbor_nw_query }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_BAUD_RATE, cli_set_baudrate }, #if IOT_TPUT_APP_ENABLE { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_TPUT_CFG, cli_set_iot_tput_cfg}, #endif { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_NW_STATUS_QUERY, ci_nw_status_query }, #if IOT_CLI_MAC_FUN_TEST_ENA { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_MAC_FUN_TEST, cli_mac_fun_test }, #endif { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_QUEYR_HW_VER, cli_query_hw_ver }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_HW_VER_REPORT, cli_cco_forward_hw_ver_report }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SEND_BROADCAST_DATA, cli_cco_send_broadcast_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_TRANS_USER_LOCAL_PROTO_DATA, cli_trans_local_proto_data }, #if IOT_CLI_CKB_ADDR_MAPPING { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_MAC, cli_set_mac }, #endif /* IOT_CLI_CKB_ADDR_MAPPING */ /*flag to index end of this table, always keep this as last one*/ { CLI_MODULEID_MAX_NUM, CLI_MSGID_MAX_NUM, NULL }, }; #endif /*all the cli msg and its hander*/ const CLI_MSG_ENTRY all_cli_sta_msg_entry[] = { { CLI_MODULEID_COMMUNICATION, CLI_MSGID_SET_SNR, cli_set_snr }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_TOPO, cli_get_topo }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_MISSED_TOPO, cli_get_topo }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_ONLINE, cli_online_handler }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_PING, cli_ping_handler }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_RESET, cli_upgrade_reset }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_STOP, cli_upgrade_stop }, #if IOT_CLI_UPGRADE_ENABLE { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_START, cli_upgrade_start }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_DATA, cli_upgrade_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_REMOTE_UPGRADE_START, cli_remote_upgrade_start }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_REMOTE_UPGRADE_DATA_REQUEST, cli_remote_upgrade_data_request }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_REMOTE_UPGRADE_DATA, cli_remote_upgrade_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_STOP_UPGRADE_RPT, cli_set_stop_upgrade_rpt }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_UPGRADE_NODE_INFO_QUERY, cli_remote_upgrade_node_info_query}, #endif { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_START, cli_rate_test_start }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_STOP, cli_rate_test_stop }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_TEST, cli_recv_rate_test_packet }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RATE_TEST_RESP, cli_recv_rate_test_result }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SWITCH_BOOT_PART, cli_switch_boot_part }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_NEIGHBOR_INFO_QUERY, cli_neighbor_info_query }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_BAUD_RATE, cli_set_baudrate }, #if (IOT_STA_CONTROL_MODE == IOT_STA_CONTROL_TYPE_STA) { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_ENABLE_DISCOVERY_MODE, cli_enable_discovery_mode }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_JOIN_NODE, cli_join_node }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_NODE_IS_READY, cli_node_is_ready }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_ADA_DUMP_PARAM, cli_set_ada_dump_param }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_QUERY_ADA_DUMP_RESULT, cli_query_ada_dump_data }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_BAND_ID, cli_get_band_id }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_BAND_ID, cli_set_band_id }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_RF_CHANNEL, cli_set_rf_channel }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GET_DEVICE_INFO, cli_local_device_info }, #if (IOT_CLI_SG_INTERFACE_ENABLE == 1) { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_CTRL_DATA_DL, cli_sg_ctrl_data_dl }, #endif #endif { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_VENDOR, cli_set_vendor }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_BUILD_INFO, cli_set_build_info }, #if IOT_CLI_MAC_FUN_TEST_ENA { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_MAC_FUN_TEST, cli_mac_fun_test }, #endif #if IOT_CLI_SUPPORT_WL_CMD { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GETWHITELIST_STATE, cli_get_white_list_state }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_GETWHITELIST, cli_get_white_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_ADD_WHITELIST, cli_add_white_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_RM_WHITELIST, cli_rm_white_list }, { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_WHITELIST_STATE, cli_set_white_list_state }, #endif /* IOT_CLI_SUPPORT_WL_CMD */ { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_QUEYR_HW_VER, cli_query_hw_ver }, #if IOT_CLI_CKB_ADDR_MAPPING { CLI_MODULEID_HOSTINTERFACE, CLI_MSGID_SET_MAC, cli_set_mac }, #endif /* IOT_CLI_CKB_ADDR_MAPPING */ /*flag to index end of this table, always keep this as last one*/ { CLI_MODULEID_MAX_NUM, CLI_MSGID_MAX_NUM, NULL }, };