蓝牙应用详细设计说明书
蓝牙应用
详细设计说明书
珠海市杰理科技股份有限公司
Zhuhai Jieli Technologyco.,LTD
版权所有,未经许可,禁止外传
版权所有,侵权必究 1
地址:珠海市吉大石花西路 107号9栋综合楼 邮编:519015
电话:0756-6313088 传真:0756-6313081
网站:www.zh-jieli.com
修改记录
| 版本 | 更新日期 | 描述 |
|---|---|---|
| V1.0 | ||
| V1.1 |
版权所有,侵权必究 2
目录
1.引 言..............................................................................................................................................................................6
- 1.编写目的............................................................................................................................................................. 6
1.2.参考资料............................................................................................................................................................. 6
1.3.术语和缩写词..................................................................................................................................................... 6
2.总体设计........................................................................................................................................................................6 - 1.需求概述............................................................................................................................................................. 6
2.2.蓝牙应用流程..................................................................................................................................................... 7
(a)蓝牙消息处理流程..................................................................................................................................... 7
(b)蓝牙进入退出模式流程.............................................................................................................................8
(c)蓝牙后台模式流程................................................................................................................................... 9
(d)蓝牙非后台模式流程............................................................................................................................... 10
2.3.关键数据结构说明............................................................................................................................................ 11
(a) app_bt_hdl变量数据结构......................................................................................................................... 11
2.4.应用依赖库及其接口说明................................................................................................................................ 12
2.5 蓝牙认证............................................................................................................................................................ 13
3.蓝牙主循环函数介绍.................................................................................................................................................. 14
1、 app_bt_task ................................................................................................................................................ 14
2、bt_key_ event_handler ................................................................................................................................ 15
3、bt_ connction_ status_ event_handler .......................................................................................................... 15
4、bt_hci_ event_handler ................................................................................................................................. 17
5、bredr_handle_register ................................................................................................................................ 17
6、bt_ function_ select_ init .............................................................................................................................. 18
7、bt_background_ event_handler ...................................................................................................................18
8、user_ send_ cmd_ prepare ............................................................................................................................ 19
4.蓝牙进入退出函数介绍...............................................................................................................................................27
1、bt_task_ start............................................................................................................................................... 27
2、bt_task_ close ..............................................................................................................................................27
3、bt_ direct_ init .............................................................................................................................................. 27
4、bt_ direct_ close ........................................................................................................................................... 28
5、 a2dp_media_packet_user_handler ............................................................................................................ 28
6、bt_ app_ exit .................................................................................................................................................28
7、bt_ app_ switch_ exit_ check .........................................................................................................................29
8、bt_nobackground_ exit ............................................................................................................................... 29
9、bt_background_ exit ................................................................................................................................... 29
5.蓝牙事件函数介绍...................................................................................................................................................... 30
1、phonebook_packet_handler ....................................................................................................................... 30
2、bt_wait_phone_ connect_ control ................................................................................................................30
3、bt_wait_ connect_ and_phone_ connect_ switch .......................................................................................... 30
3、 spp_ data_handler ....................................................................................................................................... 31
4、bt_ set_music_ device_volume ....................................................................................................................31
5、phone_ sync_vol ......................................................................................................................................... 31
版权所有,侵权必究 3
6、bt_read_remote_name ................................................................................................................................32
7、user_ get_bt_music_ info .............................................................................................................................32
8、bt_ drop_ a2dp_ frame_ start .........................................................................................................................33
9、 sys_ auto_ sniff_ controle ............................................................................................................................. 33
l0、 sys_ enter_ soft_poweroff..........................................................................................................................33
ll、phone_num_ play_ start .............................................................................................................................34
l2、phone_ring_play_ start ............................................................................................................................. 34
6.蓝牙发射函数介绍...................................................................................................................................................... 35
l、bt_ search_ device ........................................................................................................................................35
2、 emitter_ or_receiver_ switch ....................................................................................................................... 35
3、 emitter_ search_ stop...................................................................................................................................35
4、 emitter_ search_result ................................................................................................................................. 36
5、 emitter_rx_ avctp_ opid_ deal ...................................................................................................................... 36
6、 emitter_ save_remote_name ....................................................................................................................... 37
7、 emitter_ get_remote_name ......................................................................................................................... 37
7.蓝牙对箱函数介绍...................................................................................................................................................... 38
l、bt_tws_ connction_ status_ event_handler ...................................................................................................38
2、bt_tws_ search_ and_pair ............................................................................................................................ 38
3、bt_ open_tws_wait_pair..............................................................................................................................38
4、bt_ open_tws_wait_ conn ............................................................................................................................ 39
5、bt_ open_tws_ conn ..................................................................................................................................... 39
6、bt_ close_tws_wait_pair............................................................................................................................. 39
7、bt_ close_tws_ conn .....................................................................................................................................39
8、bt_remove_tws_pair.................................................................................................................................. 40
9、bt_ open_phone_wait_pair......................................................................................................................... 40
l0、bt_ close_phone_wait_pair ....................................................................................................................... 40
ll、tws_ cancle_ all_noconn ............................................................................................................................40
l2、bt_tws_ start_ search_ and_pair ................................................................................................................. 4l
l3、bt_tws_remove_tws_pair ......................................................................................................................... 4l
l4、bt_tws_ connect_ and_ connectable_ switch ...............................................................................................4l
l5、 connect_ and_ connectable_ switch ........................................................................................................... 42
l6、bt_tws_poweron .......................................................................................................................................42
8.蓝牙测试函数介绍...................................................................................................................................................... 43
l、bt_ fast_test_ api .......................................................................................................................................... 43
2、bt_ dut_ api .................................................................................................................................................. 43
3、bt_ fix_ fre_ api .............................................................................................................................................43
4、ble_ fix_ fre_ api ...........................................................................................................................................44
5、bt_product_test_uart.................................................................................................................................. 44 - Ble透传函数介绍.........................................................................................................................................................45
l、bt_ble_ init .................................................................................................................................................. 45
2、bt_ble_ exit ................................................................................................................................................. 45
3、ble_profile_ init ...........................................................................................................................................45
4、 advertisements_ setup_ init ......................................................................................................................... 45
5、make_ set_ adv_ data ....................................................................................................................................46
版权所有,侵权必究 4
6、make_ set_rsp_ data .....................................................................................................................................46
7、bt_ble_ adv_ enable ..................................................................................................................................... 46
8、ble_module_ enable .................................................................................................................................... 46
9、ble_ app_ disconnect ....................................................................................................................................47
l0、 cbk_packet_handler ................................................................................................................................. 47
ll、 cbk_ sm_packet_handler ...........................................................................................................................47
l2、 att_read_ callback ..................................................................................................................................... 48
l3、 att_write_ callback ....................................................................................................................................48
l4、 app_ send_user_ data .................................................................................................................................49
l5、 app_ send_user_ data_ check ..................................................................................................................... 49
l6、 check_ connetion_updata_ deal .................................................................................................................49 - Bt_ble.c函数介绍.......................................................................................................................................................50
l、bt_ble_ init .................................................................................................................................................. 50
2、bt_ble_ exit ................................................................................................................................................. 50
3、ble_profile_ init ...........................................................................................................................................50
4、 advertisements_ setup_ init ......................................................................................................................... 50
5、make_ set_ adv_ data .................................................................................................................................... 5l
6、make_ set_rsp_ data ..................................................................................................................................... 5l
7、bt_ble_ adv_ enable ..................................................................................................................................... 5l
8、bt_ble_ get_ adv_ enable .............................................................................................................................. 5l
9、bt_ble_ icon_ set_ comm_ address ................................................................................................................ 52
l0、bt_ble_ icon_ slave_ en .............................................................................................................................. 52
ll、bt_ble_ set_ control_ en .............................................................................................................................. 52
l2、bt_ble_ icon_ open .....................................................................................................................................53
l3、bt_ble_ icon_reset ..................................................................................................................................... 53
l4、bt_ble_ icon_ close .................................................................................................................................... 53
l5、update_ dev_battery_ level ........................................................................................................................ 53
版权所有,侵权必究 5
1. 引 言
1.1.编写目的
该文档为基于AC695N平台开发蓝牙应用的人员提供相应的设计开发文档。也可以为测试蓝牙应用的测试人员提供参考。
文档中详细定义了蓝牙应用的总体功能、 系统的接口和数据属性;对程序的基本结构、功能模块以及各个程序的名称进行了划分, 以便于蓝牙应用开发。
1.2.参考资料
[ 1]
1.3.术语和缩写词
| 缩写和术语 | 解 释 |
|---|---|
| AP | Application,应用程序 |
2.总体设计
2.1.需求概述
本AP 主要实现蓝牙播歌通话控制、ble等功能
(1)手机播歌,上下曲暂停、歌词信息
(2)手机通话,接听挂断、拒听、 回拨、三方通话
(3)Hid控制
(4)蓝牙发射
(5)蓝牙对箱
(6)蓝牙后台、非后台
版权所有,侵权必究 6
地址:珠海市吉大石花西路 107号9栋综合楼 邮编:519015
电话:0756-6313088 传真:0756-6313081
网站:www.zh-jieli.com
2.2.蓝牙应用流程
(a)蓝牙消息处理流程
蓝牙模式消息处理函数int bt_sys_event_handler (struct sys_event *event),函数里面区分两种事件处理,分别为按键事件 SYS_KEY_EVENT,处理函数bt_key_event_handler,蓝牙事件 SYS_BT_EVENT,处理函数bt_sys_event_office,然后蓝牙事件下又分蓝牙状态事件、蓝牙协议栈事件、 蓝牙对箱事件等,如果事件在蓝牙模式里面没有处理就会返回 false,消息会传到 app_default_event_deal 函数执行。
版权所有,侵权必究 7
(b)蓝牙进入退出模式流程
蓝牙模式进入退出大概流程,蓝牙bt_task_start执行蓝牙基带和协议栈等初始化,初始化完成会有BT_STATUS_INIT_OK事件,在这事件里面可以根据实际应用来开启被链接搜索和对箱链接回链等操作,蓝牙链接的过程中,协议栈的必要事件会发送到bt_hci_event_handler 函数里面,开发者可 以在该函数做相应的应用功能流程, 蓝牙 自 定义的应用状态事件会发送到 bt_connction_status_event_handler 函数里面,开发者可以根据状态来处理流程。
蓝牙模式退出分为后台和非后台,后台是蓝牙可以在其他模式下保存正常连接和通信,非后台是蓝牙退出的时候要把整个蓝牙关闭。
版权所有,侵权必究 8
(c) 蓝牙后台模式流程
版权所有,侵权必究 9
(d)蓝牙非后台模式流程
版权所有,侵权必究 10
蓝牙模式文件的具体功能描述具体如下
| 功能简述 | 对应文件 |
|---|---|
| 蓝牙模式消息、配置 | bt.c |
| Ble 弹窗 | bt_ble.c |
| 蓝牙发射 | bt_emitter.c |
| 蓝牙各类事件处理函数 | bt_event_fun.c |
| 蓝牙按键处理 | bt_key_fun.c |
| 蓝牙测试量产的函数 | bt_product_test.c |
| 蓝牙进入退出流程 | bt_switch_fun.c |
| 蓝牙对箱 | bt_tws.c |
| 音量同步 | Vol_sync.c |
| Ble透传demo | Trans_data_demo.c |
| 蓝牙模式配置 | btcontroller mode.h |
2.3.关键数据结构说明
(a) app_bt_hdl变量数据结构
结构体原形:
struct app_bt_opr {
u8 init_ok : 1; // 1-初始化完成
u8 call_flag : 1; // 1-由于蓝牙打电话命令切回蓝牙模式
u8 exit_flag : 1; // 1-可以退出蓝牙标志
u8 exiting : 1; // 1-正在退出蓝牙模式
u8 wait_exit : 1; // 1-等退出蓝牙模式
u8 a2dp_decoder_type: 3; // 从后台返回时记录解码格式用
u8 cmd_flag ; // 1-由于蓝牙命令切回蓝牙模式
u8 ignore_discon_tone; // 1-退出蓝牙模式, 不响应discon提示音
u8 sbc_packet_valid_cnt; // 有效sbc包计数
u8 sbc_packet_valid_cnt_max;// 最大有效sbc包计数
u8 sbc_packet_lose_cnt; // sbc丢失的包数
u8 sbc_packet_step; // 0-正常;1-退出中;2-后台
版权所有,侵权必究 11
u8 tws_local_back_role;
u8 a2dp_start_flag;
u8 bt_back_flag;
u8 replay_tone_flag ;
u8 esco_dump_packet;
u8 last_connecting_addr[6] ;
u32 sbc_packet_filter_to; // 过滤超时
u32 no_sbc_packet_to; // 无声超时
u32 init_ok_time; // 初始化完成时间
u32 auto_exit_limit_time; // 自动退出时间限制
u8 bt_direct_init;
u8 bt_close_bredr;
u8 hid_mode;
int timer;
int tmr_cnt;
int back_mode_systime;
int max_tone_timer_hdl;
int exit_sniff_timer ;};
2.4.应用依赖库及其接口说明
btctrler.a ―― 蓝牙基带库
btstack.a ―― 蓝牙协议库
crypto_toolbox_Ospeed.a ―― 蓝牙基带加密库
rcsp_stack.a ―― 蓝牙rcsp库
版权所有,侵权必究 12
2.5 蓝牙认证
ble 测试串口默认使用usb 口,代码要确保usb 口没有其他地方使用开启测试模式,uart0、 key 等一些功能默认关闭,请看特殊情况自行处理,请在include_lib/btctrler/btcontroller_mode.h 配置
1、 提供实验室测试rf bqb 的时候配 BT_BQB
2、 提供实验室测试rf fcc 的时候配 BT_FCC
3、 如果要定频测试配BT_FRE 频点:2402 ,发射功率最大
4、 性能测试配BT_PER,使用仪器直接连接测试即可,测试完毕后
需要复位或者上电开机才会恢复正常流程,不复位或上电的话只支持链接一个设备
量产测试性能可配BT_NORMAL 然后通过某个外部操作来调用
void bredr_set_dut_enble(u8 en,u8 phone )
en 1 :使能 bredr dut 测试然后就可以使用仪器链接测试
phone: 1 可以被手机连接,0 不可以被手机连接上
如果样机通过按键等操作进入dut测试调用bredr_set_dut_enble使能可以被仪器链接,同时调用下面函数,关闭耳机快速链接,开启可发现可链接
tws_cancle_all_noconn() ;
user_send_cmd_prepare(USER_CTRL_WRITE_SCAN_ENABLE, 0, NULL);
user_send_cmd_prepare(USER_CTRL_WRITE_CONN_ENABLE, 0, NULL);
5、 可以调用 void bt_fix_fre_api()函数实现定频测试,频点2402,发射功率最大,调用后不可恢复之前状态,只是用来量产测试,测试完需要复位或重新上电开机!
6、测试BQB profile 的程序要在手动配置 config_btctler_mode = BT_NORMAL | BT_BQB_PROFILE) .会多编译一些代码的*/
#define BT_NORMAL 0x01
#define BT_BQB 0x02
#define BT_FCC 0x04
#define BT_FRE 0x10
#define BT_PER 0x20
#define BT_BQB_PROFILE 0x40
#define CONFIG_BT_MODE BT_NORMAL
版权所有,侵权必究 13
3.蓝牙主循环函数介绍
1、 app_bt_task
● 功能描述:
蓝牙模式运行主循环函数,函数里面主要有蓝牙初始化、消息处理、蓝牙退出等
● 函数原型:
void app_bt_task()
● 输入参数描述:无
● 输出参数描述:无
版权所有,侵权必究 14
2、 bt_key_event_handler
● 功能描述:
蓝牙模式按键消息处理
● 函数原型:
int bt_key_event_handler(struct sys_event *event)
● 输入参数描述:无
@ struct sys_event *event:消息
● 输出参数描述:
False:消息没有在这里处理
Ture:消息处理执行过
3、 bt_connction_status_event_handler
● 功能描述:
蓝牙模式链接状态处理,开发者可以根据各种状态来实现自定义应用功能
● 函数原型:
int bt_connction_status_event_handler(struct bt_event *bt)
● 输入参数描述:无
@ struct bt_event *bt:蓝牙消息状态
● 输出参数描述:
False:消息被过滤
Ture:消息处理
////----反馈给客户使用的状态----//// typedef enum {
/下面是一些即时反馈的状态,无法重复获取的状态/
BT_STATUS_POWER_ON = 1, /上电/
BT_STATUS_POWER_OFF = 2,
BT_STATUS_INIT_OK, /初始化完成/
BT_STATUS_EXIT_OK, /蓝牙退出完成/
| BT_STATUS_START_CONNECTED, | /开始连接/ |
|---|---|
| BT_STATUS_FIRST_CONNECTED, | /连接成功/ |
| BT_STATUS_SECOND_CONNECTED, | /连接成功/ |
| BT_STATUS_ENCRY_COMPLETE, | /加密完成/ |
| BT_STATUS_FIRST_DISCONNECT, | /断开连接/ |
| BT_STATUS_SECOND_DISCONNECT, | /断开连接/ |
BT_STATUS_PHONE_INCOME, /来电/
BT_STATUS_PHONE_NUMBER, /来电话号码/
版权所有,侵权必究 15
BT_STATUS_PHONE_MANUFACTURER, /获取手机的厂商/
BT_STATUS_PHONE_OUT, /打出电话/
BT_STATUS_PHONE_ACTIVE, /接通电话/
BT_STATUS_PHONE_HANGUP, /挂断电话/
BT_STATUS_BEGIN_AUTO_CON, /发起回连/
BT_STATUS_MUSIC_SOUND_COME, /库中加入auto mute判断音乐播放开始/
BT_STATUS_MUSIC_SOUND_GO, /库中加入auto mute判断音乐播放暂停/
BT_STATUS_RESUME, /后台有效,手动切回蓝牙/
BT_STATUS_RESUME_BTSTACK, /后台有效,后台时来电切回蓝牙/
BT_STATUS_SUSPEND, /蓝牙挂起,退出蓝牙/
BT_STATUS_LAST_CALL_TYPE_CHANGE, /最后拨打电话的类型,只区分打入和打出两种状态/
BT_STATUS_CALL_VOL_CHANGE, /通话过程中设置音量会产生这个状态变化/
BT_STATUS_SCO_STATUS_CHANGE, /当esco/sco连接或者断开时会产生这个状态变化/
BT_STATUS_CONNECT_WITHOUT_LINKKEY, /判断是首次连接还是配对后的连接,主要依据要不要简易配对或者pin code/
BT_STATUS_PHONE_BATTERY_CHANGE, /*电话电量变化,该状态仅6个等级,0-5 */ BT_STATUS_RECONNECT_LINKKEY_LOST, /回连时发现linkkey丢失了,即手机取消配对了/ BT_STATUS_RECONN_OR_CONN, /回连成功还是被连接/
BT_STATUS_BT_TEST_BOX_CMD, /蓝牙收到测试盒消息。 1-升级,2-fast test/
BT_STATUS_BT_TWS_CONNECT_CMD,
BT_STATUS_SNIFF_STATE_UPDATE, /SNIFF STATE UPDATE/
BT_STATUS_TONE_BY_FILE_NAME, /直接使用文件名播放提示音/
BT_STATUS_PHONE_DATE_AND_TIME, /获取到手机的时间和日期,注意会有兼容性问题/ BT_STATUS_INBAND_RINGTONE,
BT_STATUS_VOICE_RECOGNITION,
BT_STATUS_AVRCP_INCOME_OPID, /收到远端设备发过来的AVRCP命令/
BT_STATUS_HFP_SERVICE_LEVEL_CONNECTION_OK,
BT_STATUS_CONN_A2DP_CH,
BT_STATUS_CONN_HFP_CH,
BT_STATUS_INQUIRY_TIMEOUT,
/下面是 1个持续的状态,是get_stereo_bt_connect_status获取/
/下面是6个持续的状态,是get_bt_connect_status()获取/
BT_STATUS_INITING, /正在初始化/
BT_STATUS_WAITINT_CONN, /等待连接/
BT_STATUS_AUTO_CONNECTINT, /正在回连/
BT_STATUS_CONNECTING, /已连接,没有电话和音乐在活动/
BT_STATUS_TAKEING_PHONE, /正在电话/
BT_STATUS_PLAYING_MUSIC, /正在音乐/
BT_STATUS_A2DP_MEDIA_START, /音乐开始/版权所有,侵权必究 16
BT_STATUS_A2DP_MEDIA_STOP, /音乐停止/
BT_STATUS_BROADCAST_STATE,/braoadcaset 中/
BT_STATUS_TRIM_OVER, /测试盒TRIM完成/
} STATUS_FOR_USER;
4、 bt_hci_event_handler
● 功能描述:
蓝牙模式协议栈事件回调处理,开发者可以根据各种状态来实现自定义应用功能
● 函数原型:
int bt_hci_event_handler(struct bt_event *bt)
● 输入参数描述:无
@ struct bt_event *bt:蓝牙消息状态
● 输出参数描述:
False:消息被过滤
Ture:消息处理
5、 bredr_handle_register
● 功能描述:
版权所有,侵权必究 17
蓝牙模式协议栈回调函数注册
● 函数原型:
void bredr_handle_register()
● 输入参数描述:无
● 输出参数描述:无
6、 bt_function_select_init
● 功能描述:
蓝牙模式协议栈功能配置
● 函数原型:
void bt_function_select_init()
● 输入参数描述:无
● 输出参数描述:无
7、 bt_background_event_handler
● 功能描述:
蓝牙后台消息处理
● 函数原型:
int bt_background_event_handler(struct sys_event *event)
● 输入参数描述:
@ struct sys_event *event:消息
● 输出参数描述:
False:消息没有在这里处理
Ture:消息处理执行过
版权所有,侵权必究 18
8、 user_send_cmd_prepare
● 功能描述:
蓝牙bredr功能控制
● 函数原型:
u32 user_send_cmd_prepare(USER_CMD_TYPE cmd, u16 param_len, u8 *param) ;
● 输入参数描述:
@USER_CMD_TYPE cmd:命令
@u16 param_len:参数长度
@u8 *param:参数
● 输出参数描述:
0:发起成功
其他:发起失败
///*注意:该文件的枚举与库编译密切相关,主要是给用户提供调用所用。用户不能自己在中间添加值。/
////----user (command) codes----////
typedef enum {
/
使用user_send_cmd_prepare(USER_CMD_TYPE cmd,u16 param_len,u8 *param)发送命令//返回0表支持参数个数正确,返回 1表不支持,2是参数错误
要三个参数,没参数说明的命令参数param_len传0,param传NULL
例子A、 USER_CTRL_HFP_CALL_SET_VOLUME命令需要 1个参数的使用例子:
u8 vol = 8;
user_send_cmd_prepare(USER_CTRL_HFP_CALL_SET_VOLUME, 1, &vol);
例子B、USER_CTRL_DIAL_NUMBER 参数要用数组先存起来,param_len是号码长度,param 可传参数数组指针,
user_val- >income_phone_num 已经存好号码
user_send_cmd_prepare(USER_CTRL_DIAL_NUMBER,user_val- >phone_num_len,user_val- >income_phone_num) ;
*/
//链路操作部分
//回连,使用的是VM 的地址,一般按键操作不使用该接口
USER_CTRL_START_CONNECTION,
//通过地址去连接,如果知道地址想去连接使用该接口
USER_CTRL_START_CONNEC_VIA_ADDR,
//通过指定地址手动回连,该地址是最后一个断开设备的地址
版权所有,侵权必究 19
USER_CTRL_START_CONNEC_VIA_ADDR_MANUALLY,
//断开连接,断开当前所有蓝牙连接
USER_CTRL_DISCONNECTION_HCI,
//取消链接
USER_CTRL_CONNECTION_CANCEL,
//读取远端名字
USER_CTRL_READ_REMOTE_NAME,
//连接或断开SCO或esco,选择这个命令会自动判断要断开还是连接sco
USER_CTRL_PAUSE_MUSIC,
//连接或断开SCO或esco,选择这个命令会自动判断要断开还是连接sco
USER_CTRL_SCO_LINK,
//连接SCO或esco
USER_CTRL_CONN_SCO,
//断开sco或esco
USER_CTRL_DISCONN_SCO,
//断开SDP,一般按键操作不使用该接口
USER_CTRL_DISCONN_SDP_MASTER,
//关闭蓝牙可发现
USER_CTRL_WRITE_SCAN_DISABLE,
//打开蓝牙可发现
USER_CTRL_WRITE_SCAN_ENABLE,// USER_CTRL_WRITE_SCAN_ENABLE_KEY ,
//关闭蓝牙可连接
USER_CTRL_WRITE_CONN_DISABLE,
//打开蓝牙可连接
USER_CTRL_WRITE_CONN_ENABLE,
// USER_CTRL_WRITE_CONN_ENABLE_KEY ,
//控制蓝牙搜索,需要搜索附件设备做功能的连续说明情况在补充完善功能
USER_CTRL_SEARCH_DEVICE,
//取消搜索
USER_CTRL_INQUIRY_CANCEL,
//取消配对
USER_CTRL_PAGE_CANCEL,
///进入sniff模式,一般按键操作不使用该接口
USER_CTRL_SNIFF_IN,
USER_CTRL_SNIFF_EXIT,
USER_CTRL_ALL_SNIFF_EXIT,
//hfp链路部分
版权所有,侵权必究 20
//控制打电话音量,注意可能有些手机进度条有变化音量大小没变化,同步要设置样机DAC音量
/跟电话音量操作有关的操作最终都执行回调函数call_vol_change/
USER_CTRL_HFP_CMD_BEGIN,
USER_CTRL_HFP_CALL_VOLUME_UP, /音量加 1,手机可以同步显示/
USER_CTRL_HFP_CALL_VOLUME_DOWN, /音量减 1,手机可以同步显示/
USER_CTRL_HFP_CALL_SET_VOLUME, /设置固定值,手机可以同步显示,需要传 1个音量值/
USER_CTRL_HFP_CALL_GET_VOLUME, /获取音量,默认从call_vol_change返回/
//来电接听电话
USER_CTRL_HFP_CALL_ANSWER,
//挂断电话
USER_CTRL_HFP_CALL_HANGUP,
//回拨上一个打出电话
USER_CTRL_HFP_CALL_LAST_NO,
//获取当前通话电话号码
USER_CTRL_HFP_CALL_CURRENT,
//通话过程中根据提示输入控制
/*例子
char num = ' 1';
user_send_cmd_prepare(USER_CTRL_HFP_DTMF_TONES, 1,(u8 *)&num) ;
*/
//发送打电话时的信号选择DTMF tones ,有一个参数,参数支持{0-9, *, #, A, B, C, D}
USER_CTRL_HFP_DTMF_TONES,
//根据电话号码拨号
/*USER_CTRL_DIAL_NUMBER命令有参数,参数要用数组先存起来,
param_len是号码长度,param可传参数数组指针/
USER_CTRL_DIAL_NUMBER,
//发送电量 /*要连接上HFP才有用/
USER_CTRL_SEND_BATTERY,
//控制siri状态//可以注册回调函数获取返回值/
USER_CTRL_HFP_GET_SIRI_STATUS,
//开启siri/
USER_CTRL_HFP_GET_SIRI_OPEN,
//关闭siri,一般说完话好像自动关闭了,如果要提前终止可调用/
USER_CTRL_HFP_GET_SIRI_CLOSE,
/获取手机的日期和时间,苹果可以,一般安卓机好像都不行/
USER_CTRL_HFP_GET_PHONE_DATE_TIME,
USER_CTRL_HFP_CMD_SEND_BIA,
/*获取手机厂商的命令 /
USER_CTRL_HFP_CMD_GET_MANUFACTURER,
/更新当前的电量给手机/
版权所有,侵权必究 21
USER_CTRL_HFP_CMD_UPDATE_BATTARY,//三方通话操作
//应答
USER_CTRL_HFP_THREE_WAY_ANSWER1,态都可以)
USER_CTRL_HFP_THREE_WAY_ANSWER2,换
USER_CTRL_HFP_THREE_WAY_ANSWER1X,
USER_CTRL_HFP_THREE_WAY_ANSWER2X,
USER_CTRL_HFP_THREE_WAY_ANSWER3,//拒听 USER_CTRL_HFP_THREE_WAY_REJECT, USER_CTRL_HFP_DISCONNECT,
USER_CTRL_HFP_CMD_END,
//音乐控制部分
USER_CTRL_AVCTP_CMD_BEGIN,
//音乐播放
USER_CTRL_AVCTP_OPID_PLAY,
//音乐暂停
USER_CTRL_AVCTP_OPID_PAUSE,
//音乐停止
USER_CTRL_AVCTP_OPID_STOP,
//音乐下一首
USER_CTRL_AVCTP_OPID_NEXT,
//音乐上一首
USER_CTRL_AVCTP_OPID_PREV,
//音乐快进 USER_CTRL_AVCTP_OPID_FORWARD,//音乐快退 USER_CTRL_AVCTP_OPID_REWIND,//音乐循环模式 USER_CTRL_AVCTP_OPID_REPEAT_MODE, USER_CTRL_AVCTP_OPID_SHUFFLE_MODE,//获取播放歌曲总时间和当前时间接口 USER_CTRL_AVCTP_OPID_GET_PLAY_TIME,
//同步音量接口
USER_CTRL_AVCTP_OPID_SEND_VOL,// //AVCTP断开,是音乐控制链路,一般不使用 USER_CTRL_AVCTP_DISCONNECT,// //AVCTP连接,是音乐控制链路,一般不使用
USER_CTRL_AVCTP_CONN,版权所有,侵权必究
//挂断当前去听另一个(未接听或者在保留状//保留当前去接听,或者用于两个通话的切
//拒绝后台来电
//断开HFP连接
22
USER_CTRL_AVCTP_CMD_END,
//高级音频部分
USER_CTRL_A2DP_CMD_BEGIN,
//有判断条件的,回连过程连接高级音频,避免手机连也自动发起连接,一般按键操作不使用该接口
USER_CTRL_AUTO_CONN_A2DP,
//连接高级音频,回来最后一个断开设备的地址
USER_CTRL_CONN_A2DP,
//断开高级音频,只断开高级音频链路,如果有电话还会保留
USER_CTRL_DISCONN_A2DP,
//maybe BQB test will use
USER_CTRL_A2DP_CMD_START
USER_CTRL_A2DP_CMD_CLOSE ,
USER_CTRL_A2DP_CMD_SUSPEND USER_CTRL_A2DP_CMD_GET_CONFIGURATION USER_CTRL_A2DP_CMD_ABORT
USER_CTRL_A2DP_CMD_END,
//蓝牙关闭
USER_CTRL_POWER_OFF,
//蓝牙开启
USER_CTRL_POWER_ON,
///hid操作定义/
USER_CTRL_HID_CMD_BEGIN,
//按键连接
USER_CTRL_HID_CONN,// //只发一个按键,安卓手机使用
USER_CTRL_HID_ANDROID,
//只发一个按键,苹果和部分安卓手机适用
USER_CTRL_HID_IOS,// //发两个拍照按键
USER_CTRL_HID_BOTH,
//HID断开
USER_CTRL_HID_DISCONNECT,
//Home Key,apply to IOS and Android
USER_CTRL_HID_HOME ,
//Return Key,only support Android
USER_CTRL_HID_RETURN ,
//LeftArrow Key
USER_CTRL_HID_LEFTARROW ,
//RightArrow Key
USER_CTRL_HID_RIGHTARROW ,
版权所有,侵权必究
,
,
,
,
23
//Volume Up
USER_CTRL_HID_VOL_UP ,
//Volume Down
USER_CTRL_HID_VOL_DOWN ,
USER_CTRL_HID_SEND_DATA ,
USER_CTRL_HID_CMD_END,
/对箱操作命令/
USER_CTRL_TWS_CMD_BEGIN,
USER_CTRL_SYNC_TRAIN,
USER_CTRL_SYNC_TRAIN_SCAN,
USER_CTRL_MONITOR,
USER_CTRL_TWS_CONNEC_VIA_ADDR,
USER_CTRL_TWS_COTROL_CDM,
//清除对箱连接信息
USER_CTRL_TWS_CLEAR_INFO,
//断开对箱连接
USER_CTRL_TWS_DISCONNECTION_HCI,
//发起对箱连接
USER_CTRL_TWS_START_CONNECTION,
USER_CTRL_TWS_SYNC_CDM,
USER_CTRL_TWS_SYNC_SBC_CDM,
USER_CTRL_TWS_RESTART_SBC_CDM,
USER_CTRL_SYNC_TRAIN_CANCEL,
USER_CTRL_SYNC_TRAIN_SCAN_CANCEL,
USER_CTRL_TWS_SYNC_CDM_FUN,
USER_CTRL_TWS_LINEIN_START,
USER_CTRL_TWS_LINEIN_CLOSE,
USER_CTRL_TWS_CMD_END,
///蓝牙串口发送命令
USER_CTRL_SPP_CMD_BEGIN,
/**USER_CTRL_SPP_SEND_DATA命令有参数,参数会先存起来,
param_len是数据长度,param发送数据指针
返回0,表示准备成功,会PENDing发完才返回
3表示上一包数据没发完,/
USER_CTRL_SPP_SEND_DATA, //len <= 512
USER_CTRL_SPP_TRY_SEND_DATA,//
USER_CTRL_SPP_UPDATA_DATA,
//serial port profile disconnect command
USER_CTRL_SPP_DISCONNECT,
版权所有,侵权必究 24
USER_CTRL_SPP_CMD_END,
///pbg发送命令
USER_CTRL_PBG_CMD_BEGIN,
USER_CTRL_PBG_SEND_DATA,//len <= 512
USER_CTRL_PBG_TRY_SEND_DATA,//
USER_CTRL_PBG_CMD_END,
///蓝牙电话本功能发送命令
USER_CTRL_PBAP_CMD_BEGIN,
//电话本功能读取通话记录的前n条
USER_CTRL_PBAP_READ_PART,
//电话本功能读全部记录
USER_CTRL_PBAP_READ_ALL,
//电话本功能中断读取记录
USER_CTRL_PBAP_STOP_READING,
USER_CTRL_PBAP_CMD_END,
//蓝牙其他操作// //删除最新的一个设备记忆
// USER_CTRL_DEL_LAST_REMOTE_INFO ,
// //删除所有设备记忆
USER_CTRL_DEL_ALL_REMOTE_INFO,
USER_CTRL_TEST_KEY,
USER_CTRL_KEYPRESS,
USER_CTRL_PAIR,
USER_CTRL_HALF_SEC_LOOP_CREATE,
USER_CTRL_HALF_SEC_LOOP_DEL,
USER_CTRL_CMD_SYNC_VOL_INC,
USER_CTRL_CMD_SYNC_VOL_DEC,
USER_CTRL_CMD_CHANGE_PROFILE_MODE,
USER_CTRL_CMD_RESERVE_INDEX4,
USER_CTRL_CMD_RESUME_STACK,
USER_CTRL_AVCTP_OPID_GET_MUSIC_INFO,
USER_CTRL_LAST} USER_CMD_TYPE;
版权所有,侵权必究 25
版权所有,侵权必究 26
4.蓝牙进入退出函数介绍
1、 bt_task_start
● 功能描述:
(1)设置时钟
(2)清零变量
(3)显示界面、提示音播放
(4)蓝牙功能配置、 回调函数设置
(5)蓝牙协议栈、蓝牙基带初始化
(6)按键、 自动关机、sniff 设置等
● 函数原型:
void bt_task_start()
● 输入参数描述:无
● 输出参数描述:无
2、 bt_task_close
● 功能描述:
蓝牙模式退出
● 函数原型:
void bt_task_close()
● 输入参数描述:无
● 输出参数描述:无
3、 bt_direct_init
● 功能描述:
蓝牙后台模式直接初始化,可以不需要进入蓝牙模式来初始化,可在poweron 的时候初始化
● 函数原型:
void bt_direct_init()
● 输入参数描述:无
● 输出参数描述:无
版权所有,侵权必究 27
4、 bt_direct_close
● 功能描述:
蓝牙后台模式直接关闭蓝牙
● 函数原型:
void bt_direct_close(void)
● 输入参数描述:无
● 输出参数描述:无
5、 a2dp_media_packet_user_handler
● 功能描述:
蓝牙后台高级音频检测,sbc丢包加能量检测
● 函数原型:
int a2dp_media_packet_user_handler(u8 *data, u16 size)
● 输入参数描述:
@ u8 * data:接收数据
@ size:接收数据长度
● 输出参数描述:无
6、 bt_app_exit
● 功能描述:
蓝牙退出模式
● 函数原型:
int bt_app_exit(void)
● 输入参数描述:无
● 输出参数描述:无
版权所有,侵权必究 28
7、 bt_app_switch_exit_check
● 功能描述:
蓝牙退出检测
● 函数原型:
u8 bt_app_switch_exit_check()
● 输入参数描述:无
● 输出参数描述:0:不可退出 1:可以退出
8、 bt_nobackground_exit
● 功能描述:
蓝牙非后台退出
● 函数原型:
u8 bt_nobackground_exit()
● 输入参数描述:无
● 输出参数描述:
9、 bt_background_exit
● 功能描述:
蓝牙后台退出
● 函数原型:
u8 bt_background_exit()
● 输入参数描述:无
● 输出参数描述:
版权所有,侵权必究 29
5.蓝牙事件函数介绍
1、 phonebook_packet_handler
● 功能描述:蓝牙电话本获取回调函数
● 函数原型:
void phonebook_packet_handler(u8 type, const u8 *name, const u8 *number, const u8 *date)
● 输入参数描述:无
● 输出参数描述:无
2、 bt_wait_phone_connect_control
● 功能描述:
AP开启bredr可发现可连接状态接口函数
● 函数原型:
void bt_wait_phone_connect_control(u8 enable)
● 输入参数描述:无
● 输出参数描述:无
3、 bt_wait_connect_and_phone_connect_switch
● 功能描述:
AP开启可发现可连接和回链的轮询调度
● 函数原型:
int bt_wait_connect_and_phone_connect_switch(void *p)
● 输入参数描述:
@ void *p: 1:开启轮询 0:不开启轮询,只开启可发现可连接
● 输出参数描述:无
版权所有,侵权必究 30
3、 spp_data_handler
● 功能描述:
蓝牙spp 协议数据回调,开发者可以在函数里面获取到接收的数据
● 函数原型:
void spp_data_handler(u8 packet_type, u16 ch, u8 *packet, u16 size)
● 输入参数描述:
@ packet_type:数据类型
@ ch:数据类型
@ packet:数据缓存
@ size:数据长度
● 输出参数描述:无
4、 bt_set_music_device_volume
● 功能描述:
蓝牙音乐音量同步
● 函数原型:
void bt_set_music_device_volume(int volume)
● 输入参数描述:
@ volume:设置音量
● 输出参数描述:无
5、 phone_sync_vol
● 功能描述:
蓝牙通话音量同步
● 函数原型:
void phone_sync_vol(void *priv)
版权所有,侵权必究 31
● 输入参数描述:
● 输出参数描述:无
6、 bt_read_remote_name
● 功能描述:
获取连接设备名字回调函数,开发者可在这读取设备名字
● 函数原型:
void bt_read_remote_name(u8 status, u8 *addr, u8 *name)
● 输入参数描述:
@ u8 status:获取名字是否成功
@ u8 *addr:设备地址
@ u8 *name:设备名字
● 输出参数描述:无
7、 user_get_bt_music_info
● 功能描述:
获取连接设备名字回调函数,开发者可在这读取设备名字
● 函数原型:
void user_get_bt_music_info(u8 type, u32 time, u8 *info, u16 len)
● 输入参数描述:
@ u8 type:信息类型
@ u32 time:播放时间
@ u8 * info:信息
@ u16 len:信息长度
● 输出参数描述:无
版权所有,侵权必究 32
8、 bt_drop_a2dp_frame_start
● 功能描述:
AP丢sbc数据包
● 函数原型:
void bt_drop_a2dp_frame_start(void)
● 输入参数描述:无
● 输出参数描述:无
9、 sys_auto_sniff_controle
● 功能描述:
AP开启检测是否空闲可以进入sniff
● 函数原型:
void sys_auto_sniff_controle(u8 enable, u8 *addr)
● 输入参数描述:
@ u8 enable:1 启动检测 0:关闭检测
@ u8 * addr:对应设备进入sniff 地址
● 输出参数描述:无
10、 sys_enter_soft_poweroff
● 功能描述:
AP软关机,蓝牙关闭流程
● 函数原型:
void sys_enter_soft_poweroff(void *priv)
● 输入参数描述:
@ void * priv:无作用
● 输出参数描述:无
版权所有,侵权必究 33
11、phone_num_play_start
● 功能描述:
蓝牙来电报号
● 函数原型:
void phone_num_play_start(void)
● 输入参数描述:无
● 输出参数描述:无
12、 phone_ring_play_start
● 功能描述:
蓝牙来电铃声播放
● 函数原型:
u8 phone_ring_play_start(void)
● 输入参数描述:无
● 输出参数描述:无
版权所有,侵权必究 34
6.蓝牙发射函数介绍
1、 bt_search_device
● 功能描述:
蓝牙发起搜索设备
● 函数原型:
void bt_search_device(void)
● 输入参数描述:无
● 输出参数描述:无
2、 emitter_or_receiver_switch
● 功能描述:
蓝牙发射 提供按键切换发射器或者是音箱功能
● 函数原型:
void emitter_or_receiver_switch(u8 flag)
● 输入参数描述:
@ u8 flag: BT_EMITTER_EN 发射
BT_RECEIVER_EN 接收
● 输出参数描述:无
3、 emitter_search_stop
● 功能描述:
蓝牙发射停止搜索
● 函数原型:
void emitter_search_stop()
● 输入参数描述:无
● 输出参数描述:无
版权所有,侵权必究 35
4、 emitter_search_result
● 功能描述:
蓝牙发射搜索结果回调过滤、检测到需要连接的设备就停止搜索,发起链接
● 函数原型:
u8 emitter_search_result(char *name, u8 name_len, u8 *addr, u32 dev_class, char rssi)
● 输入参数描述:无
@ char *name:搜索到设备名字
@ u8 name_len,:搜索到设备名字长度
@ u8 *addr:搜索到设备地址
@ u32 dev_class:搜索到设备设备类
@ char rssi:搜索到设备信号强度
● 输出参数描述:无
5、 emitter_rx_avctp_opid_deal
● 功能描述:
蓝牙发射播放音乐控制处理
● 函数原型:
void emitter_rx_avctp_opid_deal(u8 cmd, u8 id)
● 输入参数描述:无
@ u8 cmd:控制命令
@ u8 id,:
● 输出参数描述:无
版权所有,侵权必究 36
6、 emitter_save_remote_name
● 功能描述:
蓝牙发射链接保存远端设备信息
● 函数原型:
void emitter_save_remote_name(u8 *addr, u8 *name)
● 输入参数描述:无
@ u8 * addr:设备地址
@ u8 *name:设备名字
● 输出参数描述:无
7、 emitter_get_remote_name
● 功能描述:
蓝牙发射读取链接设备信息
● 函数原型:
u8 *emitter_get_remote_name(u8 *addr)
● 输入参数描述:无
@ u8 * addr:设备地址
● 输出参数描述:设备名字
版权所有,侵权必究 37
7.蓝牙对箱函数介绍
1、 bt_tws_connction_status_event_handler
● 功能描述:
蓝牙对箱事件状态处理函数
● 函数原型:
int bt_tws_connction_status_event_handler(struct bt_event *evt)
● 输入参数描述:
@ struct bt_event *evt:对箱事件
● 输出参数描述:
2、 bt_tws_search_and_pair
● 功能描述:
开启对箱主机搜索链接从机,对箱没有配对过
● 函数原型:
void bt_tws_search_and_pair()
● 输入参数描述:
● 输出参数描述:
3、 bt_open_tws_wait_pair
● 功能描述:
开启对箱的从机被搜索链接,对箱没有配对过
● 函数原型:
void bt_open_tws_wait_pair()
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 38
4、 bt_open_tws_wait_conn
● 功能描述:
开启对箱的从机等待链接,对箱已配对过
● 函数原型:
void bt_open_tws_wait_conn(u16 timeout)
● 输入参数描述:
● 输出参数描述:
5、 bt_open_tws_conn
● 功能描述:
开启对箱的主机链接,对箱已配对过
● 函数原型:
int bt_open_tws_conn(u16 timeout)
● 输入参数描述:
● 输出参数描述:0:启动成功 其他:失败
6、 bt_close_tws_wait_pair
● 功能描述:
关闭对箱各种等待链接
● 函数原型:
void bt_close_tws_wait_pair()
● 输入参数描述:
● 输出参数描述:
7、 bt_close_tws_conn
● 功能描述:
关闭对箱各种等待链接
● 函数原型:
void bt_close_tws_conn()
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 39
8、 bt_remove_tws_pair
● 功能描述:
取消对箱配对
● 函数原型:
void bt_remove_tws_pair()
● 输入参数描述:
● 输出参数描述:
9、 bt_open_phone_wait_pair
● 功能描述:
开启被手机搜索链接,在没有被手机链接的状态开启
● 函数原型:
void bt_open_phone_wait_pair(void)
● 输入参数描述:
● 输出参数描述:
10、 bt_close_phone_wait_pair
● 功能描述:
关闭被手机搜索链接状态
● 函数原型:
void bt_close_phone_wait_pair()
● 输入参数描述:
● 输出参数描述:
11、tws_cancle_all_noconn
● 功能描述:
关闭所有对箱链接状态
● 函数原型:
void tws_cancle_all_noconn()
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 40
12、 bt_tws_start_search_and_pair
● 功能描述:
对箱主机开启搜索链接,在通话下不开启
● 函数原型:
int bt_tws_start_search_and_pair()
● 输入参数描述:
● 输出参数描述:0:没开启 1:开启
13、 bt_tws_remove_tws_pair
● 功能描述:
对箱取消配对,在通话状态不支持取消
● 函数原型:
u8 bt_tws_remove_tws_pair()
● 输入参数描述:
● 输出参数描述:0:没取消 1:取消
14、 bt_tws_connect_and_connectable_switch
● 功能描述:
对箱主机开启链接调度状态
● 函数原型:
void bt_tws_connect_and_connectable_switch()
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 41
15、 connect_and_connectable_switch
● 功能描述:
对箱开启手机被发现链接、tws被搜索链接、tws 已配对链接状态切换
● 函数原型:
void connect_and_connectable_switch(void *_sw)
● 输入参数描述:
● 输出参数描述:
16、 bt_tws_poweron
● 功能描述:
对箱初始化,根据是否已配对过开启对箱链接状态
● 函数原型:
int bt_tws_poweron()
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 42
8.蓝牙测试函数介绍
1、 bt_fast_test_api
● 功能描述:
蓝牙链接杰理测试盒,进行快速测试会有这个函数的回调,可在函数里面设置需要测试的流程
● 函数原型:
void bt_fast_test_api(void)
● 输入参数描述:
● 输出参数描述:
2、 bt_dut_api
● 功能描述:
蓝牙模式样机被测试仪链接上的回调函数,把其他状态关闭,避免影响测试
● 函数原型:
void bt_dut_api(u8 value)
● 输入参数描述:
● 输出参数描述:
3、 bt_fix_fre_api
● 功能描述:
蓝牙bredr进入定频状态
量产的时候可以通过按键等来触发进入定频状态,这时候蓝牙会在一个通道里发送信号,可以通过设置下面变量来设置定频的频点const int config_bredr_fcc_fix_fre = 0;
● 函数原型:
void bt_fix_fre_api()
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 43
4、 ble_fix_fre_api
● 功能描述:
蓝牙ble进入定频状态
● 函数原型:
void ble_fix_fre_api()
● 输入参数描述:
● 输出参数描述:
5、 bt_product_test_uart
● 功能描述:
蓝牙串口量产控制测试流程demo,开发者根据实际来运行各种状态,协议可以参考《杰理蓝牙串口量产控制.pdf》文档
● 函数原型:
void bt_product_test_uart(u8 *data, u8 len)
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 44
9. Ble透传函数介绍
1、 bt_ble_init
● 功能描述:
蓝牙透传初始化
● 函数原型:
void bt_ble_init(void)
● 输入参数描述:
● 输出参数描述:
2、 bt_ble_exit
● 功能描述:
蓝牙透传退出
● 函数原型:
void bt_ble_exit(void)
● 输入参数描述:
● 输出参数描述:
3、 ble_profile_init
● 功能描述:
profile配置初始化,协议中回调
● 函数原型:
● void ble_profile_init(void)
● 输入参数描述:
● 输出参数描述:
4、 advertisements_setup_init
● 功能描述:
版权所有,侵权必究 45
设备广播参数配置
● 函数原型:
● static void advertisements_setup_init()
● 输入参数描述:
● 输出参数描述:
5、 make_set_adv_data
● 功能描述:
配置广播 Advertising Data数据内容
● 函数原型:
● static int make_set_adv_data(void)
● 输入参数描述:
● 输出参数描述:
6、 make_set_rsp_data
● 功能描述:
● 配置广播 Scan Response Data数据内容
● 函数原型:
● static int make_set_rsp_data(void)
● 输入参数描述:
● 输出参数描述:
7、 bt_ble_adv_enable
● 功能描述:
使能设备开关广播
● 函数原型:
● void bt_ble_adv_enable(u8 enable)
● 输入参数描述:
enable:1 或者 0
● 输出参数描述:
8、 ble_module_enable
● 功能描述:
版权所有,侵权必究 46
使能透传模块开关
● 函数原型:
● void ble_module_enable(u8 en)
● 输入参数描述:
en:1 或者 0
● 输出参数描述:
9、 ble_app_disconnect
● 功能描述:
断开ble
● 函数原型:
● void ble_app_disconnect(void)
● 输入参数描述:
● 输出参数描述:
10、 cbk_packet_handler
● 功能描述:
协议中HCI事件回调处理
● 函数原型:
● static void cbk_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size)
● 输入参数描述:
packet_type:事件类型
Channel:事件通道
Packect:数据包
Size:数据包长度
● 输出参数描述:
11、cbk_sm_packet_handler
● 功能描述:
协议中sm事件回调处理
● 函数原型:
● static void cbk_sm_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size)
● 输入参数描述:
packet_type:事件类型
Channel:事件通道
Packect:数据包
版权所有,侵权必究 47
Size:数据包长度
● 输出参数描述:
12、 att_read_callback
● 功能描述:
ATT读操作回调
● 函数原型:
● static uint16_t att_read_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t offset, uint8_t *buffer, uint16_t buffer_size)
● 输入参数描述:
Connection_handle:连接handle
Att_handle: att操作handle
Offset:操作的偏移
Buffer:若非0,填入操作数据
Buffer_size:可填入数据的长度
● 输出参数描述:
操作返回的数据长度
13、 att_write_callback
● 功能描述:
ATT写操作回调
● 函数原型:
● static int att_write_callback(hci_con_handle_t connection_handle, uint16_t att_handle, uint16_t transaction_mode, uint16_t offset, uint8_t *buffer, uint16_t buffer_size)
● 输入参数描述:
Connection_handle:连接handle
Att_handle: att操作handle
transaction_mode:保留,未用
Offset:操作的偏移
Buffer:写入操作数据内容
Buffer_size:写入数据的长度
● 输出参数描述:
0 操作成功,非0失败
版权所有,侵权必究 48
14、 app_send_user_data
● 功能描述:
ATT操作发送
● 函数原型:
● static int app_send_user_data(u16 handle, u8 *data, u16 len, u8 handle_type)
● 输入参数描述:
Handle: 操作att handle
Data:数据内容
Len:数据长度
Handle_type:操作类型,
ATT_OP_AUTO_READ_CCC
ATT_OP_NOTIFY
ATT_OP_INDICATE
● 输出参数描述:
发送结果
15、 app_send_user_data_check
● 功能描述:
检查发送cbuffer是否满
● 函数原型:
● static int app_send_user_data_check(u16 len)
● 输入参数描述:
Len: 非0 判断数据长度是否可写入
● 输出参数描述:
1:可写入
0:不可写入
16、 check_connetion_updata_deal
● 功能描述:
检查连接参数更新
● 函数原型:
● static void check_connetion_updata_deal(void)
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 49
10. Bt_ble. c 函数介绍
1、 bt_ble_init
● 功能描述:
蓝牙透传初始化
● 函数原型:
void bt_ble_init(void)
● 输入参数描述:
● 输出参数描述:
2、 bt_ble_exit
● 功能描述:
蓝牙透传退出
● 函数原型:
void bt_ble_exit(void)
● 输入参数描述:
● 输出参数描述:
3、 ble_profile_init
● 功能描述:
profile配置初始化,协议中回调
● 函数原型:
void ble_profile_init(void)
● 输入参数描述:
● 输出参数描述:
4、 advertisements_setup_init
● 功能描述:
版权所有,侵权必究 50
设备广播参数配置
● 函数原型:
static void advertisements_setup_init()
● 输入参数描述:
● 输出参数描述:
5、 make_set_adv_data
● 功能描述:
配置广播 Advertising Data数据内容
● 函数原型:
static int make_set_adv_data(void)
● 输入参数描述:
● 输出参数描述:
6、 make_set_rsp_data
● 功能描述:
配置广播 Scan Response Data数据内容
● 函数原型:
static int make_set_rsp_data(void)
● 输入参数描述:
● 输出参数描述:
7、 bt_ble_adv_enable
● 功能描述:
使能设备开关广播
● 函数原型:
void bt_ble_adv_enable(u8 enable)
● 输入参数描述:
enable:1 或者 0
● 输出参数描述:
8、 bt_ble_get_adv_enable
● 功能描述:
版权所有,侵权必究 51
获取是否广播使能
● 函数原型:
u8 bt_ble_get_adv_enable(void)
● 输入参数描述:
● 输出参数描述:
1 或者 0
9、 bt_ble_icon_set_comm_address
● 功能描述:
重设ble 的地址,跟edr 的地址一致
● 函数原型:
void bt_ble_icon_set_comm_address(u8 *addr)
● 输入参数描述:
Addr:地址
● 输出参数描述:
10、 bt_ble_icon_slave_en
● 功能描述:
设置从机是否在线
● 函数原型:
void bt_ble_icon_slave_en(u8 en)
● 输入参数描述:
En:1 或 0
● 输出参数描述:
11、bt_ble_set_control_en
● 功能描述:
配置可控制广播
● 函数原型:
void bt_ble_set_control_en(u8 en)
● 输入参数描述:
En:1 或 0
● 输出参数描述:
版权所有,侵权必究 52
12、 bt_ble_icon_open
● 功能描述:
Open icon广播
● 函数原型:
● void bt_ble_icon_open(u8 type)
● 输入参数描述:
Type:icon类型
● 输出参数描述:
13、 bt_ble_icon_reset
● 功能描述:
重置icon广播
● 函数原型:
void bt_ble_icon_reset(void)
● 输入参数描述:
● 输出参数描述:
14、 bt_ble_icon_close
● 功能描述:
关闭icon,是否需要消除效果
● 函数原型:
void bt_ble_icon_close(u8 dismiss_flag)
● 输入参数描述:
Dismiss_flag: 1 或 0
● 输出参数描述:
15、 update_dev_battery_level
● 功能描述:
定时检查设备电量,充电状态
● 函数原型:
static u8 update_dev_battery_level(void)
● 输入参数描述:
● 输出参数描述:
版权所有,侵权必究 53