初版
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
|
||||
#ifndef _JL_RCSP_LIB_API_H_
|
||||
#define _JL_RCSP_LIB_API_H_
|
||||
|
||||
#include "typedef.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_auth_recieve(u8 *buffer, u16 len);
|
||||
|
||||
u8 get_rcsp_version(void);
|
||||
void get_ai_platform(struct _AI_platform *p, u8 platform);
|
||||
void JL_rcsp_set_no_auth(void);
|
||||
void JL_rcsp_set_pvid_flag(u8 flag);
|
||||
#endif //_JL_RCSP_LIB_H_
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
#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
|
||||
#if (defined(CONFIG_CPU_BD47) || defined(CONFIG_CPU_BR29)) && defined(BLE_APP_LOW_RAM_USED) // bd47 内存紧缺
|
||||
#define JL_MTU_RESV (264L)
|
||||
#else
|
||||
#define JL_MTU_RESV (520L)
|
||||
#endif
|
||||
#define JL_MTU_SEND (264L)
|
||||
#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
|
||||
#ifdef APP_USE_MOR_SPACE
|
||||
#define JL_MTU_RESV (4106L)
|
||||
#else
|
||||
#if (defined(CONFIG_CPU_BD47) || defined(CONFIG_CPU_BR29)) && defined(BLE_APP_LOW_RAM_USED) // bd47 内存紧缺
|
||||
#define JL_MTU_RESV (264L)
|
||||
#else
|
||||
#define JL_MTU_RESV (520L)
|
||||
#endif
|
||||
#endif
|
||||
#define JL_MTU_SEND (264L)
|
||||
#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
|
||||
|
||||
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);
|
||||
|
||||
#endif//__JL_PACKET_H__
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
#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_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 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)
|
||||
|
||||
#define SDK_TYPE_AC690X 0x0
|
||||
#define SDK_TYPE_AC692X 0x1
|
||||
#define SDK_TYPE_AC693X 0x2
|
||||
#define SDK_TYPE_AC695X 0x3
|
||||
#define SDK_TYPE_AC697X 0x4
|
||||
#define SDK_TYPE_AC693N 0x5
|
||||
#define SDK_TYPE_AC698N 0x06
|
||||
|
||||
#if (defined CONFIG_CPU_BR21)
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC692X
|
||||
#elif (defined CONFIG_CPU_BR22)
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC693X
|
||||
#elif (defined CONFIG_CPU_BR23)
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC695X
|
||||
#elif (defined CONFIG_CPU_BR30)
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC697X
|
||||
#elif (defined CONFIG_CPU_BD29)
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC693N
|
||||
#elif (defined CONFIG_CPU_BR34)
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC698N
|
||||
#else
|
||||
#define RCSP_SDK_TYPE SDK_TYPE_AC693X
|
||||
#endif
|
||||
|
||||
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_SYS_INFO_GET = 0x07,
|
||||
JL_OPCODE_SYS_INFO_SET = 0x08,
|
||||
JL_OPCODE_SYS_INFO_AUTO_UPDATE = 0x09,
|
||||
JL_OPCODE_FILE_BROWSE_REQUEST_START = 0x0C,
|
||||
JL_OPCODE_FILE_BROWSE_REQUEST_STOP = 0x0D,
|
||||
|
||||
JL_OPCODE_SYS_OPEN_BT_SCAN = 0x12,
|
||||
JL_OPCODE_SYS_UPDATE_BT_STATUS = 0X13,
|
||||
JL_OPCODE_SYS_STOP_BT_SCAN = 0X14,
|
||||
|
||||
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;
|
||||
|
||||
enum {
|
||||
JL_ERR_PACKAGE_RETRY_OPT_FLAG_DISENABLE,
|
||||
JL_ERR_PACKAGE_RETRY_OPT_FLAG_ENABLE,
|
||||
JL_ERR_PACKAGE_RETRY_OPT_TRIGGER,
|
||||
JL_ERR_PACKAGE_RETRY_OPT_PREPARE,
|
||||
JL_ERR_PACKAGE_RETRY_OPT_QUERY,
|
||||
JL_ERR_PACKAGE_RETRY_OPT_END,
|
||||
};
|
||||
|
||||
///*< 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 jl_rcsp_retry_handle(u8 opt);
|
||||
|
||||
#endif//__JL_PROTOCOL_H__
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
#ifndef __RCSP_CONTROL_H__
|
||||
#define __RCSP_CONTROL_H__
|
||||
|
||||
#define JL_RCSP_USER_COUSTOM_EN 0
|
||||
#include "typedef.h"
|
||||
//#include "custom_cfg.h"
|
||||
//#include <le_user.h>
|
||||
#if JL_RCSP_USER_COUSTOM_EN
|
||||
#include "rcsp_user_api.h"
|
||||
#endif
|
||||
|
||||
#ifdef USB_HID_MODULE_CONTROL
|
||||
#include "rcsp_hid_inter.h"
|
||||
#endif
|
||||
|
||||
#if (defined(CONFIG_CPU_BD47) || defined(CONFIG_CPU_BR29)) && defined(BLE_APP_LOW_RAM_USED) // bd47 内存紧缺
|
||||
#define JL_CONTROLLER_POOL_SIZE (256 + 32)
|
||||
#else
|
||||
#define JL_CONTROLLER_POOL_SIZE 512
|
||||
#endif
|
||||
|
||||
//for update cmd
|
||||
#define JL_OPCODE_GET_DEVICE_UPDATE_FILE_INFO_OFFSET 0xe1 //rsp:addr[4]+len[2]
|
||||
#define JL_OPCODE_INQUIRE_DEVICE_IF_CAN_UPDATE 0xe2 //req:len[2]+data[len]
|
||||
#define JL_OPCODE_ENTER_UPDATE_MODE 0xe3 //
|
||||
#define JL_OPCODE_EXIT_UPDATE_MODE 0xe4 //rsp:0x01(fail)
|
||||
#define JL_OPCODE_SEND_FW_UPDATE_BLOCK 0xe5 //len:
|
||||
#define JL_OPCODE_GET_DEVICE_REFRESH_FW_STATUS 0xe6
|
||||
#define JL_OPCODE_SET_DEVICE_REBOOT 0xe7
|
||||
#define JL_OPCODE_NOTIFY_TO_SWITCH_COMMUNICATION_WAY 0x0B //
|
||||
#define JL_OPCODE_NOTIFY_UPDATE_CONENT_SIZE 0xe8
|
||||
#define JL_OPCODE_GET_MD5 0xD4
|
||||
|
||||
|
||||
#define JL_OPCODE_JL_PRIVATE 0xF0 //
|
||||
#define JL_OPCODE_DATA_JL_PRIVATE 0xF1
|
||||
|
||||
//......................gpio.........................
|
||||
//#ifndef UART_ENABLE
|
||||
#define GET_GPIO_INFO_FLAG
|
||||
//#endif
|
||||
|
||||
#define IO_GROUP_NUM 16
|
||||
#define NUM_ERR 2
|
||||
#define PARAM_ERR 1
|
||||
#define NO_ERR 0
|
||||
/*
|
||||
typedef struct {
|
||||
__RW __u32 OUT;
|
||||
__RW __u32 IN;
|
||||
__RW __u32 DIR;
|
||||
__RW __u32 DIE;
|
||||
__RW __u32 PU;
|
||||
__RW __u32 PD;
|
||||
__RW __u32 HD;
|
||||
} JL_PORT_TypeDef;
|
||||
|
||||
#define JL_PORTA_BASE (ls_base + map_adr(0x01, 0x00))
|
||||
#define JL_PORTA ((JL_PORT_TypeDef *)JL_PORTA_BASE)
|
||||
|
||||
#define JL_PORTB_BASE (ls_base + map_adr(0x01, 0x08))
|
||||
#define JL_PORTB ((JL_PORT_TypeDef *)JL_PORTB_BASE)
|
||||
|
||||
#define JL_PORTC_BASE (ls_base + map_adr(0x01, 0x10))
|
||||
#define JL_PORTC ((JL_PORT_TypeDef *)JL_PORTC_BASE)
|
||||
|
||||
#define JL_PORTD_BASE (ls_base + map_adr(0X01, 0X18))
|
||||
#define JL_PORTD ((JL_PORT_TypeDef *)JL_PORTD_BASE)
|
||||
*/
|
||||
//......................gpio.........................
|
||||
|
||||
typedef enum __DEVICE_REFRESH_FW_STATUS {
|
||||
DEVICE_UPDATE_STA_SUCCESS = 0, //升级成功(default)
|
||||
DEVICE_UPDATE_STA_VERIFY_ERR, //升级完校验代码出错(default)
|
||||
DEVICE_UPDATE_STA_FAIL, //升级失败(default)
|
||||
DEVICE_UPDATE_STA_KEY_ERR, //加密key不匹配
|
||||
DEVICE_UPDATE_STA_FILE_ERR, //升级文件出错
|
||||
DEVICE_UPDATE_STA_TYPE_ERR, //升级类型出错,仅code_type;
|
||||
DEVICE_UPDATE_STA_MAX_ERR,
|
||||
} DEVICE_UPDATE_STA;
|
||||
|
||||
enum {
|
||||
REBOOT_STA_READY = 0,
|
||||
REBOOT_STA_NOT_ALLOW,
|
||||
};
|
||||
|
||||
void rcsp_init(void (*)(void), void (*)(void));
|
||||
void rcsp_dev_select(u8 type);
|
||||
void function_change_inform(void);
|
||||
|
||||
bool common_msg_deal(u32 param);
|
||||
bool ble_msg_deal(u32 param);
|
||||
bool music_msg_deal(u32 param);
|
||||
bool linein_msg_deal(u32 param);
|
||||
bool rtc_msg_deal(u32 param);
|
||||
|
||||
u16 JL_rcsp_speech_data_send(u8 *buf, u16 len);
|
||||
|
||||
/* enum {
|
||||
RCSP_BLE,
|
||||
RCSP_SPP,
|
||||
}; */
|
||||
|
||||
#define RCSP_BLE 0
|
||||
#define RCSP_SPP 1
|
||||
#define RCSP_HID 2
|
||||
|
||||
enum {
|
||||
ANDROID,
|
||||
APPLE_IOS,
|
||||
};
|
||||
|
||||
struct ble_server_operation_t {
|
||||
int(*adv_enable)(void *priv, u32 enable);
|
||||
int(*disconnect)(void *priv);
|
||||
int(*get_buffer_vaild)(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(*latency_enable)(void *priv, u32 enable);
|
||||
int(*get_packet_num_of_not_sent)(void *priv);
|
||||
int(*close)(void *priv);
|
||||
};
|
||||
|
||||
struct JL_AI_VAR {
|
||||
u8 JL_ble_status;
|
||||
struct ble_server_operation_t *rcsp_ble;
|
||||
u8 JL_spp_status;
|
||||
struct spp_operation_t *rcsp_spp;
|
||||
#ifdef USB_HID_MODULE_CONTROL
|
||||
struct rcsp_hid_operation_t *rcsp_hid;
|
||||
#endif
|
||||
volatile u8 speech_state;
|
||||
u32 feature_mask;
|
||||
u8 device_type;
|
||||
u8 phone_platform;
|
||||
void (*start_speech)(void);
|
||||
void (*stop_speech)(void);
|
||||
u8 err_report;
|
||||
volatile u8 file_browse_lock_flag;
|
||||
u32 return_msg;
|
||||
u8 spec_mode;
|
||||
#if JL_RCSP_USER_COUSTOM_EN
|
||||
struct __rcsp_user_var *rcsp_user;
|
||||
#endif
|
||||
volatile u8 rcsp_resume_cnt;
|
||||
volatile u16 rcsp_tick_cnt;
|
||||
};
|
||||
|
||||
struct _SPEECH_OVER_DEAL {
|
||||
u8 last_task;
|
||||
u8 status;
|
||||
};
|
||||
|
||||
typedef enum __JL_ATTR_TYPE {
|
||||
JL_ATTR_TYPE_PROTOCOL_VERSION = 0x0,
|
||||
JL_ATTR_TYPE_SYS_INFO,
|
||||
JL_ATTR_TYPE_EDR_INFO,
|
||||
JL_ATTR_TYPE_PLATFORM,
|
||||
|
||||
JL_ATTR_TYPE_FUNCTION_INFO = 0x4,
|
||||
JL_ATTR_TYPE_DEV_VERSION,
|
||||
JL_ATTR_TYPE_SDK_TYPE,
|
||||
JL_ATTR_TYPE_UBOOT_VERSION,
|
||||
|
||||
JL_ATTR_TYPE_FW_DOUBLE_BANK = 0x8,
|
||||
JL_ATTR_TYPE_FORCE_UPDATE_STATUS,
|
||||
JL_ATTR_TYPE_PID_VID,
|
||||
#if 1//VER_INFO_EXT_CONUNT
|
||||
JL_ATTR_TYPE_AUTH_KEY,
|
||||
JL_ATTR_TYPE_PRO_CODE,
|
||||
#endif
|
||||
JL_ATTR_TYPE_CUSTOM_VER = 31,
|
||||
JL_ATTR_TYPE_MAX,
|
||||
|
||||
} JL_ATTR_TYPE;
|
||||
|
||||
typedef struct _app_update_op_api_t {
|
||||
void *(*data_send)(void *priv, u8 btupdata_sw, u8 seek_type, u32 offset_addr, u16 len);
|
||||
void *(*notify_update_content_size)(void *priv, u32 size);
|
||||
void *(*dev_disconnect)(void *priv);
|
||||
int (*get_number_of_pkt_sending)(void *priv);
|
||||
void (*register_update_data_handle)(void (*handle)(u8 *buf, u16 len));
|
||||
void (*register_update_status_req_handle)(u8(*handle)(void));
|
||||
void (*register_conn_state_change_handle)(void (*handle)(void *priv, u8 state));
|
||||
void (*btstack_init)(void);
|
||||
void (*task_run)(void);
|
||||
void (*btstack_resume)(void);
|
||||
void (*dev_set_discoverable_mode)(u8 mode);
|
||||
void (*dev_close)(void);
|
||||
} app_update_op_api_t;
|
||||
|
||||
|
||||
extern struct JL_AI_VAR jl_ai_var;
|
||||
extern struct _SPEECH_OVER_DEAL speech_deal_val;
|
||||
|
||||
extern void JL_controller_resp_udpate_status_request(u8 status);
|
||||
extern void dev_get_update_opearation_table(app_update_op_api_t **interface_ptr);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user