118 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			118 lines
		
	
	
		
			3.9 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_BT_EXT_API_H_
 | ||
|  | #define _IOT_BT_EXT_API_H_
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #include "iot_pkt_api.h"
 | ||
|  | 
 | ||
|  | /* bluetooth mac address length */ | ||
|  | #define IOT_BT_EXT_MAC_ADDR_LEN             6
 | ||
|  | 
 | ||
|  | /* bluetooth user port support num, not modify this define */ | ||
|  | #define IOT_BT_EXT_PORT_USER_NUM           (IOT_BT_EXT_PORT_USER_END \
 | ||
|  |     - IOT_BT_EXT_PORT_USER_BASE) | ||
|  | 
 | ||
|  | /* bluetooth user port define.
 | ||
|  |  * add new port id before IOT_BT_EXT_PORT_USER_END | ||
|  |  */ | ||
|  | typedef enum { | ||
|  |     /* bluetooth first user port id */ | ||
|  |     IOT_BT_EXT_PORT_USER_BASE       = 4, | ||
|  |     /* bluetooth virtual ir port */ | ||
|  |     IOT_BT_EXT_PORT_USER_VIRTUAL_IR = IOT_BT_EXT_PORT_USER_BASE, | ||
|  |     /* bluttooth virtual cli port */ | ||
|  |     IOT_BT_EXT_PORT_USER_VIRTUAL_CLI, | ||
|  |     /* user port end id */ | ||
|  |     IOT_BT_EXT_PORT_USER_END, | ||
|  | } IOT_BT_EXT_PORT_USER_ID; | ||
|  | 
 | ||
|  | /* @brief           peripheral receive a packet success report function callback
 | ||
|  |  * | ||
|  |  * @param pkt:      recevived pkt. user need to free the pkt. | ||
|  |  * @return:         none | ||
|  |  */ | ||
|  | typedef void (*iot_bt_ext_rpt_func_t)(iot_pkt_t *pkt); | ||
|  | 
 | ||
|  | /* @brief           peripheral receive report register
 | ||
|  |  * | ||
|  |  * @param port:     protocol port id, see IOT_BT_EXT_PORT_XXX | ||
|  |  * @param cb:       report callback | ||
|  |  * @return:         error code. | ||
|  |  */ | ||
|  | uint32_t iot_bt_ext_rpt_register(uint8_t port, iot_bt_ext_rpt_func_t cb); | ||
|  | 
 | ||
|  | /* @brief           alloc bt protocol send pkt
 | ||
|  |  * | ||
|  |  * @param len:      send data len | ||
|  |  * @return:         alloc pkt ptr | ||
|  |  */ | ||
|  | iot_pkt_t *iot_bt_ext_send_pkt_get(uint32_t len); | ||
|  | 
 | ||
|  | /* @brief           send bt protocol packet
 | ||
|  |  * | ||
|  |  * @param port:     protocol port id, see IOT_BT_EXT_PORT_XXX | ||
|  |  * @param pkt:      send pkt, user need alloc pkt use iot_bt_ext_send_pkt_get | ||
|  |  *                  api, then call the api to send data, the bt_ext task will | ||
|  |  *                  free the pkt. | ||
|  |  * @return:         none | ||
|  |  */ | ||
|  | void iot_bt_ext_send(uint8_t port, iot_pkt_t *pkt); | ||
|  | 
 | ||
|  | /* @brief               get bluetooth mac address
 | ||
|  |  * | ||
|  |  * @param addr:         bluetooth mac address pointer. little endian byte order. | ||
|  |  *                      length = 6bytes. | ||
|  |  *                      this buffer must be alloc by the caller. | ||
|  |  * @return:             error code. see ERR_XXX. | ||
|  |  */ | ||
|  | uint32_t iot_bt_ext_get_mac_addr(uint8_t *addr); | ||
|  | 
 | ||
|  | /* @brief               set bluetooth mac address
 | ||
|  |  * | ||
|  |  * @param addr:         bluetooth mac address pointer. little endian byte order. | ||
|  |  *                      length = 6bytes. | ||
|  |  *                      this buffer must be alloc by the caller. | ||
|  |  * @return:             error code. see ERR_XXX. | ||
|  |  */ | ||
|  | uint32_t iot_bt_ext_set_mac_addr(uint8_t *addr); | ||
|  | 
 | ||
|  | /* @brief               set bluetooth device local name
 | ||
|  |  * | ||
|  |  * @param name:         bluetooth device name pointer. little endian byte order. | ||
|  |  * @param len:          device name string length(39byte max) | ||
|  |  * | ||
|  |  * @return:             error code. see ERR_XXX. | ||
|  |  */ | ||
|  | uint32_t iot_bt_ext_set_local_name(uint8_t *name, uint8_t len); | ||
|  | 
 | ||
|  | /* @brief               set bluetooth security pair enable/disable
 | ||
|  |  * | ||
|  |  * @param is_enable:    0-disable, others-enable | ||
|  |  * | ||
|  |  * @return:             error code. see ERR_XXX. | ||
|  |  */ | ||
|  | uint32_t iot_bt_ext_set_security_pair(uint8_t is_enable); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif
 |