嗨
我使用DSPS作为我的设备连接到电话的基础。
该设备的结构是MSU通过BLE芯片与电话进行串行通话。
我发现,当我的手机应用程序连接到设备时,第一条信息总是延迟大约800毫秒,只有第二条信息才会发布第一条信息。
背景:我的应用程序将发送一个消息,在超时后,它将再次发送消息N次。
场景如下:
- 连接电话发送消息到设备,第一个消息将总是超时,约800ms后,所有消息(第一次和重试)将到达MCU。
- 如果Timeout为200ms,则MCU在连接后约8000ms会一次收到4条消息。
- 如果Timeout为2000ms,则MCU将在连接2秒后一次收到2条消息。
我调查了这个问题,它似乎是延迟起源于协议栈的较低层次,GATT调用较高层次的数据只有在积累的消息大约800ms后。
显然,延迟导致应用程序工作在连接缓慢,我想要修复它。
请建议。
拉兹法勒
设备:
嗨razp,
请问您是否有定制的移动应用程序,或者您正在使用我们的DSPS移动应用程序?
谢谢,PM_Dialog
这是我们为我们的设备开发的一个定制的移动应用程序。
嗨razp,
请问这个问题是关于DA14580还是关于你的定制移动应用?在支持网站上有一个DSPS移动应用程序和源代码可用。
谢谢,PM_Dialog
你提出了一个有趣的问题。我认为这个延迟和问题是在DA14580,我可能是错的。
场景如下:
1.BLE连接建立。
2.应用程序在连接时发送消息。
3.BLE设备在约800ms后才接收到该消息,且仅在第二次重试后。
问题是在较低的层次会发生什么?
留言是否立即留下电话,并在DA1580延迟?
延迟是否源于电话:消息只在延迟和重试后才离开凤凰?
知道怎么测试吗?
嗨razp,
您的问题存在于我们的DSPS移动应用程序吗?你试过吗?
谢谢,PM_Dialog
你好,
我不知道如何用DSPS Mobile应用程序模拟这个场景。
请建议。
你好,
当您试图发送第一条信息时,您是否知道您的手机应用程序已经完成服务发现?服务发现可能需要很长时间,这取决于外围/从设备提供的服务数量和特征。
/米凯尔
谢谢你!
我做了一些调查,显然我们使用了设备状态:连接,作为开始沟通的标志。
将“开始通信”标志移动到“服务发现”通知可以解决这个问题。