⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
vengatesan
离线
最后看到:3年4个月前
加入:2017-09-20 44
BLE扫描完成事件

嗨,对话框中,

我想用DA14680得到周围的蓝牙扫描结果。

ble_gap_scan_start (GAP_SCAN_PASSIVE GAP_SCAN_OBSERVER_MODE、defaultBLE_SCAN_INTERVAL defaultBLE_SCAN_WINDOW, 0, 1);
定时器5秒
ble_gap_scan_stop ();

我什么时候可以期待BLE_EVT_GAP_SCAN_COMPLETED?它只会出现在scan_stop()之后吗?
通常需要多少时间得到adv_report完成缓冲区?

设备:
MT_dialog
离线
最后看到:6个月1个星期前
工作人员
加入:2015-06-08 34
嗨vengatesan,

嗨vengatesan,

扫描过程一旦开始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

vengatesan
离线
最后看到:3年4个月前
加入:2017-09-20 44
嗨,对话框中,

嗨,对话框中,
谢谢你提供的信息。

Static void handle_evt_gap_adv_report(ble_evt_gap_adv_report_t *evt)
{

printf (" % s: % s信号强度:地址:% d % d: % d: % d: % d: % d: % d \ r \ n”,__func__, evt - >数据,evt - > rssi, evt - > address.addr [0], evt - > address.addr [1], evt - > address.addr [2], evt - > address.addr [3], evt - > address.addr [4], evt - > address.addr [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:
/ *“¦½ØVR¬™。ÆþíÿÍ«信号强度:164地址:51:12:81:04:83:6

但是evt->数据有一些垃圾ASCII值。在事件数据BLE名称开始字节从哪个字节是从evt->数据[2]或evt->数据[9]?
如果BLE名称超过32个字符会发生什么?

MT_dialog
离线
最后看到:6个月1个星期前
工作人员
加入:2015-06-08 34
嗨vengatesan,

嗨vengatesan,

的数据可以在广告字符串BLE规范定义的,是有限的31个字节从这3个字节长度保留所以你只剩下28字节,没有设备,将广告更多的数据比31个字节并遵守BLE规范。还什么数据,数据如何存储在广告由BLE规范字符串定义了例如如果你想包括设备在广告的名称字符串应该声明名称的长度字节和标签0 x09,对应的设备名称。请查看BLE规格,了解更多信息。

由于MT_dialog