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