mcu_hi3321_watch/tjd/ble/ble_api.h
2025-05-26 20:15:20 +08:00

237 lines
9.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*----------------------------------------------------------------------------
* 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