NRF_SDH_BLE_OBSERVER用来为本地文件(此处为main.c文件)注册一个BLE回调函数(此处为ble_evt_handler),NRF_SDH_BLE_OBSERVER这个宏执行成功后,所有的BLE事件都会被ble_evt_handler捕获。进入ble_evt_handler,你会发现BLE有上百个回调事件,你不需要每个都处理,你只需要处理你关心的事件即可,比如连接成功事件BLE_GAP...
进入ble_evt_handler,你会发现BLE有上百个回调事件,你不需要每个都处理,你只需要处理你关心的事件即可,比如连接成功事件BLE_GAP_EVT_CONNECTED或者连接断开事件BLE_GAP_EVT_DISCONNECTED NRF_SDH_BLE_OBSERVER有一个很大的好处:某个模块如果需要捕获BLE事件,那么它自己调用NRF_SDH_BLE_OBSERVER这个宏注册相应回调函数即...
static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context) { uint32_t err_code; ble_gap_evt_t const * p_gap_evt = &p_ble_evt->evt.gap_evt; switch (p_ble_evt->header.evt_id) { case BLE_GAP_EVT_CONNECTED: //这里只写phy更新部分,其他的省略 err_code = ...
扫描到广播后,会触发协议栈初始化中的观察者函数 ble_evt_handler,事件标志位为 BLE_GAP_EVT_ADV_REPORT,可以在事件中获取广播包的MAC信息、信道信息、接收信号强度信息和完整的广播包数据。 #define MACSTR "%02x %02x %02x %02x %02x %02x" #define MAC2STR(mac) (mac)[0],(mac)[1],(mac)[2],(mac)...
staticvoidble_evt_handler(ble_evt_tconst*p_ble_evt,void*p_context){caseBLE_GAP_EVT_ADV_REPORT:NRF_LOG_INFO("RSSI: %d\n",p_gap_evt->params.adv_report.rssi);break;} 1.2 连接状态获取rssi Nordic SDK提供一种蓝牙连接状态下,获取连接信号强度的功能API。该API主要接口如下所示: ...
ble_stack_init初始化协议栈的内存分配,设置回调函数为ble_evt_handler static void ble_stack_init(void) { ret_code_t err_code; //使能SoftDevice,能理解,所有蓝牙有关的都在SoftDevice中,所以首先必须使能SoftDevice err_code = nrf_sdh_enable_request(); ...
static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context) { uint32_t err_code; switch (p_ble_evt->header.evt_id) { case BLE_GAP_EVT_CONNECTED: NRF_LOG_INFO("Connected"); err_code = bsp_indication_set(BSP_INDICATE_CONNECTED); ...
在很多应⽤场合,BLE只是作为⼀个数据透传模块,即将设备端数据上传给⼿机,同时接收⼿机端下发的数据。本⽂将和⼤家⼀起,⼀步⼀步演⽰如何开发⼀个BLE透传应⽤程序。按照本⽂的说明,⼤家可以很快就实现⼀个BLE透传应⽤,BLE透传应⽤已经是BLE应⽤中⽐较复杂的⼀种,⼀旦...
voidmi_schd_event_handler(schd_evt_t*p_event) { MI_LOG_INFO("USER CUSTOM CALLBACK RECV EVT ID %d\n", p_event->id); switch(p_event->id) { caseSCHD_EVT_OOB_REQUEST: MI_LOG_INFO("App selected IO cap is 0x%04X\n", p_event->data.IO_capability); ...
&serviceApplicationTaskHandler); 1.3.App_Thread实现对BLE协议栈发送过来的事件的处理 完成初始化后,进入App_Thread函数。该函数不停地对mAppEvent进行解析,如果出现gAppEvtMsgFromHostStack_c事件(该事件由BLE协议栈各模块GAP、GATT、SM等组件的回调函数callback发送),则对消息队列mHostAppInputQueue查询是否有pending...