143 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| 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_CUSAPP_H_
 | |
| #define _IOT_CUSAPP_H_
 | |
| 
 | |
| #include "iot_task_api.h"
 | |
| #include "iot_plc_api.h"
 | |
| #include "iot_uart_api.h"
 | |
| #include "iot_ipc_api.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /** Message type defination: */
 | |
| #define IOT_CUSAPP_MT_UART          1 /** message from uart. */
 | |
| #define IOT_CUSAPP_MT_SG            2 /** message from sg-app. */
 | |
| #define IOT_CUSAPP_MT_WL            3 /** message from wrieless device. */
 | |
| #define IOT_CUSAPP_MT_SOCKET        4 /** message from socket */
 | |
| #define IOT_CUSAPP_MT_PLC           5 /** message from plc */
 | |
| 
 | |
| /* Message type defination id definition */
 | |
| #define IOT_CUSAPP_ID_MSG_PLC       1   /* message delivered from PLC */
 | |
| 
 | |
| /* enable socket to cctt at CUSAPP */
 | |
| #define IOT_CUSAPP_SOCKET_TO_CCTT_ENABLE        0
 | |
| /* local port on CCO */
 | |
| #define IOT_CUSAPP_SOCKET_LOCAL_PORT            55555
 | |
| /* remote port on cctt */
 | |
| #define IOT_CUSAPP_SOCKET_REMOTE_PORT           55555
 | |
| /* cctt's ip */
 | |
| #define IOT_CUSAPP_SOCKET_REMOTE_IP             "10.100.0.2"
 | |
| 
 | |
| enum _iot_cusapp_data_process_path_
 | |
| {
 | |
|     CUSAPP_PT_PLC = 0,
 | |
|     CUSAPP_PT_WIERLESS = 1,
 | |
|     CUSAPP_PT_MAX
 | |
| };
 | |
| 
 | |
| /** uart data process handle */
 | |
| typedef void (*iot_cusapp_uart_data_handle)(iot_pkt_t *p_pkt, uint32_t arg);
 | |
| 
 | |
| /** cusapp message */
 | |
| typedef struct _iot_cusapp_msg {
 | |
|     /* iot task message */
 | |
|     iot_task_msg_t  task_msg;
 | |
|     /* pointer to message data */
 | |
|     void            *data;
 | |
|     /* another data field */
 | |
|     uint32_t        data2;
 | |
| } iot_cusapp_msg_t;
 | |
| 
 | |
| /*
 | |
|  * function callback to handle msg executing case
 | |
|  * @msg:        pointer to message to be executed
 | |
|  */
 | |
| typedef void (*iot_sg_ext_msg_execute_func_t)(iot_cusapp_msg_t *msg);
 | |
| 
 | |
| /*
 | |
|  * function callback to handle msg canceling case
 | |
|  * @msg:        pointer to message to be canceled
 | |
|  */
 | |
| typedef void (*iot_sg_ext_msg_cancel_func_t)(iot_cusapp_msg_t *msg);
 | |
| 
 | |
| /* Entity of cusapp. */
 | |
| typedef struct _iot_cusapp {
 | |
|     iot_task_config_t task_cfg;
 | |
|     iot_uart_h  uart_h;
 | |
|     iot_task_h  task_h;
 | |
|     iot_ipc_h   ipc_h;
 | |
|     iot_plc_app_h  app_handle;
 | |
|     uint8_t     role;
 | |
|     uint32_t    module_type;
 | |
|     int32_t     socket_h;
 | |
|     iot_sg_ext_msg_execute_func_t   msg_exe_func;
 | |
|     iot_sg_ext_msg_cancel_func_t    msg_cancel_func;
 | |
|     iot_cusapp_uart_data_handle path[CUSAPP_PT_MAX];
 | |
| } iot_cusapp_t;
 | |
| 
 | |
| /**
 | |
|  * @brief iot_cusapp_uart_send() - Send data to uart port.
 | |
|  * @param p_pkt: packet for sending to uart port, the packet shall be release.
 | |
|  * @return: ERR_OK - send successfully.
 | |
|  *   ERR_FAIL - send failed.
 | |
|  */
 | |
| uint32_t iot_cusapp_uart_send(iot_pkt_t *p_pkt);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_cusapp_uart_data_path_get() - Select data path to the target.
 | |
|  * @return: the path. reference to enum _iot_cusapp_data_process_path_.
 | |
|  */
 | |
| uint32_t iot_cusapp_data_path_get(void);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_cusapp_cmd_uart_config() - uart config function.
 | |
|  * @param p_data: argument for configration.
 | |
|  */
 | |
| uint32_t iot_cusapp_cmd_uart_config(void *p_data);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_cusapp_send_msdu_to_sg() - send msdu data to sg.
 | |
|  * @param pkt: data for send to sg.
 | |
|  */
 | |
| void iot_cusapp_send_msdu_to_sg(iot_pkt_t *pkt);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_cusapp_cmd_msdu_enable() - enable msdu handle.
 | |
|  * @param enable: if enable msud handle.
 | |
|  */
 | |
| void iot_cusapp_cmd_msdu_enable(uint8_t enable);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_cusapp_send_msdu_to_plc() - send plc msdu data.
 | |
|  * @param msg_type: msdu msg type, see IOT_SG_EXT_CUS_TYPE_XXX.
 | |
|  * @param dest_mac: sta mac addr, big - endian.
 | |
|  * @param pro: msg priority, valid value is 0-3.
 | |
|  * @param retry_cnt: msg retry count, see IOT_SG_EXT_CUS_XXX.
 | |
|  * @param len: send msdu data length.
 | |
|  * @param data: send msdu data.
 | |
|  */
 | |
| void iot_cusapp_send_msdu_to_plc(uint8_t msg_type, uint8_t* dest_mac,
 | |
|     uint8_t pro, uint8_t retry_cnt, uint16_t len, uint8_t *data);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* _IOT_CUSAPP_H_ */
 |