嗨,对话框中,
我正在开发一个设备和一个应用程序,并使用dsp进行通信。
所有的工作都比较好,但我们的设备没有连接到一些Android平板电脑,我们没有很多平板电脑要检查,但“联想TAB 4 10”(TB X704L)无法连接到我们的设备。大多数平板电脑和手机运行良好。
试着调试它,我正在使用你的dsp应用程序。
我看到这种联系建立起来了,但立刻就断开了。
当使用android的蓝牙设置,试图连接设备结果与错误弹出:“不能配对BLE因为一个错误的PIN或passkey”-我的设备配置是“只是工作”没有身份验证,没有密钥,没有安全,所以这条消息是令人困惑....
我做了一些研究:向设备添加身份验证并没有改变行为,我也没有尝试做任何其他配置更改。
有一次,我们成功地连接了平板电脑,dsp应用程序暂时还能正常工作。我无法复制它。
我的问题:
你曾经遇到过这样的问题吗?
似乎设备和平板电脑之间最初的“握手”失败了一些软件。有什么建议吗?
谢谢,
拉兹
设备:
嗨razp:
你能清除你的外设在平板电脑上的任何现有条目,然后再试一次吗?
否则,我们需要蓝牙嗅探日志。
谢谢,
TR_DIALOG
嗨,TR。
请详细说明。
1.什么是“清除你在平板电脑上的外设的任何现有条目”
2.我如何获得蓝牙嗅探器日志?
拉兹
嗨razp:
1.什么是“清除你在平板电脑上的外设的任何现有条目”
[TR_DIALOG]这个应该在你的平板电脑的蓝牙设置下。我没有带Android设备,所以没有关于具体Android设置的信息。
2.我如何获得蓝牙嗅探器日志?
[TR_DIALOG]通过使用商业蓝牙嗅探器,比如前线或其他供应商的嗅探器。
谢谢,
TR_DIALOG
嗨TR,
谢谢你的帮助。
没有这样的设置在这个平板电脑或任何其他Android平板电脑/手机,但我做了一个“网络设置重置”。这并没有改变连接行为。
不幸的是,我们没有“商业蓝牙嗅探器”。
我可以在Dialog SDK中记录通信吗?
亲切的问候,
拉兹
如果你的平板电脑有可能与之前使用过的设备配对,进入设置/连接/蓝牙,清除配对(每个配对设备的右侧应该显示一个齿轮图标。通过点击“解除配对”来清除配对/绑定)
/ MHv
它从未成功连接到设备上。
我正在调试设备端的问题。看看事件序列,这就是我看到的。
好
t:14 m: 1
设备连接
t:13 m: 0
t:54 m: 3 SPS_SERVER_CREATE_DB_CFM
t:54 m: 3 SPS_SERVER_CREATE_DB_CFM
配置文件启用
t:14 m: 0
t:12 m: 0 GATTC_CMP_EVT
t:12 m: 0 GATTC_CMP_EVT
t: 14 m: 17 GAPC_PARAM_UPDATED_IND
t: 14 m: 17 GAPC_PARAM_UPDATED_IND
t: 14 m: 23 GAPC_ENCRYPT_REQ_IND
t: 14 m: 23 GAPC_ENCRYPT_REQ_IND
不太好
t:14 m: 1
设备连接
t:13 m: 0
t:54 m: 3 SPS_SERVER_CREATE_DB_CFM
t:54 m: 3 SPS_SERVER_CREATE_DB_CFM
配置文件启用
t:14 m: 3
设备断开连接
t:14 m: 0
的日志
t: num task_num m:消息
消息名称是我基于代码的解释。
这些日志我还不明白,也许你会明白。
我还不确定这是一个设备问题,一个平板电脑问题,或者可能是BLE协议的不同解释。
希望你能帮忙
拉兹
平板电脑显然出于某种原因决定断开连接。dsp将尝试协商更多的可选连接参数,这是可能的平板电脑噎死在这。我建议我们后退一步,让你构建并加载empty_peripheral_template到你的目标上。该项目是100%硬件无关的,可以在任何具有DA14580的硬件上运行。请使用通用的蓝牙应用程序(BlueLoupe或BLE Scanner),并验证平板电脑连接和保持与目标连接。
另外,请提供平板电脑上的安卓版本。
/ MHv
嗨MHv,
干得好,平板电脑和目标保持联系。
平板电脑的Android版本是7.1.1
我的下一步应该是什么?
我试着找出这个问题查看设备上的通信RX/TX。在代码中,在哪里放置用于RX和TX通信的记录器是一个好地方?
亲切的问候,
拉兹
让我们从删除连接启动时发生的MTU交换开始。尝试在DSPS的user_on_connection()回调函数中将函数调用注释到user_gattc_exc_mtu_cmd()。如果这“修复”了问题,我们就能很好地知道下一步该往哪里看。
/ MHv
谢谢MHv
我按建议做了,结果是不确定的:一个成功的连接是建立的,但不是每次。
为了获得一个成功的连接,我需要做多次尝试(点击列表中的项目),大多数时候我得到“连接失败”的错误,偶尔我有一个成功。此外,我似乎需要在两次成功之间重置设备。
在android的蓝牙设置中,我不再出现错误弹出:“Couldn't pair with BLE because an incorrect PIN or passkey”
亲切的问候,
拉兹
这仍然是很好的数据。接下来,尝试注释对app_easy_gap_param_update_start()的调用——相同的函数。这应该允许平板电脑完全指定连接参数,而不需要任何协商。这也将极大地限制吞吐量,但它将告诉我们在何处调整连接参数。
/ MHv
有了这个改变,将设备连接到平板电脑和传输数据就没有问题了。
拉兹
我们确实取得了一些进展……
我建议我们(好你)做以下事情:
/ MHv
嗨MHv,
谢谢你的病人。
第三点是工作。我将对user_gattc_exc_mtu_cmd()和app_easy_gap_param_update_start()的调用延迟了10ms,似乎在平板电脑上一切正常。
你建议延迟1-2秒。10ms是不是太短了?
你是否知道这一改变将如何影响大多数android / iOS设备?
亲切的问候,
拉兹
这是个好消息。我不认为延误的持续时间是那么重要。平板电脑似乎无法处理之前的活动时间,任何事件分离将有所帮助。
Android和iOS都以一种神秘的方式运行;o),但你可以放心地保存你的代码更改使DSPS更具包容性,并且比原来的代码适用于更多设备。我会建议我们的应用程序团队将您的修复视为未来雷竞技安卓下载任何DSPS更新的潜在内容。
/ MHv