嗨对话,
我正在开发一个设备和应用程序,并使用DSP进行通信。
所有操作都相对较好,但是我们的设备没有连接到某些Android平板电脑,我们没有很多平板电脑可以检查,但是“ Lenovo Tab 4 10”(TB X704L)无法连接到我们的设备。大多数平板电脑和手机运行良好。
试图调试它,我正在使用您的DSP应用程序。
我看到联系立即建立并断开连接。
使用Android的蓝牙设置时,尝试将设备结果与错误弹出窗口连接起来:“由于不正确的PIN或PASSKEY,无法与BLE配对” - 我的设备配置是“ Just Work”,没有身份验证,没有PassKey,没有安全性因此,此消息令人困惑。
我进行了一些研究:对设备的身份验证添加并没有改变行为,并且我尝试过任何其他配置更改进行了任何更改。
在一个例子中,与平板电脑有成功的连接,而DSPS应用程序暂时工作正常。我无法复制它。
我的问题:
您是否遇到过这样的问题?
看来设备和平板电脑之间的初始“握手”失败了。我应该在哪里看?
谢谢,
拉兹
设备:
你好RAZP:
您能否清除平板电脑上外围的任何现有条目,然后重试。
否则,我们将需要一个蓝牙嗅探器日志。
谢谢,
tr_dialog
嗨,tr。
请详细说明。
1.什么是“清除平板电脑上外围的任何现有条目”
2.如何获得蓝牙嗅探器日志?
拉兹
嗨,Razp:
1.什么是“清除平板电脑上外围的任何现有条目”
[tr_dialog]应该在平板电脑的蓝牙设置下进行某个地方。我没有Android设备,因此没有有关特定Android设置的信息。
2.如何获得蓝牙嗅探器日志?
[tr_dialog]通过使用商业蓝牙嗅探器,例如前线或其他供应商。
谢谢,
tr_dialog
嗨,tr,
谢谢您的帮助。
这款平板电脑或任何其他Android平板电脑 /电话中没有这样的设置,但是我进行了“网络设置重置”。这没有改变连接行为。
不幸的是,我们没有“商业蓝牙嗅探器”。
我可以在对话框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
t:54 m:3 sps_server_create_db_cfm
配置文件启用
t:14 m:0 gapc_cmp_evt
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 GAPC_CONNECTION_REQ_IND
连接设备
t:13 m:0 gapm_cmp_evt
t:54 m:3 sps_server_create_db_cfm
t:54 m:3 sps_server_create_db_cfm
配置文件启用
t:14 m:3 gapc_disconnect_ind
设备断开连接
t:14 m:0 gapc_cmp_evt
关于日志
t:task_num m:消息数字
消息名称是我基于代码的解释。
这些日志对我来说还没有意义,也许对您来说会。
我尚未确信这是设备问题,平板电脑问题,或者可能是对BLE协议的不同解释。
希望你能帮忙
拉兹
平板电脑显然由于某种原因决定断开连接。DSP将尝试协商更多可选的连接参数,并且平板电脑可能会窒息。我建议我们退后一步,让您构建和加载empty_peripheral_template到您的目标上。该项目是100%硬件不可知论的,并且可以在具有DA14580的任何硬件上运行。请使用通用蓝牙应用程序(BlueLoupe或BLE扫描仪),并验证平板电脑是否连接并保持与目标相关。
另外,请在平板电脑上提供Andriod版本。
/MHV
嗨,MHV,
良好的呼叫,平板电脑连接并与目标连接。
平板电脑上的Android版本为7.1.1
我的下一步应该是什么?
我正在尝试查明查看设备上的通信RX/TX的问题。在代码中放置RX和TX Communications的登录器的好地方?
亲切的问候,
拉兹
让我们从删除启动连接时发生的MTU交换。尝试在user_on_on_connection()回调dsps的函数中拨出函数呼叫到user_gattc_exc_mtu_cmd()。如果这“解决”了问题,我们将有很好的指示下一步寻找。
/MHV
谢谢MHV
我按照建议的方式做到了,结果尚无定论:成功建立了联系,但并非每次。
要获得成功的连接,我需要进行多次尝试(单击列表中的项目),大多数情况下,我都会遇到“连接失败”错误,并且有时我会成功。此外,似乎我需要在成功之间重置设备。
在Android的蓝牙设置中,我不再获得错误弹出:“由于不正确的销钉或Passkey,无法与BLE配对”
亲切的问候,
拉兹
那仍然是好数据。接下来,尝试将调用呼叫app_easy_gap_param_update_start() - 相同的函数。这应该允许平板电脑在无需任何谈判的情况下完全决定连接参数。这也将大大限制ThrogHput,但它将向我们展示在哪里调整连接参数。
/MHV
通过这种更改,将设备连接到平板电脑并传输数据没有问题。
拉兹
我们肯定到这里的某个地方...
我建议我们(好吧,您; o)做以下操作:
/MHV
嗨,MHV,
谢谢你的病人。
第三点正在起作用。我将呼叫延迟到USER_GATTC_EXC_MTU_CMD()和APP_EASY_GAP_PARAM_UPDATE_START()的电话延迟了10ms,看来平板电脑的一切正常。
您建议延迟1-2秒。10ms太短吗?
知道这种变化将如何影响与原始实施合作正常的大多数Android / iOS设备?
亲切的问候,
拉兹
那是个好消息。我认为延迟的持续时间并不那么重要。平板电脑似乎无法处理以前的活动时间,任何事件的分离都会有所帮助。
Android和iOS都以神秘的方式工作; o),但是可以肯定地保存您的代码更改使DSP更具包容性,并且将与原始代码相比,将使用更多的设备。我将向我们的应用团队建议他们将您的修复程序视雷竞技安卓下载为他们应该将来有可能进入任何未来DSP的更新。
/MHV