一、前言
上一篇的内容分析了主机更新连接参数指令的空中RF数据,那么我怎么知道主机发出的更新连接是否完成了呢?本篇的内容就是对这个问题的解答。
二、阅读说明
1、泰凌微芯片开发学习者。2、芯科芯片开发学习者。3、蓝牙 spec学习者。
三、正文
1、使用的demo
泰凌芯片:ble_master_kma_dongle
芯科芯片:Bluetooth - SoC Blinky
2、增加连接更新完成事件标志
如上图所示,在app.c文件中的user_init()函数中,增加一个连接更新完成完成的事件标志:
HCI_LE_EVT_MASK_CONNECTION_UPDATE_COMPLETE
3、编写回调函数
{hci_le_connectionUpdateCompleteEvt_t *pCon = (hci_le_connectionUpdateCompleteEvt_t *)p;if(pCon->status == 0){printf("nconnect para completen");}else{printf("nconnect para failn");}#if (BLE_MASTER_OTA_ENABLE)hci_le_connectionUpdateCompleteEvt_t *pCon = (hci_le_connectionUpdateCompleteEvt_t *)p;extern void host_ota_update_conn_complete(u16, u16, u16);host_ota_update_conn_complete( pCon->connInterval, pCon->connLatency, pCon->supervisionTimeout );#endifreturn 0;}
如上图所示,在blm_host.c文件中的blm_le_conn_update_event_proc()函数中,增加打印代码,当更新成功或者失败的时候都会打印log出来。
4、打印结果
如上图所示,打印出了connect para complete,说明更新参数成功了。
四、结尾
本篇解释了连接参数更新完成的回调函数。
阅读全文
171