你好,如果我在先前数据完成发射之前将更多数据放入缓冲区,则需要从外设tocentral传输数据,系统将崩溃。所以我需要知道是否发送了先前的数据。我有一个功能吗?或者可能会检测到错误以停止传输更多数据?
每次我将5个字节放入缓冲区时,会有其他方式传输更多数据吗?例如一次将10个字节放入缓冲液中?
非常感谢
本杰明
嗨Benjamindu,
由于您正在将数据从外设传输到中央,我假设您正在使用通知(因为由于不需要等待来自主设备的确认以发送下一个大量数据),因此您的通知是更快的。因此,为了获得确认以前传输了先前的数据,您必须捕获发送事件的确认,例如,要发送通知,您应该发出Gattc_send_evt_cmd,并且该消息应该具有响应agattc_cmp_evt(自定义配置文件的实现使用与自定义邮件的相同方案cutss1_val_ntf_req,用于发送通知和custs1_val_ntf_cfm以进行确认,实现上述方案)。关于缓冲区的5个字节以及设备崩溃,您能够在同一数据包上携带20个字节,然后通过增加MTU大小(最大512个容字)来扩展该通知。从你提到的东西是别的原因是你的设备崩溃的原因,如果你可以在设备崩溃时追踪它会有所帮助的地方,因为它似乎非常奇怪,可以传输5个字节和崩溃。
谢谢mt_dialog.
嗨mt_dialog,
非常感谢你这么快地回答我。是的我使用通知,你的意思是我可以在传输结束时获得gattc_cmp_evt消息?我可以找到几个gattc_cmp_evt,但我不知道哪个是我应该使用的。随附的是一个快照,当“崩溃”发生时,你能帮助我分析吗?我的分析(猜测)是我想在寄存器中放入更多数据时已经满了20次注册(但我不知道为什么它是“无法读”而不是“写”。我想知道我是否可以检查他们是否可以检查是空的,看看我可以传输更多数据。
嗯,如上,如上所述,对于您发送的每个通知消息,您应该将Gattc_cmp_evt表示回您的应用程序。关于崩溃,据我所知,您显然,您的设备正在从jlink中分离,这就是为什么要在keil中获取这些消息,而不是因为溢出的缓冲区或类似的东西(至少这是什么keil中的错误表示)。此外,我看到您使用了一个非常旧的参考设计(横向_eval_peripheral项目)。我强烈建议移动到最新的SDK以来,您正在使用的参考设计是非常过时的并且不受支持。如果您有兴趣检查580的吞吐量功能,则应检查DSP参考设计。
我下载了最新的SDK,现在正在测试熟悉它的示例。我使用旧版SDK的原因是有一个很好的例子可以满足我的需求,我的应用程序有两个580s经常交换数据,我需要两个580s来连接,有时他们可以睡觉。我想知道你是否有更好的例子可以推荐满足我的需求。
如果您想测试吞吐量,您可以使用DSP参考设计,该项目实施外围设备的一侧以及中央的一侧,因此如果它适合您,可以检查。
我将DSP安装到我的iPad上,但没有在哪里找到目标示例在我的580上运行。
当我有两个580来交换数据时,一个作为中央,另一个作为外设,我发现所有示例都是针对外围设备的,是中心的例子?或者我需要一些配置?
谢谢本杰明
DSP文件夹包括SPS_DEVICE文件夹和SPS_HOST项目,第一个包括外围设备和后者的应用程序的中心侧。您可以用作包含在文件夹中包含的项目SPS_HOST,并为演示使用其他580,或者您可以将Android / IOS应用程序用作中央。
嗨Benjamindu,
由于您正在将数据从外设传输到中央,我假设您正在使用通知(因为由于不需要等待来自主设备的确认以发送下一个大量数据),因此您的通知是更快的。因此,为了获得确认以前传输了先前的数据,您必须捕获发送事件的确认,例如,要发送通知,您应该发出Gattc_send_evt_cmd,并且该消息应该具有响应agattc_cmp_evt(自定义配置文件的实现使用与自定义邮件的相同方案cutss1_val_ntf_req,用于发送通知和custs1_val_ntf_cfm以进行确认,实现上述方案)。关于缓冲区的5个字节以及设备崩溃,您能够在同一数据包上携带20个字节,然后通过增加MTU大小(最大512个容字)来扩展该通知。从你提到的东西是别的原因是你的设备崩溃的原因,如果你可以在设备崩溃时追踪它会有所帮助的地方,因为它似乎非常奇怪,可以传输5个字节和崩溃。
谢谢mt_dialog.
嗨mt_dialog,
非常感谢你这么快地回答我。
是的我使用通知,你的意思是我可以在传输结束时获得gattc_cmp_evt消息?我可以找到几个gattc_cmp_evt,但我不知道哪个是我应该使用的。
随附的是一个快照,当“崩溃”发生时,你能帮助我分析吗?我的分析(猜测)是我想在寄存器中放入更多数据时已经满了20次注册(但我不知道为什么它是“无法读”而不是“写”。我想知道我是否可以检查他们是否可以检查是空的,看看我可以传输更多数据。
非常感谢
嗨Benjamindu,
嗯,如上,如上所述,对于您发送的每个通知消息,您应该将Gattc_cmp_evt表示回您的应用程序。关于崩溃,据我所知,您显然,您的设备正在从jlink中分离,这就是为什么要在keil中获取这些消息,而不是因为溢出的缓冲区或类似的东西(至少这是什么keil中的错误表示)。此外,我看到您使用了一个非常旧的参考设计(横向_eval_peripheral项目)。我强烈建议移动到最新的SDK以来,您正在使用的参考设计是非常过时的并且不受支持。如果您有兴趣检查580的吞吐量功能,则应检查DSP参考设计。
谢谢mt_dialog.
我下载了最新的SDK,现在正在测试熟悉它的示例。
我使用旧版SDK的原因是有一个很好的例子可以满足我的需求,我的应用程序有两个580s经常交换数据,我需要两个580s来连接,有时他们可以睡觉。我想知道你是否有更好的例子可以推荐满足我的需求。
嗨Benjamindu,
如果您想测试吞吐量,您可以使用DSP参考设计,该项目实施外围设备的一侧以及中央的一侧,因此如果它适合您,可以检查。
谢谢mt_dialog.
嗨mt_dialog,
我将DSP安装到我的iPad上,但没有在哪里找到目标示例在我的580上运行。
当我有两个580来交换数据时,一个作为中央,另一个作为外设,我发现所有示例都是针对外围设备的,是中心的例子?或者我需要一些配置?
谢谢
本杰明
嗨Benjamindu,
DSP文件夹包括SPS_DEVICE文件夹和SPS_HOST项目,第一个包括外围设备和后者的应用程序的中心侧。您可以用作包含在文件夹中包含的项目SPS_HOST,并为演示使用其他580,或者您可以将Android / IOS应用程序用作中央。
谢谢mt_dialog.