266 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			266 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /****************************************************************************
 | ||
|  | 
 | ||
|  | 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 }, | ||
|  | }; |