first
This commit is contained in:
136
include_lib/btstack/third_party/app_protocol_event.h
vendored
Normal file
136
include_lib/btstack/third_party/app_protocol_event.h
vendored
Normal file
@ -0,0 +1,136 @@
|
||||
|
||||
|
||||
#ifndef _3TH_PROTOCOL_EVENT_H
|
||||
#define _3TH_PROTOCOL_EVENT_H
|
||||
|
||||
//该文件只定义库里面和库外面都需要用得的第三方APP协议的消息和状态
|
||||
#include<string.h>
|
||||
#include <stdint.h>
|
||||
#include "typedef.h"
|
||||
|
||||
#define DEMO_HANDLER_ID 0x300 /*作为一个使用的例子,同时也可作为客户自己添加协议的ID*/
|
||||
#define GMA_HANDLER_ID 0x400 /*阿里天猫协议接口ID*/
|
||||
#define MMA_HANDLER_ID 0x500 /*小米MMA协议接口ID*/
|
||||
#define DMA_HANDLER_ID 0x600 /*百度DMA协议接口ID*/
|
||||
#define TME_HANDLER_ID 0x700 /*腾讯酷狗TME协议接口ID*/
|
||||
#define AMA_HANDLER_ID 0x800 /*亚马逊的AMA协议接口ID*/
|
||||
#define GFPS_HANDLER_ID 0x900 /*谷歌快对的协议接口ID*/
|
||||
//app protocol公共消息
|
||||
enum {
|
||||
APP_PROTOCOL_COMMON_NOTICE = 0,
|
||||
APP_PROTOCOL_CONNECTING, /*保留,暂未使用*/
|
||||
APP_PROTOCOL_CONNECTED_BLE, /*APP通过BLE连接成功状态更新*/
|
||||
APP_PROTOCOL_CONNECTED_SPP, /*APP通过SPP连接成功状态更新*/
|
||||
APP_PROTOCOL_DISCONNECT, /*APP连接断开状态更新*/
|
||||
APP_PROTOCOL_AUTH_PASS, /*连接认证通过标识更新*/
|
||||
APP_PROTOCOL_SPEECH_ENCODER_TYPE,
|
||||
APP_PROTOCOL_SPEECH_START, /*语音识别功能启动状态*/
|
||||
APP_PROTOCOL_SPEECH_STOP, /*语音识别功能停止状态*/
|
||||
APP_PROTOCOL_SET_VOLUME, /*app配置音量*/
|
||||
APP_PROTOCOL_GET_VOLUME, /*app读取音量*/
|
||||
APP_PROTOCOL_GET_AUX_STATUS, /*保留,暂未使用*/
|
||||
APP_PROTOCOL_LIB_TWS_DATA_SYNC, /*需要更新给另一端tws数据*/
|
||||
APP_PROTOCOL_COMMON_NOTICE_END = 0x14F,
|
||||
};
|
||||
//OTA消息
|
||||
enum {
|
||||
APP_PROTOCOL_OTA_COMMON_NOTICE = APP_PROTOCOL_COMMON_NOTICE_END + 1,
|
||||
APP_PROTOCOL_OTA_CHECK,
|
||||
APP_PROTOCOL_OTA_GET_APP_VERSION,
|
||||
APP_PROTOCOL_OTA_CHECK_CRC,
|
||||
APP_PROTOCOL_OTA_BEGIN,
|
||||
APP_PROTOCOL_OTA_TRANS_DATA,
|
||||
APP_PROTOCOL_OTA_PERCENT,
|
||||
APP_PROTOCOL_OTA_END,
|
||||
APP_PROTOCOL_OTA_SUCCESS,
|
||||
APP_PROTOCOL_OTA_FAIL,
|
||||
APP_PROTOCOL_OTA_CANCLE,
|
||||
APP_PROTOCOL_OTA_REBOOT,
|
||||
APP_PROTOCOL_OTA_COMMON_NOTICE_END = 0x1FF,
|
||||
};
|
||||
//GMA私有消息
|
||||
enum {
|
||||
APP_PROTOCOL_GMA_NOTICE_BEGIN = GMA_HANDLER_ID,
|
||||
APP_PROTOCOL_GMA_FMTX_SETFRE, /*样机支持FM功能的APP配置fm参数*/
|
||||
APP_PROTOCOL_GMA_FMTX_GETFRE, /*app获取当前的fm配置参数*/
|
||||
APP_PROTOCOL_GMA_NOTICE_END = GMA_HANDLER_ID + 0xFF,
|
||||
};
|
||||
//MMA私有消息
|
||||
enum {
|
||||
APP_PROTOCOL_MMA_NOTICE = MMA_HANDLER_ID,
|
||||
APP_PROTOCOL_MMA_SAVE_INFO, //库里面不直接访问VM接口,有些信息保存外面做
|
||||
APP_PROTOCOL_MMA_READ_INFO,
|
||||
APP_PROTOCOL_MMA_SAVE_ADV_COUNTER,
|
||||
APP_PROTOCOL_MMA_READ_ADV_COUNTER,
|
||||
APP_PROTOCOL_MMA_NOTICE_END = MMA_HANDLER_ID + 0xFF,
|
||||
};
|
||||
|
||||
//DMA私有消息
|
||||
enum {
|
||||
APP_PROTOCOL_DMA_NOTICE = DMA_HANDLER_ID,
|
||||
APP_PROTOCOL_DMA_SAVE_RAND, //库里面不直接访问VM接口,有些信息保存外面做
|
||||
APP_PROTOCOL_DMA_READ_RAND,
|
||||
APP_PROTOCOL_DMA_TWS_SNED_RAND,
|
||||
APP_PROTOCOL_DMA_TTS_TYPE,
|
||||
APP_PROTOCOL_DMA_SAVE_OTA_INFO, //库里面不直接访问VM接口,有些信息保存外面做
|
||||
APP_PROTOCOL_DMA_READ_OTA_INFO,
|
||||
APP_PROTOCOL_DMA_NOTICE_END = DMA_HANDLER_ID + 0xFF,
|
||||
};
|
||||
|
||||
// GFPS私有消息
|
||||
enum {
|
||||
APP_PROTOCOL_GFPS_RING_STOP_ALL = GFPS_HANDLER_ID,
|
||||
APP_PROTOCOL_GFPS_RING_RIGHT,
|
||||
APP_PROTOCOL_GFPS_RING_LEFT,
|
||||
APP_PROTOCOL_GFPS_RING_ALL,
|
||||
APP_PROTOCOL_GFPS_HEARABLE_CONTROLS,
|
||||
};
|
||||
|
||||
#define GFP_TWS_ENABLE 1
|
||||
|
||||
//APP_PROTOCOL获取电量的类型
|
||||
#define APP_PROTOCOL_BAT_T_CHARGE_FLAG 0
|
||||
#define APP_PROTOCOL_BAT_T_MAIN 1
|
||||
#define APP_PROTOCOL_BAT_T_BOX 2
|
||||
#define APP_PROTOCOL_BAT_T_TWS_LEFT 3
|
||||
#define APP_PROTOCOL_BAT_T_TWS_RIGHT 4
|
||||
#define APP_PROTOCOL_BAT_T_TWS_SIBLING 5
|
||||
#define APP_PROTOCOL_BAT_T_LOW_POWER 6
|
||||
#define APP_PROTOCOL_BAT_T_MAX 8
|
||||
|
||||
typedef struct _ota_frame_info_t {
|
||||
u16 max_pkt_len;
|
||||
u16 frame_crc;
|
||||
u32 frame_size;
|
||||
} ota_frame_info;
|
||||
|
||||
//*****//
|
||||
typedef enum {
|
||||
USER_NOTIFY_STATE_CONNECTED = 0, /**< 手机APP与设备建立连接 */
|
||||
USER_NOTIFY_STATE_DISCONNECTED, /**< 手机APP与设备的连接断开 */
|
||||
USER_NOTIFY_STATE_MOBILE_CONNECTED, /**< 手机与设备建立BT连接(A2DP、HFP、AVRCP) */
|
||||
USER_NOTIFY_STATE_MOBILE_DISCONNECTED, /**< 手机与设备BT连接(A2DP、HFP、AVRCP)断开 */
|
||||
USER_NOTIFY_STATE_SEND_PREPARE_DONE, /**< 设备端进入可向手机发送数据的状态 */
|
||||
USER_NOTIFY_STATE_TWS_CONNECT, /**< TWS类设备两端连接成功 */
|
||||
USER_NOTIFY_STATE_TWS_DISCONNECT, /**< TWS类设备两端断开连接 */
|
||||
USER_NOTIFY_STATE_BOX_OPEN, /**< 盒仓开启 */
|
||||
USER_NOTIFY_STATE_BOX_CLOSE, /**< 盒仓关闭 */
|
||||
USER_NOTIFY_STATE_ROLE_SWITCH_START, /**< TWS类设备开始进入主从切换流程 */
|
||||
USER_NOTIFY_STATE_ROLE_SWITCH_FINISH, /**< TWS类设备主从切换完成 */
|
||||
USER_NOTIFY_STATE_ROLE_SWITCH_REQUEST, /**< TWS类设备向APP发起主从切换请求 */
|
||||
USER_NOTIFY_STATE_DOUBLE_CLICK, /**< 设备双击按键 */
|
||||
USER_NOTIFY_STATE_KEYWORD_DETECTED, /**< 设备语音唤醒 */
|
||||
USER_NOTIFY_STATE_BATTERY_LEVEL_UPDATE, /**< 通知耳机电量更新 */
|
||||
USER_NOTIFY_STATE_ONE_CLICK, /**< 设备单击按键 */
|
||||
} USER_NOTIFY_STATE;
|
||||
|
||||
typedef enum {
|
||||
/*尽量返回简单的1或者0*/
|
||||
CHECK_STATUS_TWS_MASTER,
|
||||
CHECK_STATUS_TWS_SLAVE,
|
||||
CHECK_STATUS_TWS_PAIR_STA, /*1是tws已经配对了,0是未配对*/
|
||||
CHECK_STATUS_TWS_SIDE, /*0是单耳,1是左耳,2是右耳*/
|
||||
CHECK_STATUS_TWS_REV,
|
||||
CHECK_STATUS_TWS_REV1,
|
||||
} CHECK_STATUS;
|
||||
#endif
|
||||
146
include_lib/btstack/third_party/app_protocol_libs_api.h
vendored
Normal file
146
include_lib/btstack/third_party/app_protocol_libs_api.h
vendored
Normal file
@ -0,0 +1,146 @@
|
||||
|
||||
#ifndef __APP_PRO_LIBS_API_H__
|
||||
#define __APP_PRO_LIBS_API_H__
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
|
||||
///***************************************///
|
||||
//GMA的函数接口汇集,begin
|
||||
int gma_prev_init(void);
|
||||
int gma_opus_voice_mic_send(uint8_t *voice_buf, uint16_t voice_len);
|
||||
/*gma的总初始化函数**/
|
||||
void gma_all_init(void);
|
||||
/*gma的总的释放函数**/
|
||||
void gma_all_exit(void);
|
||||
bool gma_connect_success(void);
|
||||
void gma_set_active_ali_para(void *addr);
|
||||
/*TWS的公共地址配置*/
|
||||
void gma_set_sibling_mac_para(void *mac);
|
||||
void gma_ble_adv_enable(u8 enable);
|
||||
void gma_ble_ibeacon_adv(u8 enable);
|
||||
//gma接收的数据处理函数
|
||||
int gma_rx_loop(void);
|
||||
/*gma命令和数据发送处理*/
|
||||
int tm_data_send_process_thread(void);
|
||||
int gma_start_voice_recognition(int flag);
|
||||
|
||||
|
||||
int gma_disconnect(void *addr);
|
||||
|
||||
void gma_message_callback_register(int (*handler)(int opcode, u8 *data, u32 len));
|
||||
void gma_is_tws_master_callback_register(bool (*handler)(void));
|
||||
void gma_tx_resume_register(bool (*handler)(void));
|
||||
void gma_rx_resume_register(bool (*handler)(void));
|
||||
/*注册电量的获取回调函数*/
|
||||
void gma_get_battery_callback_register(bool (*handler)(u8 battery_type, u8 *value));
|
||||
|
||||
//ota interface
|
||||
int gma_ota_requset_next_packet(void *priv, u32 offset, u16 len);
|
||||
void gma_replay_ota_result(u8 result);
|
||||
|
||||
int tws_ota_get_data_from_sibling(u8 opcode, u8 *data, u8 len);
|
||||
u8 tws_ota_control(int type, ...);
|
||||
void tws_ota_app_event_deal(u8 evevt);
|
||||
//gma apis ends
|
||||
|
||||
///***************************************///
|
||||
//DMA apis begin
|
||||
extern int dueros_process();
|
||||
extern int dma_all_init(void);
|
||||
extern int dma_all_exit(void);
|
||||
extern void dma_message_callback_register(int (*handler)(int id, int opcode, u8 *data, u32 len));
|
||||
extern void dma_check_status_callback_register(int (*handler)(int state_flag));
|
||||
extern void dma_tx_resume_register(bool (*handler)(void));
|
||||
extern void dma_rx_resume_register(bool (*handler)(void));
|
||||
extern void dma_ble_adv_enable(u8 enable);
|
||||
extern u16 dma_speech_data_send(u8 *buf, u16 len);
|
||||
extern int dueros_send_process(void);
|
||||
extern void dma_set_product_id_key(void *data);
|
||||
extern bool dma_pair_state();
|
||||
extern int dma_start_voice_recognition(u8 en);
|
||||
extern void dueros_dma_manufacturer_info_init();
|
||||
extern int dma_disconnect(void *addr);
|
||||
extern int dma_update_tws_state_to_lib(int state);
|
||||
extern void dma_get_battery_callback_register(bool (*handler)(u8 battery_type, u8 *value));
|
||||
extern void dma_set_pid(u32 pid);
|
||||
extern void dma_tws_data_deal(u8 *data, int len);
|
||||
|
||||
|
||||
//DMA apis ends
|
||||
|
||||
///***************************************///
|
||||
//TME apis begins
|
||||
extern void tme_get_battery_callback_register(bool (*handler)(u8 battery_type, u8 *value));
|
||||
extern void tme_message_callback_register(int (*handler)(int id, int opcode, const u8 *data, u32 len));
|
||||
extern void tme_is_tws_master_callback_register(bool (*handler)(void));
|
||||
extern void tme_tx_resume_register(bool (*handler)(void));
|
||||
extern void tme_rx_resume_register(bool (*handler)(void));
|
||||
extern void TME_protocol_process(void *parm);
|
||||
extern int tme_all_init(void);
|
||||
extern int tme_all_exit(void);
|
||||
/* extern u16 tme_speech_data_send(buf, len); */
|
||||
extern void tme_ble_adv_enable(u8 enable);
|
||||
extern void TME_send_packet_process(void);
|
||||
extern void TME_recieve_packet_parse_process(void);
|
||||
extern bool tme_connect_success(void);
|
||||
extern int tme_send_voice_data(void *buf, u16 len);
|
||||
extern int tme_start_voice_recognition(int flag);
|
||||
extern void tme_set_configuration_info(void *addr);
|
||||
extern int tme_protocol_disconnect(void *priv);
|
||||
extern void tme_set_pid(u32 pid);
|
||||
extern void tme_set_bid(u32 bid);
|
||||
extern u32 TME_request_ota_data(void *priv, u32 offset, u16 len);
|
||||
extern void TME_notify_file_size(u32 file_size);
|
||||
|
||||
//TME api ends
|
||||
|
||||
///***************************************///
|
||||
//MMA api begins
|
||||
extern void mma_all_init(void);
|
||||
extern void mma_all_exit(void);
|
||||
extern void mma_ble_adv_enable(u8 enable);
|
||||
extern int XM_speech_data_send(u8 *buf, u16 len);
|
||||
extern bool XM_protocal_auth_pass(void);
|
||||
extern int mma_start_voice_recognition(int ctrl);
|
||||
extern void mma_message_callback_register(int (*handler)(int id, int opcode, u8 *data, u32 len));
|
||||
extern void mma_is_tws_master_callback_register(bool (*handler)(void));
|
||||
extern void mma_tx_resume_register(void (*handler)(void));
|
||||
extern void mma_rx_resume_register(void (*handler)(void));
|
||||
extern void mma_set_verdor_id(u16 pid);
|
||||
extern void mma_set_product_id(u16 pid);
|
||||
extern void mma_set_local_version(u16 version);
|
||||
extern int mma_protocol_loop_process();
|
||||
extern u32 mma_request_ota_data(void *priv, u32 offset, u16 len);
|
||||
extern int mma_notify_file_size(u32 size);
|
||||
extern u32 mma_report_ota_status(u8 state);
|
||||
extern int mma_disconnect(void *addr);
|
||||
extern void mma_tws_data_deal(u8 *data, int len);
|
||||
extern void mma_get_battery_callback_register(bool (*handler)(u8 battery_type, u8 *value));
|
||||
|
||||
//MMA API END
|
||||
|
||||
///***************************************///
|
||||
//GFPS apis begins
|
||||
extern int gfps_all_init();
|
||||
extern int gfps_all_exit();
|
||||
extern int gfps_disconnect(void);
|
||||
extern int gfps_ble_adv_enable(int enable);
|
||||
extern void gfps_set_model_id(uint8_t *model_id);
|
||||
extern void gfps_set_anti_spoofing_public_key(char *public_key);
|
||||
extern void gfps_set_anti_spoofing_private_key(char *private_key);
|
||||
extern void gfps_get_battery_callback_register(bool (*handler)(u8 battery_type, u8 *value));
|
||||
extern void gfps_message_callback_register(int (*handler)(int id, int opcode, u8 *data, u32 len));
|
||||
extern void gfps_set_pair_mode(void);
|
||||
extern void gfps_battery_update(void);
|
||||
extern void gfps_personalized_name_set(u8 *data, u8 len);
|
||||
extern void gfps_is_tws_master_callback_register(bool (*handler)(void));
|
||||
extern void gfps_tws_data_deal(u8 *data, int len);
|
||||
extern int gfps_update_tws_state_to_lib(int state);
|
||||
extern void gfps_factory_reset(void);
|
||||
extern void gfps_set_battery_ui_enable(uint8_t enable);
|
||||
extern void update_channel_map_do_in_irq_flag_set(uint8_t en);
|
||||
//GFPS API END
|
||||
#endif /* __APP_PRO_LIBS_API_H__ */
|
||||
|
||||
|
||||
15
include_lib/btstack/third_party/common/ble_config.h
vendored
Normal file
15
include_lib/btstack/third_party/common/ble_config.h
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef __BLE_CONFIG_H__
|
||||
#define __BLE_CONFIG_H__
|
||||
|
||||
#include "typedef.h"
|
||||
#include "ble_user.h"
|
||||
|
||||
bool bt_3th_ble_ready(void *priv);
|
||||
s32 bt_3th_ble_send(void *priv, void *data, u16 len);
|
||||
void bt_3th_ble_callback_set(void (*resume)(void), void (*recieve)(void *, void *, u16), void (*status)(void *, ble_state_e));
|
||||
void bt_3th_ble_status_callback(void *priv, ble_state_e status);
|
||||
int bt_3th_ble_data_send(void *priv, u8 *buf, u16 len);
|
||||
void bt_3th_ble_get_operation_table(void);
|
||||
ble_state_e bt_3th_get_jl_ble_status(void);
|
||||
|
||||
#endif//__BLE_CONFG_H__
|
||||
43
include_lib/btstack/third_party/common/ble_user.h
vendored
Normal file
43
include_lib/btstack/third_party/common/ble_user.h
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
#ifndef __BLE_USER_H__
|
||||
#define __BLE_USER_H__
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
typedef enum {
|
||||
BLE_ST_NULL = 0,
|
||||
BLE_ST_INIT_OK, //协议栈初始化ok
|
||||
BLE_ST_IDLE, //关闭广播或扫描状态
|
||||
BLE_ST_CONNECT, //链路刚连上
|
||||
BLE_ST_SEND_DISCONN, //发送断开命令,等待链路断开
|
||||
BLE_ST_DISCONN, //链路断开状态
|
||||
BLE_ST_CONNECT_FAIL, //连接失败
|
||||
BLE_ST_CONNECTION_UPDATE_OK,//更新连接参数完成
|
||||
|
||||
BLE_ST_ADV = 0x20, //设备处于广播状态
|
||||
BLE_ST_NOTIFY_IDICATE, //设备已连上,允许发数(已被主机使能通知)
|
||||
|
||||
BLE_ST_SCAN = 0x40, //设备处于搜索状态
|
||||
BLE_ST_CREATE_CONN, //发起设备连接
|
||||
BLE_ST_SEND_CREATE_CONN_CANNEL, //取消发起设备连接
|
||||
BLE_ST_SEARCH_COMPLETE, //链路连上,已搜索完profile,可以发送数据操作
|
||||
|
||||
BLE_ST_SEND_STACK_EXIT = 0x60, //发送退出协议栈命令,等待完成
|
||||
BLE_ST_STACK_EXIT_COMPLETE, //协议栈退出成功
|
||||
|
||||
} ble_state_e;
|
||||
|
||||
enum {
|
||||
APP_BLE_NO_ERROR = 0,
|
||||
APP_BLE_BUFF_FULL, //buffer 满,会丢弃当前发送的数据包
|
||||
APP_BLE_BUFF_ERROR, //
|
||||
APP_BLE_OPERATION_ERROR, //操作错误
|
||||
APP_BLE_IS_DISCONN, //链路已断开
|
||||
APP_BLE_NO_WRITE_CCC, //主机没有 write Client Characteristic Configuration
|
||||
};
|
||||
|
||||
struct BLE_CONFIG_VAR {
|
||||
ble_state_e JL_ble_status;
|
||||
struct ble_server_operation_t *rcsp_ble;
|
||||
};
|
||||
|
||||
#endif//__BLE_USER_H__
|
||||
72
include_lib/btstack/third_party/common/btstack_3th_protocol_user.h
vendored
Normal file
72
include_lib/btstack/third_party/common/btstack_3th_protocol_user.h
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
#ifndef __BTSTACK_3TH_PROTOCAL_H__
|
||||
#define __BTSTACK_3TH_PROTOCAL_H__
|
||||
|
||||
#include "spp_config.h"
|
||||
#include "ble_config.h"
|
||||
#include "JL_rcsp_api.h"
|
||||
#include "JL_rcsp_protocol.h"
|
||||
#include "JL_rcsp_packet.h"
|
||||
#include "attr.h"
|
||||
|
||||
|
||||
#define APP_TYPE_RCSP 0x01
|
||||
#define APP_TYPE_DUEROS 0x02
|
||||
#define APP_TYPE_BTSTACK 0xFF
|
||||
|
||||
|
||||
#define BT_CONFIG_BLE BIT(0)
|
||||
#define BT_CONFIG_SPP BIT(1)
|
||||
|
||||
typedef enum {
|
||||
BT_3TH_EVENT_COMMON_INIT,
|
||||
BT_3TH_EVENT_COMMON_BLE_STATUS,
|
||||
BT_3TH_EVENT_COMMON_SPP_STATUS,
|
||||
|
||||
BT_3TH_EVENT_RCSP_DEV_SELECT = 100,
|
||||
|
||||
|
||||
|
||||
|
||||
BT_3TH_EVENT_DUEROS_CONNECT = 200,
|
||||
|
||||
|
||||
} BT_3TH_EVENT_TYPE;
|
||||
|
||||
enum {
|
||||
RCSP_BLE,
|
||||
RCSP_SPP,
|
||||
};
|
||||
|
||||
|
||||
typedef struct __BT_3TH_USER_CB {
|
||||
int type;
|
||||
int bt_config;
|
||||
JL_PRO_CB bt_3th_handler;
|
||||
void (*BT_3TH_event_handler)(u16 opcode, u8 *packet, int size);
|
||||
void (*BT_3TH_data_handler)(u8 *packet, int size);
|
||||
int (*BT_3TH_spp_state_specific)(u8 type);
|
||||
} BT_3TH_USER_CB;
|
||||
|
||||
typedef struct __BT_3TH_PROTOCOL_CB {
|
||||
int type;
|
||||
void (*BT_3TH_type_dev_select)(u8 type);
|
||||
void (*resume)(void);
|
||||
void (*recieve)(void *, void *, u16);
|
||||
} BT_3TH_PROTOCOL_CB;
|
||||
|
||||
int btstack_3th_protocol_user_init(BT_3TH_USER_CB *protocol_callback);
|
||||
int btstack_3th_protocol_lib_init(BT_3TH_PROTOCOL_CB *protocol_lib_callback);
|
||||
|
||||
JL_PRO_CB *bt_3th_get_spp_callback(void);
|
||||
void bt_3th_set_spp_callback_priv(void *priv);
|
||||
JL_PRO_CB *bt_3th_get_ble_callback(void);
|
||||
void bt_3th_set_ble_callback_priv(void *priv);
|
||||
void bt_3th_dev_type_spp(void);
|
||||
void bt_3th_type_dev_select(u8 type);
|
||||
u8 bt_3th_get_cur_bt_channel_sel(void);
|
||||
void bt_3th_spp_state_handle(u8 type);
|
||||
void bt_3th_event_send_to_user(u16 opcode, u8 *packet, int size);
|
||||
void bt_3th_data_send_to_user(u8 *packet, int size);
|
||||
#endif// __BTSTACK_3TH_PROTOCAL_H__
|
||||
|
||||
|
||||
15
include_lib/btstack/third_party/common/spp_config.h
vendored
Normal file
15
include_lib/btstack/third_party/common/spp_config.h
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef __SPP_CONFIG_H__
|
||||
#define __SPP_CONFIG_H__
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
bool bt_3th_spp_fw_ready(void *priv);
|
||||
s32 bt_3th_spp_send(void *priv, void *data, u16 len);
|
||||
void bt_3th_spp_callback_set(void (*resume)(void), void (*recieve)(void *, void *, u16), void (*status)(u8));
|
||||
u8 bt_3th_get_jl_spp_status(void);
|
||||
void bt_3th_spp_status_callback(u8 status);
|
||||
int bt_3th_spp_data_send(void *priv, u8 *buf, u16 len);
|
||||
void bt_3th_spp_init(void);
|
||||
void bt_3th_spp_get_operation_table(void);
|
||||
|
||||
#endif//__SPP_CONFIG_H__
|
||||
37
include_lib/btstack/third_party/common/spp_user.h
vendored
Normal file
37
include_lib/btstack/third_party/common/spp_user.h
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
#ifndef __SPP_USER_H__
|
||||
#define __SPP_USER_H__
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
extern void (*spp_state_cbk)(u8 state);
|
||||
extern void (*spp_recieve_cbk)(void *priv, u8 *buf, u16 len);
|
||||
extern void user_spp_data_handler(u8 packet_type, u16 ch, u8 *packet, u16 size);
|
||||
|
||||
struct spp_operation_t {
|
||||
int(*disconnect)(void *priv);
|
||||
int(*send_data)(void *priv, void *buf, u16 len);
|
||||
int(*regist_wakeup_send)(void *priv, void *cbk);
|
||||
int(*regist_recieve_cbk)(void *priv, void *cbk);
|
||||
int(*regist_state_cbk)(void *priv, void *cbk);
|
||||
int(*busy_state)(void);
|
||||
};
|
||||
|
||||
enum {
|
||||
SPP_USER_ERR_NONE = 0x0,
|
||||
SPP_USER_ERR_SEND_BUFF_BUSY,
|
||||
SPP_USER_ERR_SEND_OVER_LIMIT,
|
||||
SPP_USER_ERR_SEND_FAIL,
|
||||
};
|
||||
|
||||
enum {
|
||||
SPP_USER_ST_NULL = 0x0,
|
||||
SPP_USER_ST_CONNECT,
|
||||
SPP_USER_ST_DISCONN,
|
||||
SPP_USER_ST_WAIT_DISC,
|
||||
SPP_USER_ST_CONNECT_OTA,
|
||||
SPP_USER_ST_DISCONN_OTA,
|
||||
};
|
||||
|
||||
void spp_get_operation_table(struct spp_operation_t **interface_pt);
|
||||
|
||||
#endif//__SPP_USER_H__
|
||||
43
include_lib/btstack/third_party/rcsp/JL_rcsp_api.h
vendored
Normal file
43
include_lib/btstack/third_party/rcsp/JL_rcsp_api.h
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
#ifndef _JL_RCSP_LIB_API_H_
|
||||
#define _JL_RCSP_LIB_API_H_
|
||||
|
||||
#include "typedef.h"
|
||||
#include "uart.h"
|
||||
|
||||
#define USE_LITTLE_ENDIAN 0
|
||||
#define USE_BIG_ENDIAN 1
|
||||
|
||||
#define USE_ENDIAN_TYPE USE_LITTLE_ENDIAN
|
||||
|
||||
|
||||
#define AI_LICENCE_LEN 16
|
||||
|
||||
enum {
|
||||
TULING = 0,
|
||||
DEEPBRAIN,
|
||||
};
|
||||
|
||||
#pragma pack(1)
|
||||
struct _AI_platform {
|
||||
u8 platform;
|
||||
u8 license[AI_LICENCE_LEN];
|
||||
};
|
||||
#pragma pack()
|
||||
|
||||
u16 app_htons(u16 n);
|
||||
u16 app_ntohs(u16 n);
|
||||
|
||||
u32 app_htonl(u32 n);
|
||||
u32 app_ntohl(u32 n);
|
||||
|
||||
void JL_rcsp_auth_init(int (*send)(void *, u8 *, u16), u8 *link_key, u8 *addr);
|
||||
void JL_rcsp_auth_reset(void);
|
||||
u8 JL_rcsp_get_auth_flag(void);
|
||||
void JL_rcsp_set_auth_flag(u8 auth_flag);
|
||||
void JL_rcsp_auth_recieve(u8 *buffer, u16 len);
|
||||
|
||||
u8 get_rcsp_version(void);
|
||||
void get_ai_platform(struct _AI_platform *p, u8 platform);
|
||||
void smart_auth_res_pass(void);
|
||||
#endif //_JL_RCSP_LIB_H_
|
||||
102
include_lib/btstack/third_party/rcsp/JL_rcsp_packet.h
vendored
Normal file
102
include_lib/btstack/third_party/rcsp/JL_rcsp_packet.h
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
#ifndef __JL_PACKET_H__
|
||||
#define __JL_PACKET_H__
|
||||
|
||||
#include "typedef.h"
|
||||
|
||||
|
||||
#define READ_BIG_U16(a) ((*((u8*)(a)) <<8) + *((u8*)(a)+1))
|
||||
#define READ_BIG_U32(a) ((*((u8*)(a)) <<24) + (*((u8*)(a)+1)<<16) + (*((u8*)(a)+2)<<8) + *((u8*)(a)+3))
|
||||
|
||||
#define READ_LIT_U16(a) (*((u8*)(a)) + (*((u8*)(a)+1)<<8))
|
||||
#define READ_LIT_U32(a) (*((u8*)(a)) + (*((u8*)(a)+1)<<8) + (*((u8*)(a)+2)<<16) + (*((u8*)(a)+3)<<24))
|
||||
|
||||
|
||||
#define WRITE_BIG_U16(a,src) {*((u8*)(a)+0) = (u8)(src>>8); *((u8*)(a)+1) = (u8)(src&0xff); }
|
||||
#define WRITE_BIG_U32(a,src) {*((u8*)(a)+0) = (u8)((src)>>24); *((u8*)(a)+1) = (u8)(((src)>>16)&0xff);*((u8*)(a)+2) = (u8)(((src)>>8)&0xff);*((u8*)(a)+3) = (u8)((src)&0xff);}
|
||||
|
||||
#define WRITE_LIT_U16(a,src) {*((u8*)(a)+1) = (u8)(src>>8); *((u8*)(a)+0) = (u8)(src&0xff); }
|
||||
#define WRITE_LIT_U32(a,src) {*((u8*)(a)+3) = (u8)((src)>>24); *((u8*)(a)+2) = (u8)(((src)>>16)&0xff);*((u8*)(a)+1) = (u8)(((src)>>8)&0xff);*((u8*)(a)+0) = (u8)((src)&0xff);}
|
||||
|
||||
|
||||
#pragma pack(1)
|
||||
typedef union __HEAD_BIT {
|
||||
struct {
|
||||
u16 _OpCode: 8; //OpCode val
|
||||
u16 _unsed : 6; //unsed
|
||||
u16 _resp : 1; //request for response
|
||||
u16 _type : 1; //command or response
|
||||
} _i;
|
||||
u16 _t;
|
||||
} HEAD_BIT;
|
||||
|
||||
struct __JL_PACKET {
|
||||
u8 tag[3];
|
||||
HEAD_BIT head;
|
||||
u16 length;
|
||||
u8 data[0];
|
||||
};
|
||||
#pragma pack()
|
||||
typedef struct __JL_PACKET JL_PACKET;
|
||||
|
||||
|
||||
#define JL_PACK_START_TAG0 (0xfe)
|
||||
#define JL_PACK_START_TAG1 (0xdc)
|
||||
#define JL_PACK_START_TAG2 (0xba)
|
||||
#define JL_PACK_END_TAG (0xef)
|
||||
#define JL_ONE_PACKET_LEN(n) (sizeof(JL_PACKET) + n + 1)
|
||||
|
||||
#ifdef JL_RCSP_UBOOT_LIB
|
||||
#define JL_MTU_RESV (540L)
|
||||
#define JL_MTU_SEND (128L)
|
||||
#define JL_RECIEVE_BUF_SIZE ((JL_MTU_RESV + sizeof(JL_PACKET))*2)
|
||||
#define JL_CMD_POOL_SIZE (JL_MTU_SEND)
|
||||
#define JL_RESP_POOL_SIZE (JL_MTU_SEND*2)
|
||||
#define JL_WAIT_RESP_POOL_SIZE (JL_MTU_SEND)
|
||||
#else
|
||||
#define JL_MTU_RESV (540L)
|
||||
#define JL_MTU_SEND (128L)
|
||||
#define JL_RECIEVE_BUF_SIZE (JL_MTU_RESV + sizeof(JL_PACKET) + 128)
|
||||
#define JL_CMD_POOL_SIZE (JL_MTU_SEND*4)
|
||||
#define JL_RESP_POOL_SIZE (JL_MTU_SEND*2)
|
||||
#define JL_WAIT_RESP_POOL_SIZE (JL_MTU_SEND*2)
|
||||
#endif
|
||||
|
||||
void set_jl_rcsp_recieve_buf_size(u16 size);
|
||||
u16 rcsp_packet_write_alloc_len(void);
|
||||
|
||||
u32 rcsp_packet_need_buf_size(void);
|
||||
u32 rcsp_packet_buf_init(u8 *buf, u32 len);
|
||||
|
||||
u16 JL_packet_get_rx_max_mtu(void);
|
||||
u16 JL_packet_get_tx_max_mtu(void);
|
||||
u16 JL_packet_set_mtu(u16 mtu);
|
||||
void JL_packet_recieve(void *buf, u16 len);
|
||||
u32 JL_pack_data_read_all(void *buf, u16 len);
|
||||
void JL_packet_clear_all_data(void);
|
||||
bool JL_packet_find(u8 *r_buf, JL_PACKET **packet);
|
||||
void JL_packet_init(void);
|
||||
void JL_packet_clear(void);
|
||||
|
||||
void JL_packet_packing(
|
||||
JL_PACKET *packet,
|
||||
u8 OpCode,
|
||||
u8 type,
|
||||
u8 request_rsp,
|
||||
u8 *extra_param,
|
||||
u16 extra_len,
|
||||
u8 *data,
|
||||
u16 len);
|
||||
|
||||
void set_jl_mtu_resv(u16 jl_mtu_resv_var);
|
||||
void set_jl_mtu_send(u16 jl_mtu_send_var);
|
||||
|
||||
extern u16 jl_mtu_resv;
|
||||
extern u16 jl_mtu_send;
|
||||
extern u16 jl_recieve_buf_size;
|
||||
extern u16 jl_cmd_pool_size;
|
||||
extern u16 jl_rcsp_pool_size;
|
||||
extern u16 jl_wait_rcsp_pool_size;
|
||||
|
||||
#endif//__JL_PACKET_H__
|
||||
|
||||
|
||||
217
include_lib/btstack/third_party/rcsp/JL_rcsp_protocol.h
vendored
Normal file
217
include_lib/btstack/third_party/rcsp/JL_rcsp_protocol.h
vendored
Normal file
@ -0,0 +1,217 @@
|
||||
#ifndef __JL_PROTOCOL_H__
|
||||
#define __JL_PROTOCOL_H__
|
||||
|
||||
#include "typedef.h"
|
||||
#include "JL_rcsp_packet.h"
|
||||
|
||||
#define ATTR_TYPE_PROTOCOL_VERSION (0)
|
||||
#define ATTR_TYPE_SYS_INFO (1)
|
||||
#define ATTR_TYPE_EDR_ADDR (2)
|
||||
#define ATTR_TYPE_PLATFORM (3)
|
||||
#define ATTR_TYPE_FUNCTION_INFO (4)
|
||||
#define ATTR_TYPE_DEV_VERSION (5)
|
||||
#define ATTR_TYPE_SDK_TYPE (6)
|
||||
#define ATTR_TYPE_UBOOT_VERSION (7)
|
||||
#define ATTR_TYPE_DOUBLE_PARITION (8)
|
||||
#define ATTR_TYPE_UPDATE_STATUS (9)
|
||||
#define ATTR_TYPE_DEV_VID_PID (10)
|
||||
#define ATTR_TYPE_DEV_AUTHKEY (11)
|
||||
#define ATTR_TYPE_DEV_PROCODE (12)
|
||||
#define ATTR_TYPE_DEV_MAX_MTU (13)
|
||||
#define ATTR_TEYP_BLE_ADDR (17)
|
||||
#define ATTR_TYPE_MD5_GAME_SUPPORT (19)
|
||||
|
||||
|
||||
|
||||
#define COMMON_INFO_ATTR_BATTERY (0)
|
||||
#define COMMON_INFO_ATTR_VOL (1)
|
||||
#define COMMON_INFO_ATTR_DEV (2)
|
||||
#define COMMON_INFO_ATTR_ERR_REPORT (3)
|
||||
#define COMMON_INFO_ATTR_EQ (4)
|
||||
#define COMMON_INFO_ATTR_FILE_BROWSE_TYPE (5)
|
||||
#define COMMON_INFO_ATTR_FUN_TYPE (6)
|
||||
#define COMMON_INFO_ATTR_LIGHT (7)
|
||||
#define COMMON_INFO_ATTR_FMTX (8)
|
||||
#define COMMON_INFO_ATTR_HIGH_LOW_SET (11)
|
||||
#define COMMON_INFO_ATTR_PRE_FETCH_ALL_EQ_INFO (12)
|
||||
#define COMMON_INFO_ATTR_ANC_VOICE (13)
|
||||
#define COMMON_INFO_ATTR_FETCH_ALL_ANC_VOICE (14)
|
||||
#define COMMON_INFO_ATTR_PHONE_SCO_STATE_INFO (15)
|
||||
#define COMMON_INFO_ATTR_ASSISTED_HEARING (20)
|
||||
#define COMMON_INFO_ATTR_ADAPTIVE_NOISE_REDUCTION (21)
|
||||
#define COMMON_INFO_ATTR_AI_NO_PICK (22)
|
||||
#define COMMON_INFO_ATTR_SCENE_NOISE_REDUCTION (23)
|
||||
#define COMMON_INFO_ATTR_WIND_NOISE_DETECTION (24)
|
||||
#define COMMON_INFO_ATTR_VOICE_ENHANCEMENT_MODE (25)
|
||||
|
||||
|
||||
|
||||
#define BT_INFO_ATTR_MUSIC_TITLE (0)
|
||||
#define BT_INFO_ATTR_MUSIC_ARTIST (1)
|
||||
#define BT_INFO_ATTR_MUSIC_ALBUM (2)
|
||||
#define BT_INFO_ATTR_MUSIC_NUMBER (3)
|
||||
#define BT_INFO_ATTR_MUSIC_TOTAL (4)
|
||||
#define BT_INFO_ATTR_MUSIC_GENRE (5)
|
||||
#define BT_INFO_ATTR_MUSIC_TIME (6)
|
||||
#define BT_INFO_ATTR_MUSIC_STATE (7)
|
||||
#define BT_INFO_ATTR_MUSIC_CURR_TIME (8)
|
||||
|
||||
#define BT_INFO_ATTR_01 (0)
|
||||
|
||||
#define MUSIC_INFO_ATTR_STATUS (0)
|
||||
#define MUSIC_INFO_ATTR_FILE_NAME (1)
|
||||
#define MUSIC_INFO_ATTR_FILE_PLAY_MODE (2)
|
||||
|
||||
#define RTC_INFO_ATTR_RTC_TIME (0)
|
||||
#define RTC_INFO_ATTR_RTC_ALRAM (1)
|
||||
|
||||
#define LINEIN_INFO_ATTR_STATUS (0)
|
||||
|
||||
|
||||
/***************************************/
|
||||
/* 注意:不能在这个枚举里加代码 */
|
||||
/* 注意:不能在这个枚举里加代码 */
|
||||
/* 注意:不能在这个枚举里加代码 */
|
||||
/***************************************/
|
||||
enum {
|
||||
JL_OPCODE_DATA = 0x01,
|
||||
JL_OPCODE_GET_TARGET_FEATURE_MAP = 0x02,
|
||||
JL_OPCODE_GET_TARGET_FEATURE = 0x03,
|
||||
// JL_OPCODE_SWITCH_DEVICE = 0x04,
|
||||
JL_OPCODE_DISCONNECT_EDR = 0x06,
|
||||
JL_OPCODE_SYS_INFO_GET = 0x07,
|
||||
JL_OPCODE_SYS_INFO_SET = 0x08,
|
||||
JL_OPCODE_SYS_INFO_AUTO_UPDATE = 0x09,
|
||||
JL_OPCODE_CALL_REQUEST = 0xa,
|
||||
JL_OPCODE_SWITCH_DEVICE = 0x0b,
|
||||
JL_OPCODE_FILE_BROWSE_REQUEST_START = 0x0C,
|
||||
JL_OPCODE_FILE_BROWSE_REQUEST_STOP = 0x0D,
|
||||
JL_OPCODE_FUNCTION_CMD = 0x0E,
|
||||
|
||||
JL_OPCODE_SYS_OPEN_BT_SCAN = 0x12,
|
||||
JL_OPCODE_SYS_UPDATE_BT_STATUS = 0X13,
|
||||
JL_OPCODE_SYS_STOP_BT_SCAN = 0X14,
|
||||
JL_OPCODE_SYS_BT_CONNECT_SPEC = 0X15,
|
||||
JL_OPCODE_SYS_EMITTER_BT_CONNECT_STATUS = 0XD3, // 临时调整, 被遗忘的指令
|
||||
JL_OPCODE_SYS_FIND_DEVICE = 0X19,
|
||||
|
||||
JL_OPCODE_EXTRA_FLASH_OPT = 0X1A,
|
||||
|
||||
//文件传输相关命令
|
||||
JL_OPCODE_FILE_TRANSFER_START = 0X1B,
|
||||
JL_OPCODE_FILE_TRANSFER_END = 0X1C,
|
||||
JL_OPCODE_FILE_TRANSFER = 0X1D,
|
||||
JL_OPCODE_FILE_TRANSFER_CANCEL = 0X1E,
|
||||
JL_OPCODE_FILE_DELETE = 0X1F,
|
||||
JL_OPCODE_FILE_RENAME = 0X20,
|
||||
|
||||
JL_OPCODE_ACTION_PREPARE = 0X21,//APP操作预处理
|
||||
JL_OPCODE_DEVICE_FORMAT = 0X22,//设备格式化
|
||||
JL_OPCODE_ONE_FILE_DELETE = 0x23,//删除一个文件
|
||||
JL_OPCODE_ONE_FILE_TRANS_BACK = 0x24,//回传一个文件
|
||||
JL_OPCODE_ALARM_EXTRA = 0x25,
|
||||
JL_OPCODE_FILE_BLUK_TRANSFER = 0x26,//批量大文件前准备
|
||||
JL_OPCODE_DEVICE_PARM_EXTRA = 0x27,//设备操作,如文件传输、文件删除、设备格式化参数扩展
|
||||
|
||||
JL_OPCODE_SIMPLE_FILE_TRANS = 0x28,
|
||||
|
||||
JL_OPCODE_SPORTS_DATA_INFO_GET = 0xA0,
|
||||
JL_OPCODE_SPORTS_DATA_INFO_SET = 0xA1,
|
||||
JL_OPCODE_SPORTS_DATA_INFO_AUTO_UPDATE = 0xA2,
|
||||
JL_OPCODE_SENSOR_LOG_DATA_AUTO_UPDATE = 0xA3,
|
||||
JL_OPCODE_SENSOR_NFC_FUNCTION_OPT = 0xA4,
|
||||
JL_OPCODE_SPORTS_DATA_INFO_OPT = 0xA5,
|
||||
JL_OPCODE_SPORTS_DATA_SYNC = 0xA6,
|
||||
|
||||
JL_OPCODE_NOTIFY_MTU = 0xD1,
|
||||
JL_OPCODE_GET_MD5 = 0xD4,
|
||||
JL_OPCODE_LOW_LATENCY_PARAM = 0xD5,
|
||||
JL_OPTCODE_EXTRA_FLASH_INFO = 0XD6,
|
||||
|
||||
JL_OPCODE_CUSTOMER_USER = 0xFF,
|
||||
};
|
||||
/***************************************/
|
||||
/***************************************/
|
||||
|
||||
enum {
|
||||
JL_NOT_NEED_RESPOND = 0,
|
||||
JL_NEED_RESPOND,
|
||||
};
|
||||
|
||||
enum {
|
||||
JL_AUTH_NOTPASS = 0,
|
||||
JL_AUTH_PASS,
|
||||
};
|
||||
|
||||
typedef enum __JL_ERR {
|
||||
JL_ERR_NONE = 0x0,
|
||||
JL_ERR_SEND_DATA_OVER_LIMIT,
|
||||
JL_ERR_SEND_BUSY,
|
||||
JL_ERR_SEND_NOT_READY,
|
||||
JL_ERR_EXIT,
|
||||
} JL_ERR;
|
||||
|
||||
typedef enum __JL_PRO_STATUS {
|
||||
JL_PRO_STATUS_SUCCESS = 0x0,
|
||||
JL_PRO_STATUS_FAIL,
|
||||
JL_PRO_STATUS_UNKOWN_CMD,
|
||||
JL_PRO_STATUS_BUSY,
|
||||
JL_PRO_STATUS_NO_RESPONSE,
|
||||
JL_PRO_STATUS_CRC_ERR,
|
||||
JL_PRO_STATUS_ALL_DATA_CRC_ERR,
|
||||
JL_PRO_STATUS_PARAM_ERR,
|
||||
JL_PRO_STATUS_RESP_DATA_OVER_LIMIT,
|
||||
|
||||
} JL_PRO_STATUS;
|
||||
|
||||
///*< JL_CMD、JL_CMD_response、JL_DATA、JL_DATA_response packet send functions>*/
|
||||
JL_ERR JL_CMD_send(u8 OpCode, u8 *data, u16 len, u8 request_rsp);
|
||||
JL_ERR JL_CMD_response_send(u8 OpCode, u8 status, u8 sn, u8 *data, u16 len);
|
||||
JL_ERR JL_DATA_send(u8 OpCode, u8 CMD_OpCode, u8 *data, u16 len, u8 request_rsp);
|
||||
JL_ERR JL_DATA_response_send(u8 OpCode, u8 status, u8 sn, u8 CMD_OpCode, u8 *data, u16 len);
|
||||
|
||||
///*<JL_CMD、JL_CMD_response、JL_DATA、JL_DATA_response recieve>*/
|
||||
typedef struct __JL_PRO_CB {
|
||||
/*send function callback, SPP or ble*/
|
||||
void *priv;
|
||||
bool (*fw_ready)(void *priv);
|
||||
s32(*fw_send)(void *priv, void *buf, u16 len);
|
||||
/*JL_CMD、JL_CMD_response、JL_DATA、JL_DATA_response packet recieve callback*/
|
||||
void (*CMD_resp)(void *priv, u8 OpCode, u8 OpCode_SN, u8 *data, u16 len);
|
||||
void (*DATA_resp)(void *priv, u8 OpCode_SN, u8 CMD_OpCode, u8 *data, u16 len);
|
||||
void (*CMD_no_resp)(void *priv, u8 OpCode, u8 *data, u16 len);
|
||||
void (*DATA_no_resp)(void *priv, u8 CMD_OpCode, u8 *data, u16 len);
|
||||
void (*CMD_recieve_resp)(void *priv, u8 OpCode, u8 status, u8 *data, u16 len);
|
||||
void (*DATA_recieve_resp)(void *priv, u8 status, u8 CMD_OpCode, u8 *data, u16 len);
|
||||
u8(*wait_resp_timeout)(void *priv, u8 OpCode, u8 counter);
|
||||
void (*auth_pass_callback)(void *priv);
|
||||
} JL_PRO_CB;
|
||||
|
||||
|
||||
extern u32 rcsp_fw_ready(void);
|
||||
extern u32 rcsp_protocol_need_buf_size(void);
|
||||
|
||||
extern void JL_protocol_init(u8 *buf, u32 len);
|
||||
extern void JL_protocol_exit(void);
|
||||
|
||||
extern void JL_protocol_dev_switch(const JL_PRO_CB *cb);
|
||||
|
||||
extern void JL_protocol_data_recieve(void *priv, void *buf, u16 len);
|
||||
extern void JL_protocol_resume(void);
|
||||
|
||||
extern void JL_protocol_process(void);
|
||||
|
||||
extern void set_auth_pass(u8 auth_pass);
|
||||
|
||||
extern void JL_set_cur_tick(u16 tick);
|
||||
|
||||
extern bool rcsp_send_list_is_empty(void);
|
||||
|
||||
|
||||
extern void JL_send_packet_process(void);
|
||||
extern void JL_recieve_packet_parse_process(void);
|
||||
|
||||
|
||||
#endif//__JL_PROTOCOL_H__
|
||||
|
||||
|
||||
15
include_lib/btstack/third_party/rcsp/attr.h
vendored
Normal file
15
include_lib/btstack/third_party/rcsp/attr.h
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef __ATTR_H__
|
||||
#define __ATTR_H__
|
||||
#include "typedef.h"
|
||||
|
||||
typedef u32(*attr_get_func)(void *priv, u8 attr, u8 *buf, u16 buf_size, u32 offset);
|
||||
typedef void (*attr_set_func)(void *priv, u8 attr, u8 *data, u16 len);
|
||||
|
||||
u16 add_one_attr_huge(u8 *buf, u16 max_len, u8 offset, u8 type, u8 *data, u16 size);
|
||||
u8 add_one_attr(u8 *buf, u16 max_len, u8 offset, u8 type, u8 *data, u8 size);
|
||||
u8 add_one_attr_ex(u8 *buf, u16 max_len, u8 offset, u8 type, u8 *data, u8 size, u8 att_size);
|
||||
u8 add_one_attr_continue(u8 *buf, u16 max_len, u8 offset, u8 type, u8 *data, u8 size);
|
||||
u32 attr_get(void *priv, u8 *buf, u16 buf_size, const attr_get_func *func_tab, u8 attr_max, u32 mask);
|
||||
void attr_set(void *priv, u8 *data, u16 len, const attr_set_func *func_tab, u8 attr_max);
|
||||
|
||||
#endif//__ATTR_H__
|
||||
Reference in New Issue
Block a user