跳转到主要内容

没有数据在之前开始流数据启用通知

2个月前

没有数据在之前开始流数据启用通知

发布的gme_johannes10分 4回复
0的问题

嗨对话框支持,

我们正在开发一个项目基于物联网传感器SDK (DA14585物联网多传感器开发、v6.160.4)
如果我们和连接到设备
1。开始流数据(发送0 x01 char uuid 2 ea78970 - 7 - d44 - 44 - bb - b097 - 26183 - f402409)
只有在这
2。使听通知(char uuid 2 ea78970 - 7 - d44 - 44 - bb - b097 - 26183 - f402410)
传感器不发送任何数据。

在这之后,我们不继续接收数据从设备即使我们断开,重新连接,开关序列
1。使听通知和
2。开始流数据。

这是预期的行为吗?我怎么能让设备重新开始发送数据?

谢谢你!
凯瑟琳

2个月前

PM_Dialog

嗨gme_johannes,

谢谢你的帖子。因为它是一个自定义代码,你能请描述有点问题是什么?如果我没有记错的话,根据标题、设备不发送数据时,才通知同行设备被禁用。在这种情况下,应该启用通知从对等设备为了在空中开始发送数据。

谢谢,PM_Dialog

2个月前

gme_johannes 10分

我不知道如果你还监测老论坛,我新任命的答案从你的评论
没有数据时开始流
在这里。

嗨PM_Dialog,

谢谢你回到美国。是的,我知道,通知必须启用为了发送通知(明显:))。但只有启用通知空气不会开始发送数据。为了要实现这一目标,必须开始流数据。这取决于顺序,开始启用:
——第一次开始流数据和第二启用通知_does not_开始发送数据。
——第一次启用通知和第二次开始流数据_does_开始发送数据。

我们启用通知:设备不发送数据(在空气中)当启用通知_after_我们发送命令开始流数据。

我们的代码是基于物联网MSK v6.160.4。我们没有实现任何自定义代码接收通知和发送命令开始流数据。
我们特别不更改代码负责撰写和发送传感器数据。

这在以下文件和函数实现:
——文件user_dws_reports。c函数bool user_prepare_multi_sensor_report (…)
——文件user_dws_reports。c函数void user_add_multi_sensor_report (…)
——文件user_dws_reports。c函数void user_send_multi_sensor_report (…)
——文件user_dws_task。c函数user_dws_val_ntf_cfm_handler (…)

当我连接到串行调试控制台(看到的结果任何archprintfs)我可以看到以下错误消息
“错误:NTF下降——<柜台>优秀NTFs”在柜台(ntf_sent_cntr)是一个数字大于15(有一个阈值# define (d)开始印刷这个错误消息,而不是编写和发送数据报告,这也是预配置在上述物联网MSK v6.160.4并不是感动我们)。

每次停止流数据(发送命令停止流数据)并重新启动(发送命令开始流数据)这个计数器增加两个(无论通知是启用或禁用)

这种行为继续当设备从对等设备断开连接和重新连接。

notification-sent-counter ntf_sent_cntr,增加的功能
user_send_multi_sensor_report (…)
以及在
user_dws_reports.c user_send_command_reply(…)(包括文件)
和减少的功能
user_dws_task.c user_dws_val_ntf_cfm_handler(文件)

流媒体数据开始发送0 x01 dws_control_char (uuid 2 ea78970 - 7 - d44 - 44 - bb - b097 - 26183 - f402410)
流数据停止发送0 x00 dws_control_char

这之间的上述行为,我们没有改变。所以我的问题引出:

是设备的行为,不能恢复了通知,想要的吗
(一)甚至当设备断开连接和重新连接时?
(b)在流启动时启用_before_通知(这不是发生在流启动时启用_after_通知)?

我希望这描述清晰。

谢谢你!
凯瑟琳

1个月前

PM_Dialog

你好,凯瑟琳娜,

物联网MSK的应用程序代码提供wrbl_dws_control_char特征(wriatable)和wrbl_dws_control_reply_char(法定)配置和控制设备

所以,每次设备被连接到一个中央设备,首先你应该写0 x01控制点(wrbl_dws_control_char)特点,wrbl_dws_control_reply_char启用通知,然后开始流数据。如果设备断开连接和贯通,那么应遵循重复上述过程。

如果控制点的特点是用0 x01并开始流数据没有wrbl_dws_control_reply_char启用通知,你将不会看到对等设备的流数据,因为通知应该启用。

谢谢,PM_Dialog

1个月前

gme_johannes 10分

亲爱的PM_Dialog,

过程你描述(1。写0 x01控制点,2。为wrbl_dws_control_reply_char启用通知3所示。启用wrbl_dws_multi_sens_char的通知)不会让设备发送数据吗在所有但把它在一个国家无法恢复(如断开和重新连接),除非完全重启!(这是由于ntf_sent_cntr如上解释说在我漫长的帖子)

与你的声明我将获得传感器数据,如果我不为wrbl_dws_control_reply_char启用通知(但只启用通知wrbl_dws_multi_sens_char)当我写0 x01控制点。

很明显,我不会接收传感器数据如果我不启用通知wrbl_dws_multi_sens_char。

正确接收数据的过程它常常是无需重新启动/复位

  1. 为wrbl_dws_control_reply_char启用通知
  2. 为wrbl_dws_multi_sens_char启用通知
  3. 开始流数据通过写0 x01控制点

但这不是我的问题。

我的问题是(我只是复制从我最后一次回复):

是设备的行为,不能恢复了通知,想要的吗
(一)甚至当设备断开连接和重新连接时?
(b)在流启动时启用_before_通知(这不是发生在流启动时启用_after_通知)?

谢谢你!
凯瑟琳