嗨对话框,
我希望使用DA14680了解周围的蓝牙扫描结果。
ble_gap_scan_start(gap_scan_passive,gap_scan_observer_mode,defoultble_scan_interval,defaultble_scan_window,0,1);
定时器5秒
ble_gap_scan_stop();
我什么时候可以预期ble_evt_gap_scan_completed?扫描_stop()之后只会出现吗?
通常需要多长时间来获取ADV_REPORT完成缓冲区?
设备:
嗨复仇,
扫描过程一旦执行BLE_GAP_SCAN_START()函数就开始,当您使用GAP_SCAN_OBSERVER_MODE时,该过程没有超时,它将继续扫描,直到使用GAP_SCAN_GEN_DISC_MODE或GAP_SCAN_LIM_DISC_MODE时,将继续扫描,然后该过程在大约10秒后自动超时。关于BLE_EVT_GAP_SCAN_COMPLETED时,是调用BLE_GAP_SCAN_STOP()代码将发送取消命令并停止扫描过程,然后SDK将在扫描停止时立即回复BLE_EVT_GAP_SCAN_COMPLETED消息,此消息也在扫描时发生此消息发生超时。关于完成缓冲区需要多长时间的问题,该设备将报告一次可以在空中找到的任何设备(将报告空中的每一个广告字符串),它不会填满任何它最终将成为的缓冲区填充并停止报告设备。
谢谢mt_dialog.
嗨对话框,
感谢您的信息。
静态void handle_evt_gap_adv_report(ble_evt_gap_adv_report_t * evt)
{
printf(“%s:%s信号强度:%d地址:%d:%d:%d:%d:%d:%d:%d \ r \ n”,__func __,EVT->数据,EVT-> RSSI,evt->地址.ddr [0],evt->地址.ddr [1],evt->地址.ddr [2],EVT->地址.DDR [3],EVT->地址.DDR [4],evt->地址.ddr [5]);
}
我有一些扫描结果。
handle_evt_gap_adv_report:testblename信号强度:168地址:81:47:29:85:5:43
handle_evt_gap_adv_report:
信号强度:170地址:18:30:11:25:39:14
handle_evt_gap_adv_report:
/* "| 2,øvr&þþþÿí«信号强度:164地址:51:12:81:04:83:6
但是,EVT->数据有一些垃圾ASCII值。在事件数据中,BLE名称从哪个字节是来自EVT->数据[2]或EVT->数据[9]?...
如果BLE名称超过32个字符,会发生什么?
嗨复仇,
您可以在广告字符串中放置的数据由BLE规范定义,并且仅限于31字节,从此长度3个字节保留,因此您只剩下28个字节,没有设备将与31字节的数据进行更多宣传,并遵守通过BLE规范。还通过BLE规范再次定义了哪些数据和如何存储在广告字符串中,例如,如果您想在广告字符串中包含设备的名称,则应在字节字符串中声明名称的长度和标记0x09,它对应于设备名称。请查看BLE规范以获取更多信息。
谢谢mt_dialog.