139 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			4.1 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_BT_EXT_H_
 | |
| #define _IOT_BT_EXT_H_
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #include "os_types_api.h"
 | |
| #include "os_utils_api.h"
 | |
| #include "os_timer_api.h"
 | |
| #include "iot_uart_api.h"
 | |
| #include "iot_bt_ext_protocol.h"
 | |
| #include "iot_bt_ext_api.h"
 | |
| 
 | |
| /* peripheral config information */
 | |
| #define IOT_EXT_BT_PERI_BUF_LEN             1024 //TODO: may need to be fix
 | |
| 
 | |
| /* @brief               bluetooth alarm task callback function.
 | |
|  *                      implement by post messages.
 | |
|  *
 | |
|  * @param elapsed_time: elapsed time, unit: ms.
 | |
|  * @return:             none
 | |
|  */
 | |
| typedef void (*iot_bt_ext_alarm_func_t)(uint32_t elapsed_time);
 | |
| 
 | |
| /* @brief               bluetooth sub system open function.
 | |
|  *
 | |
|  * @return:             error code, see ERR_XXX
 | |
|  */
 | |
| typedef uint32_t (*iot_bt_ext_sub_open_func_t)(void);
 | |
| 
 | |
| /* @brief               bluetooth sub system close function.
 | |
|  *
 | |
|  * @return:             none
 | |
|  */
 | |
| typedef void (*iot_bt_ext_sub_close_func_t)(void);
 | |
| 
 | |
| /* bluetootch user information ctxt */
 | |
| typedef struct _iot_bt_ext_user_info {
 | |
|     /* user port id, see IOT_BT_EXT_PORT_USER_ID */
 | |
|     uint32_t                port_id;
 | |
|     /* user port rx data report function callback */
 | |
|     iot_bt_ext_rpt_func_t   rx_rpt_func;
 | |
| } iot_bt_ext_user_info_t;
 | |
| 
 | |
| /* peripheral uart config information */
 | |
| typedef struct _iot_bt_ext_uart_cfg {
 | |
|     /* uart parity mode */
 | |
|     uint32_t parity     : 8,
 | |
|     /* uart data len */
 | |
|         data            : 8,
 | |
|     /* uart stop len */
 | |
|         stop            : 8,
 | |
|     /* reserved */
 | |
|         rsvd            : 8;
 | |
|     /* baudrate */
 | |
|     uint32_t baud;
 | |
| } iot_bt_ext_uart_cfg_t;
 | |
| 
 | |
| typedef struct _iot_bt_ext_peri_ctxt {
 | |
|     iot_bt_ext_uart_cfg_t   uart_cfg;
 | |
|     /* uart handle */
 | |
|     iot_uart_h              peri_hdl;
 | |
| } iot_bt_ext_peri_ctxt_t;
 | |
| 
 | |
| /* sub system config */
 | |
| typedef struct _iot_bt_ext_sub_cfg {
 | |
|     /* sub system port id */
 | |
|     uint32_t                    port_id;
 | |
|     /* sub system open function entry */
 | |
|     iot_bt_ext_sub_open_func_t  open_func;
 | |
|     /* sub system close function entry */
 | |
|     iot_bt_ext_sub_close_func_t close_func;
 | |
|     /* sub system rx report function entry */
 | |
|     iot_bt_ext_rpt_func_t       rx_rpt_func;
 | |
|     /* sub systen alarm function callback */
 | |
|     iot_bt_ext_alarm_func_t     alarm_func;
 | |
| } iot_bt_ext_sub_cfg_t;
 | |
| 
 | |
| typedef struct _iot_bt_ext_sub_ctxt {
 | |
|     /* sub system number */
 | |
|     uint32_t sub_num            : 8,
 | |
|     /* reserved */
 | |
|         rsvd                    : 24;
 | |
|     /* sub system config entry */
 | |
|     iot_bt_ext_sub_cfg_t        *cfg;
 | |
| } iot_bt_ext_sub_info_t;
 | |
| 
 | |
| typedef struct _iot_bt_ext_ctxt {
 | |
|     /* alarm timer period, unit:ms */
 | |
|     uint32_t alarm_period   : 16,
 | |
|     /* reserved */
 | |
|         rsvd                : 16;
 | |
|     /* alarm timer id */
 | |
|     timer_id_t              alarm_timer;
 | |
|     /* task handle */
 | |
|     iot_task_h              task_hdl;
 | |
|     /* peripheral infomation */
 | |
|     iot_bt_ext_peri_ctxt_t  peri_info;
 | |
|     /*  */
 | |
|     iot_bt_ext_sub_info_t   sub_info;
 | |
|     /* plc bt protocol tx rx information */
 | |
|     iot_bt_ext_user_info_t  user_info[IOT_BT_EXT_PORT_USER_NUM];
 | |
| } iot_bt_ext_ctxt_t;
 | |
| 
 | |
| /* @brief           open plc bt module
 | |
|  *
 | |
|  * @param           none
 | |
|  * @return:         errno, see ERR_XXX
 | |
|  */
 | |
| uint32_t iot_bt_ext_open(void);
 | |
| 
 | |
| /* @brief           close plc bt module
 | |
|  *
 | |
|  * @param           none
 | |
|  * @return:         errno, see ERR_XXX
 | |
|  */
 | |
| uint32_t iot_bt_ext_close(void);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif
 |