237 lines
9.2 KiB
C
237 lines
9.2 KiB
C
|
||
/*----------------------------------------------------------------------------
|
||
* Copyright (c) Fenda Technologies Co., Ltd. 2021. All rights reserved.
|
||
*
|
||
* Description: ble_api.h
|
||
*
|
||
* Author: even
|
||
*
|
||
* Create: 2022-08-04
|
||
*--------------------------------------------------------------------------*/
|
||
|
||
#ifndef _BLE_API_H_
|
||
#define _BLE_API_H_
|
||
|
||
#ifdef __cplusplus
|
||
extern "C"
|
||
{
|
||
#endif
|
||
|
||
#include "ble_port.h"
|
||
#include "bts_br_gap.h"
|
||
#include "bts_gatt_client.h"
|
||
#include "bts_gatt_server.h"
|
||
#include "bts_le_gap.h"
|
||
#include "cmsis_os2.h"
|
||
#include "securec.h"
|
||
#include "sys_typedef.h"
|
||
#include <stdint.h>
|
||
#include <stdio.h>
|
||
#include <string.h>
|
||
|
||
#define BT_MAC_LEN 6
|
||
#define PROTOCOL_RES_FRAME_HEAD 0x5A
|
||
#define PROTOCOL_RES_FRAME_HEAD_2 0x5B
|
||
#define NAME_SIZE 20
|
||
#define MAX_PHONE_NUM 20
|
||
|
||
typedef struct
|
||
{
|
||
unsigned char addr[BT_MAC_LEN];
|
||
uint8_t type;
|
||
} bth_bd_addr;
|
||
|
||
struct gsensor_data
|
||
{
|
||
int16_t z;
|
||
int16_t x;
|
||
int16_t y;
|
||
};
|
||
|
||
struct data_flow {
|
||
uint8_t data_flow_id;
|
||
bool data_flow_type;
|
||
uint8_t *data;
|
||
uint32_t len;
|
||
};
|
||
|
||
typedef struct
|
||
{
|
||
uint16_t length;
|
||
uint8_t *value;
|
||
} tjd_ble_write_cb_t;
|
||
|
||
typedef struct
|
||
{
|
||
unsigned char id;
|
||
char name[NAME_SIZE];
|
||
char phone[MAX_PHONE_NUM];
|
||
} Contact;
|
||
|
||
// typedef void (*hal_watchdog_deinit_t)(int *val);
|
||
typedef void (*playing_state_callback_t)(int val);
|
||
typedef void (*snk_connect_state_callback_t)(int val);
|
||
typedef void (*src_connect_state_callback_t)(int val);
|
||
typedef void (*sync_lrc_callback_t)(const char *lrc, bool isFirst);
|
||
typedef void(*gap_connect_state_callback_t)(int val);
|
||
typedef void (*lefun_ai_data_callback_t)(struct data_flow *data);
|
||
typedef void (*play_dial_request_generate_picture_callback_t)(bool isSuccess);
|
||
typedef void (*play_dial_original_callback_t)(char * original_picture_name);
|
||
typedef void (*play_dial_preview_callback_t)(char * preview_picture_name);
|
||
|
||
typedef void (*fine_phone_end_callback_t)(void);
|
||
|
||
extern uint8_t g_server_id;
|
||
extern uint16_t gatt_server_id;
|
||
extern uint16_t g_server_conn_id;
|
||
extern uint16_t g_server_handle;
|
||
extern bool g_tjd_ble_into_camera_flag;
|
||
void svr_ble_adv_start(void);
|
||
bool ble_api_cmd_start_discovery(void);
|
||
bool ble_api_cmd_stop_discovery(void);
|
||
void ble_api_cmd_show_scan_list(void);
|
||
void tjd_alipay_bt_gatts_noyify(uint8_t *data, uint16_t data_len);
|
||
errcode_t tjd_ble_hid_server_send_input_report(void *data, uint8_t len);
|
||
void tjd_get_gatt_server_conn_handle_id(uint8_t *server_id, uint16_t *conn_id, uint16_t *handle);
|
||
bd_addr_t *tjd_get_lastconned_addr(void);
|
||
void ble_api_cmd_info_reset(void);
|
||
errcode_t ble_api_cmd_enable(void);
|
||
errcode_t ble_api_cmd_disable(void);
|
||
errcode_t ble_api_cmd_set_local_name(uint8_t *name, int len);
|
||
errcode_t ble_api_cmd_get_local_name(void);
|
||
errcode_t ble_api_cmd_set_local_addr(const bd_addr_t *addr);
|
||
errcode_t ble_api_cmd_get_local_addr(void);
|
||
errcode_t ble_api_cmd_get_bt_local_addr(void);
|
||
errcode_t ble_api_cmd_set_adv_data(uint8_t adv_id, const gap_ble_config_adv_data_t *data);
|
||
errcode_t ble_api_cmd_start_adv(uint8_t adv_id);
|
||
errcode_t tjd_ble_api_cmd_open(void);
|
||
errcode_t ble_api_cmd_close(void);
|
||
errcode_t svr_bt_gatts_notify(uint8_t *data, uint16_t data_len);
|
||
void tjd_ble_upload_file(const char *file_name, uint8_t file_type);
|
||
void tjd_ble_request_gps(void);
|
||
void tjd_ble_request_synchrodata(void);
|
||
void tjd_ble_request_flover(void);
|
||
void tjd_bt_set_mac_addr(void);
|
||
extern bool tjd_get_bt_statue(void);
|
||
extern bool tjd_get_bt_adv_statue(void);
|
||
extern bool tjd_get_bt_is_connect(void);
|
||
extern bool tjd_get_ble_is_connect(void);
|
||
extern bool tjd_get_ble_into_camera_flag(void);
|
||
void tjd_ble_remove_all_pairs(void);
|
||
bool tjd_get_ble_is_link_to_app(void);
|
||
void register_gap_connect_state_callback_t(gap_connect_state_callback_t callback);
|
||
void unregister_gap_connect_state_callback_t(void);
|
||
|
||
void register_playing_state_callback(playing_state_callback_t callback);
|
||
void unregister_playing_state_callback(void);
|
||
void register_snk_connect_state_callback(snk_connect_state_callback_t callback);
|
||
void unregister_snk_connect_state_callback(void);
|
||
void register_src_connect_state_callback(src_connect_state_callback_t callback);
|
||
void unregister_src_connect_state_callback(void);
|
||
void register_sync_lrc_callback(sync_lrc_callback_t callback);
|
||
void unregister_sync_lrc_callback(void);
|
||
|
||
void register_find_phone_end_callback(fine_phone_end_callback_t callback);
|
||
void unregister_find_phone_end_callback(void);
|
||
|
||
void tjd_ble_protocol_send_lefun_data(uint8_t *pack_head, uint8_t *data, uint16_t len, uint8_t cmd_id);
|
||
void tjd_msgame_send_gesensor_data(uint8_t *data, uint8_t len);//向app发送三轴数据
|
||
void tjd_msgame_into(void); //向app发送进入体感游戏模式指令
|
||
void tjd_msgame_exit(void); //向app发送退出体感游戏模式指令
|
||
|
||
/*Lefun AI相关接口*/
|
||
void tjd_lefun_ai_request_into_lefun_ai(void);
|
||
void tjd_lefun_ai_request_exit_lefun_ai(void);
|
||
void register_lefun_ai_data_callback(lefun_ai_data_callback_t callback);
|
||
void unregister_lefun_ai_data_callback(void);
|
||
void register_lefun_ai_data_end_callback(lefun_ai_data_callback_t callback);
|
||
void unregister_lefun_ai_data_end_callback(void);
|
||
void tjd_ble_upload_ai_func_attribute(void);
|
||
|
||
/*音源数据传输相关接口*/
|
||
void tjd_lefun_ai_request_into_audio_transmit(void);
|
||
void tjd_lefun_ai_request_exit_audio_transmit(void);
|
||
void tjd_lefun_ai_request_start_audio_transmit(void); //开始数据流-音频传输
|
||
void tjd_lefun_ai_request_end_audio_transmit(void); //结束数据流-音频传输
|
||
void tjd_ble_transmit_audio_data(uint8_t *data, uint16_t len); //音频流传输接口
|
||
bool tjd_ble_get_ai_audio_trans_flag(void); //获取音频传输状态
|
||
|
||
/*玩转表盘 相关接口*/
|
||
void tjd_lefun_ai_request_into_play_dial(void); //请求进入玩转表盘
|
||
void tjd_lefun_ai_request_exit_play_dial(void); //请求退出玩转表盘
|
||
play_dial_original_callback_t get_play_dial_original_callback(void);
|
||
/*
|
||
* @brief: 上报玩转表盘功能属性
|
||
* @param: style_type: 玩转表盘AI图片风格类型
|
||
* @param: language_to_translated: 待翻译语言 eg: 0x00 中文 0x01 英文
|
||
* @param: translation_language: 翻译语言 eg: 0x00 中文 0x01 英文
|
||
*/
|
||
void tjd_ble_upload_play_dial_func_attribute(ai_picture_style_t style_type, uint8_t language_to_translated, uint8_t translation_language);
|
||
/*
|
||
* @brief: 请求生成图片
|
||
@param: data_flow_id: 数据流id
|
||
* @param: isFirstRequest: 是否首次请求 0x00:首次 0x01:重试
|
||
*/
|
||
void tjd_play_dial_request_diagram_generation(uint8_t data_flow_id, uint8_t isFirstRequest); //请求生成图片
|
||
/*
|
||
* @brief: 请求传输图片
|
||
* @param: background_type: 请求传输的背景图片类型 0x00: 背景原图 0x01: 背景缩略图
|
||
*/
|
||
void tjd_play_dial_request_diagram_transmit(uint8_t background_type);
|
||
/*
|
||
* @brief: 玩转表盘AI原图回调注册接口,AI原图下发完成后触发通知
|
||
* @param: play_dial_original_callback_t: 函数指针 函数指针参数:char * original_picture_name 背景原图名称
|
||
*/
|
||
void register_play_dial_original_callback(play_dial_original_callback_t callback);
|
||
/*
|
||
* @brief: 玩转表盘AI原图回调赋空接口
|
||
*/
|
||
void unregister_play_dial_original_callback(void);
|
||
/*
|
||
* @brief: 玩转表盘AI预览图回调注册接口 ,AI预览图下发结束后触发通知
|
||
* @param: play_dial_preview_callback_t: 函数指针 函数指针参数:char * preview_picture_name 背景预览图名称
|
||
*/
|
||
void register_play_dial_preview_callback(play_dial_preview_callback_t callback);
|
||
/*
|
||
* @brief: 玩转表盘AI预览图回调赋空接口
|
||
*/
|
||
void unregister_play_dial_preview_callback(void);
|
||
/*
|
||
* @brief: 玩转表盘请求生成图片回调注册接口,请求生成图片指令回复后调用
|
||
* @param: play_dial_original_callback_t: 函数指针 函数指针参数:bool isSuccess 生成图片是否成功 true:成功 false:失败
|
||
*/
|
||
void register_play_dial_request_generate_picture_callback(play_dial_request_generate_picture_callback_t callback);
|
||
/*
|
||
* @brief: 玩转表盘请求生成图片回调赋空接口
|
||
*/
|
||
void unregister_play_dial_request_generate_picture_callback(void);
|
||
|
||
//请求天气数据接口
|
||
void tjd_lefun_request_weather_data(void);
|
||
void tjd_lefun_request_find_phone(void);
|
||
void tjd_lefun_request_find_phone_cancel(void);
|
||
bool tjd_ble_get_weather_today_synchronization(void);
|
||
void tjd_ble_set_weather_today_synchronization(bool flag);
|
||
|
||
void tjd_open_bluetooth_only(void); //只开BT
|
||
void tjd_close_bluetooth_only(void); //只关BT
|
||
|
||
void tjd_test_dial_config_json_file(void);//测试表盘参数配置文件
|
||
int delete_directory(const char *path);
|
||
|
||
uint8_t tjd_ble_get_hid_service_id(void);
|
||
uint16_t tjd_ble_get_hid_srv_handle(void);
|
||
|
||
void tjd_connect_param_update(void);
|
||
errcode_t tjd_connect_param_revert(void);
|
||
int tjd_service_connect_param_handle(void);
|
||
void tjd_service_connect_param_send_star(void);
|
||
void tjd_service_connect_param_send_stop(void);
|
||
uint8_t tjd_service_send_sport_end_record_data(char * file_name);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif
|