SPS不一致的数据包大小

10个帖子/ 0新
最后一篇
SVL0822
离线
最后一次露面:5年7个月前
加入:2014-11-17 19:20
SPS不一致的数据包大小

你好对话框,

我在我的早期线程中问了这一点,但它被标记为解决,可能没有被重新预订 - 我正在使用DA14580使用SPS配置文件,并尝试每80毫秒使用它来接收20个字节。DA从主UC获取UART上的数据,并将其发送到显示数据的便携式设备。我所拥有的问题是我的便携式接收到大小不一致的数据分组 - 有时数据包根据需要具有20个字节,但其他时间单个20字节传输为两个数据包或数据是20字节宽,但是移位。

我在持续时间〜2 ms的持续时间内发送20个字节,因此在下一个数据周期出现之前应该有足够的时间来接收数据并将其发送。

我需要数据包是相同的大小,因为我的便携式的应用程序希望它们保持一致。你知道什么可能导致这个问题吗?

谢谢,
SVL0822

je_dialog.
离线
最后一次露面:12小时21分钟前
员工
加入:2013-12-05 14:02
在那里,你在使用hw吗?

嗨,你在使用HW流量控制吗?哪个设备被配置为中心(我推定了从Uart的主机MCU拍摄日期)?

谢谢Je_Dialog.

SVL0822
离线
最后一次露面:5年7个月前
加入:2014-11-17 19:20
你好je_dialog,

你好je_dialog,

我不使用HW流量控制。我假设这不是必要的,因为我得到了我发送的所有字节(通过ble),但是有什么不同它们进入的数据包大小。
我正在使用DA14580上的“设备”SPS项目。Central是我的主芯片,DA14580只是充当蓝牙串行接口。

SVL0822

mhv_dialog
离线
最后一次露面:2天前1周
员工
加入:2013-12-06 15:10
嗨svl0822,

嗨svl0822,

您正在观察对话框串行端口服务的预期行为。串行端口链路与UART和数据包完整性完全异步,无法保证,这肯定从未意图。DSP实现是针对流数据进行了优化的,并且不是您的应用程序的理想选择。

从您的描述中,您实际上尝试发送离散数据包 - 这正是如何智能智能。您应该使用20byte大小的特征实现自定义服务。每次您有20个字节准备好BT传输,您都应该继续并将其加载到特征(在GATT数据库中)。SmartDevice(平板电脑/智能手机)实现如此简单,并确保了数据包完整性。您将使用GATT通知,以确保每次更新数据时都会向SmartDevice发送到SmartDevice。

如果您需要有关实现自定义服务的更多信息,请告诉我。它不像它声音那样可怕,并且尽可能更好地适合您所描述的用例。代码占用脚印也会更小。

SVL0822
离线
最后一次露面:5年7个月前
加入:2014-11-17 19:20
mhv_dialog,

mhv_dialog,

谢谢你的详细说明。你描述的声音就像它一样。
是否有任何关于实施自定义服务的文档?我看了软件开发指南,但它没有详细说明这一点。

我是否可以使用SPS服务并只需在“SPS_SERVER_TASK.C”文件中添加新特征?此外,当你说“20字节宽特征”时,你的意思是拥有称为“大小”的属性,这将具有长度20?我正在查看TX数据特征的声明,它有固定长度的属性,因此我没有看到可变性来自的地方。你能为我解释这个吗?

感谢您的耐心等待。我是新的节目,不确定基础知识。

SUMMER20100514.
离线
最后一次露面:4年2个月前
格鲁鲁
加入:2014-12-30 05:01
嗨,也许你应该参考

嗨,也许您应该参考Sample128或Spotar服务。

klim9531
离线
最后一次露面:4年3个月前
加入:2015-01-28 23:52
你好,我面对一样

您好,我面临着同样的情况,与微量的微型沟通,发送/接收13字节数据包。在两个方向上,一切都适用于单个数据包外壳,但最终会分崩离析,当只有一部分数据包放入UART到BLE缓冲区时,我收到通知。如果有一种简单的方法来暂停通知,直到UART上收到完整的13个字节,那将解决问题。TX_WAIT_LEVEL似乎暗示了这一点,但它被评论// 3数据包(20 + 2 * 27),没有进一步的解释。任何想法如果这是正确的方法?

je_dialog.
离线
最后一次露面:12小时21分钟前
员工
加入:2013-12-05 14:02
嗨Klim,我可以高举

嗨Klim,我可以在高层问你试图如何实现什么?DSP专为纯流应用而设计:保留数据包完整性的方式没有任何东西 - 它只是填充缓冲区并传输。我只是想知道是否有一种更简单的方法,可以帮助,就像使用AN-B-029建立简单的自定义配置文件以满足您的需求。如果DSP是去的方式,我们可以看看你关于添加TX_WAIT_LEVEL的问题(它不是我们尚未尝试过的SOMING)。BR JE_DIALOG.

klim9531
离线
最后一次露面:4年3个月前
加入:2015-01-28 23:52
嗨je_dialog,

嗨je_dialog,

我的解决方案是继续流流数据,而是在应用程序中拆卸/组装数据包。

我在数据包中包含一个超时处理程序,使得如果给定的数据包花费太长以组装,则我*假设*存在维护BLE连接的问题。

在这种情况下,我重新尝试发送/接收数据包,最终将失败到“通信丢失”异常处理程序。

到目前为止,如果稍后,我需要做出更多更改,那么我会在这里发布。

干杯, - klim

je_dialog.
离线
最后一次露面:12小时21分钟前
员工
加入:2013-12-05 14:02
嗨Klim,谢谢

嗨Klim,谢谢你让我们知道它适合你...赞扬的反馈,Br Je_Dialog