从WireShark屏幕抓取显示问题发生时的流量
简短的问题--参考WireShark映像,是什么原因导致Master发送LL_CHANNEL_MAP_IND以及为什么要花这么长时间?
主机产品设备在TI AM4376x处理器上运行我们自己的嵌入式Linux映像。内核是4.14.79,我们的通信栈位于Bluez5之上。WiFi/蓝牙芯片是Jorjin WG7831-BO,运行Tiinit_11.8.32.BTS固件版本4.5。它是基于TI WL1831。我们连接到的传感器设备是我们自己的,我们使用自定义命令协议,该协议使用两个特性来执行命令握手。这些设备在许多其他平台上都工作得很好,包括Mac、Windows、Linux、Chrome等。
导致问题的工作流程是这样的;
用户空间应用程序允许用户通过BLE发现并连接到我们的传感器设备,一次一个设备。初始连接需要在前面提到的BLE特性上进行一系列命令/响应类型的通信。一旦连接,通信量将显著减少到偶尔的新测量通知,以及由用户触发的偶尔的命令/响应交换。单个设备似乎总是稳定和性能良好。当用户连接到第二设备时,初始连接按预期进行。然而,一旦第二个设备的连接过程完成,我们就会看到,在最初连接的设备上,命令/响应响应时间将延长数百倍。第二设备通信以预期的速度继续。这个问题只在第一个设备上发生,大约30%的时间我们遵循这个工作流程。
d2pio_sdk:gmblngiblobsource.cpp(1532):Blob cmd发送:1bh到gdx-for 07100117;长度=15;滚动计数器=216;时间戳=258104ms。
HCI事件:完成的数据包数(0x13)plen 5#1082[hci0]00:12:49.387892 Num句柄:1句柄:1025计数:1
ACL数据RX:句柄1025标志0x02 dlen 23#1083[hci0]00:12:51.801225 ATT:句柄值通知(0x1B)len 18句柄:0x0016数据:9810272F1BD8FF00204E00000000000000
对于大多数CMD,GetNextResponse()报告的运行时间应该<30毫秒。当我们打开并向设备a发送一堆cmd时,响应时间很短。当我们打开并向设备B发送一堆cmd时,响应时间仍然很短。但是在向设备a发送第一个随后的cmd时,响应时间超过3秒!
注意蓝牙收音机一次只能做一件事。接收或发送。在一个单一的频率上。如果您有两个连接并且两个连接事件同时发生,固件必须决定优先考虑哪一个,跳过哪一个。也许固件不够聪明,无法处理您的具体情况。尝试使用其他连接参数,看看是否有所改善。您也可以尝试另一个蓝牙加密狗从另一个制造商。
问题内容: 我想用BLE扫描某些设备。我只想显示我的设备,所以我知道了设备的名称,如果是好的设备,我会将其放在列表中。 我的问题是,如果我更改设备的名称,此检查将为false。因此,我看是否有可能获得一些我添加的用于执行检查的服务的不变的东西。唯一的方法是使用gatt在发现服务后执行此操作,然后再连接到该设备,但是,是否有可能在不连接设备的情况下从该设备发现某些服务? 问题答案: 我不具备andr
我有3台Android设备,三星Galaxy S3手机,三星Tab4和Verizon OEM平板电脑。Verizon OEM平板电脑不支持BLE、API 17。我从android开发者网站安装了“BLE设备扫描”,并在Galaxy S3上运行。它只显示Verizon平板电脑是找到的设备。当我在三星Tab4上运行相同的应用程序时,它只显示Galaxy S3作为找到的设备。如果我只看Galaxy S3
问题内容: 我正在尝试创建一个应用程序,该应用程序可以连接并接收来自多个蓝牙低能耗设备的通知。我想知道如何实现这一目标。每个连接是否需要一个单独的线程?考虑到API的异步特性,如何确保能够按发现的顺序发现服务并设置通知。我目前使用的是此处提供的相同结构:https : //developer.android.com/guide/topics/connectivity/bluetooth- le.h
在iOS中,无法获取CBP外围对象的mac地址。现在,我有很多不同UUID但外设名称相同的BLE设备。用户必须首先通过注册命令注册到BLE设备,该BLE设备的MAC地址将在二维码扫描时获得。但是,我如何才能获得设备用户正在进行注册,因为在iOS中,我在外围设备中没有获得MAC地址?
我正在创建一个Android应用程序,该应用程序使用Android Studio扫描所有附近的BLE(蓝牙低功耗)设备。 我想我已经实施了所有这些文件: https://developer.android.com/guide/topics/connectivity/bluetooth/ble-overview https://developer.android.com/guide/topics/c
我是android的新手。我有Raspberry PI3设备。我可以通过经典蓝牙连接移动设备到Raspberry PI3。现在我对Raspberry感到困惑,如何通过蓝牙低能量连接移动设备到Raspberry。我们可以将BLE设备连接到android设备,获得特性并可以编写特性。现在我想在Raspberry PI3中做同样的事情,比如(心率监视器,小米手环2)