143 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			143 lines
		
	
	
		
			4.6 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. | ||
|  | 
 | ||
|  | ****************************************************************************/ | ||
|  | 
 | ||
|  | #ifndef IOT_CLI_HOST_INTERFACE_H
 | ||
|  | #define IOT_CLI_HOST_INTERFACE_H
 | ||
|  | 
 | ||
|  | /* os shim includes */ | ||
|  | #include "os_types.h"
 | ||
|  | #include "os_task.h"
 | ||
|  | #include "os_event.h"
 | ||
|  | #include "os_timer_api.h"
 | ||
|  | 
 | ||
|  | #include "iot_task.h"
 | ||
|  | #include "iot_utils.h"
 | ||
|  | #include "iot_queue.h"
 | ||
|  | #include "iot_ipc_api.h"
 | ||
|  | #include "iot_uart_h.h"
 | ||
|  | 
 | ||
|  | #include "iot_cli_module_config.h"
 | ||
|  | #include "iot_cli.h"
 | ||
|  | #include "iot_cli_msg.h"
 | ||
|  | #include "iot_cli_common.h"
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #pragma pack(push)  /* save the pack status */
 | ||
|  | #pragma pack(1)     /* 1 byte align */
 | ||
|  | 
 | ||
|  | typedef void(*HOST_SEND_PACKAGE_EVENT_CB) (uint32_t moduleid, | ||
|  |     uint32_t msgid, uint8_t *buffer, uint32_t length, uint16_t sn, | ||
|  |     uint8_t *src_mac); | ||
|  | 
 | ||
|  | /* module id */ | ||
|  | #define MODULEID_HOSTINTERFACE                      (2)
 | ||
|  | /* request id */ | ||
|  | #define CLI_HOST_USE_API_BY_PLCM                    (1)
 | ||
|  | 
 | ||
|  | typedef struct _iot_cli_host_info_t { | ||
|  |     /* link id used for sending msdu */ | ||
|  |     uint8_t                link_id; | ||
|  |     /* handle of task for this app */ | ||
|  |     os_task_h              host_task_h; | ||
|  |     /* send ul package callback*/ | ||
|  |     HOST_SEND_PACKAGE_EVENT_CB pfunc_send_ul_package; | ||
|  |     /* mac address of local device */ | ||
|  |     uint8_t                mac_addr[IOT_MAC_ADDR_LEN]; | ||
|  |     /* plc_mgr_state */ | ||
|  |     uint8_t                host_app_state; | ||
|  |     /* plc mgr live flag */ | ||
|  |     uint8_t                host_app_live; | ||
|  |     /* live query timer */ | ||
|  |     timer_id_t             live_timer; | ||
|  |     /* log timer */ | ||
|  |     timer_id_t             log_timer; | ||
|  |     /* is ready flag */ | ||
|  |     /* bit7: ctrl proto connect flag */ | ||
|  |     uint8_t                is_ready; | ||
|  |     /* hplc link load, value: 0 - 100 */ | ||
|  |     uint8_t                link_load; | ||
|  | } iot_cli_host_info_t; | ||
|  | 
 | ||
|  | typedef void(*CLI_MSG_HANDLER)(uint8_t *buffer, uint32_t len, uint8_t *src_mac); | ||
|  | typedef struct _CLI_MSG_ENTRY | ||
|  | { | ||
|  |     cli_moduleid_t      module_id; | ||
|  |     uint32_t            msg_id; | ||
|  |     CLI_MSG_HANDLER     pFun; | ||
|  | }*PCLI_MSG_ENTRY, CLI_MSG_ENTRY; | ||
|  | 
 | ||
|  | uint8_t iot_cli_host_interface_init(HOST_SEND_PACKAGE_EVENT_CB cb, | ||
|  |     iot_task_h task_h); | ||
|  | void iot_cli_host_interface_deinit(); | ||
|  | 
 | ||
|  | uint8_t iot_cli_host_interface_handle_msg( | ||
|  |     cli_moduleid_t moduleid, uint32_t msgid, iot_cli_msg_t *msg); | ||
|  | uint8_t iot_cli_host_interface_handle_task_msg( | ||
|  |     iot_cli_msg_t *cli_msg, uint16_t id); | ||
|  | uint8_t iot_cli_host_interface_cancel_task_msg( | ||
|  |     iot_cli_msg_t *cli_msg, uint16_t id); | ||
|  | void iot_cli_host_interface_init_uart( | ||
|  |     commnucator_t * com, uint8_t interface_type); | ||
|  | uint8_t cli_execute_msg_entry( | ||
|  |     cli_moduleid_t moduleid, uint32_t msgid, | ||
|  |     CLI_MSG_ENTRY *msg_entry, iot_cli_msg_t *msg); | ||
|  | 
 | ||
|  | // for cli module interface
 | ||
|  | void iot_cli_module_init_uart( | ||
|  |     commnucator_t * com, uint8_t interface_type); | ||
|  | uint8_t iot_cli_proto_module_init(); | ||
|  | void iot_cli_proto_module_deinit(); | ||
|  | uint8_t iot_cli_module_handle_msg( | ||
|  |     cli_moduleid_t moduleid, uint32_t msgid, iot_cli_msg_t *msg); | ||
|  | uint8_t iot_cli_module_handle_task_msg( | ||
|  |     iot_cli_msg_t *cli_msg, uint16_t id); | ||
|  | uint8_t iot_cli_module_cancel_task_msg( | ||
|  |     iot_cli_msg_t *cli_msg, uint16_t id); | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_cli_host_is_ctrl_connected - check is ctrl connected | ||
|  |  * @retval: 1 - is ctrl connected, 0 - is not. | ||
|  |  */ | ||
|  | uint8_t iot_cli_host_is_ctrl_connected(); | ||
|  | /**
 | ||
|  |  * @brief iot_cli_host_set_ctrl_connected - set ctrl connect | ||
|  |  * @param enable: 1 - set ctrl connected flag, 0 - clean ctrl connected | ||
|  |  *                flag. | ||
|  |  */ | ||
|  | void iot_cli_host_set_ctrl_connected(uint8_t setting); | ||
|  | 
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * @brief iot_cli_host_is_join_connected - check is join connected | ||
|  |  * @retval: 1 - is join connected, 0 - is not. | ||
|  |  */ | ||
|  | uint8_t iot_cli_host_is_join_connected(); | ||
|  | /**
 | ||
|  |  * @brief iot_cli_host_set_join_connected - set join connect | ||
|  |  * @param enable: 1 - set join connected flag, 0 - clean join connected | ||
|  |  *                flag. | ||
|  |  */ | ||
|  | void iot_cli_host_set_join_connected(uint8_t setting); | ||
|  | 
 | ||
|  | #pragma pack(pop)   /* restore the pack status */
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif /* IOT_CLI_HOST_INTERFACE_H */
 |