DA14585
8个月前
发布的gme_johannes15分 6回复嗨对话框支持,
我们正在开发一个基于物联网传感器SDK的项目(DA14585物联网多传感器开发,v6.160.4)
如果我们连接到设备和
1.开始流数据(发送0x01至Char UUID 2EA78970-7D44-44BB-B097-26183F402409)
只有在这之后
2.启用监听通知(char uuid 2ea78970-7d44-44bb-b097-26183f402410)
传感器没有发送任何数据。
在此之后,即使我们断开连接,我们也不会从设备接收数据,重新连接并切换序列
1.启用侦听通知和
2.开始流数据。
这是预期的行为吗?如何让设备再次开始发送数据?
谢谢你!
凯瑟琳
7个月前
正如我不知道您是否还在监视旧论坛,我正在重新发布您对您的评论的答案
尝试开始流媒体时没有数据
这里。
嗨PM_Dialog,
谢谢你回到我们身边。是的,我知道为了发送通知,必须启用通知(有点明显:))。但只有启用通知,才不会开始通过空中发送数据。为了实现这一点,流数据也必须启动。这里它取决于启用和启动的序列:
- 首先开始流数据和第二个启用通知_does not_开始发送数据。
-首先启用通知,然后启动流数据_does_开始发送数据。
我们确实启用了通知:当通知启用时,设备不发送数据(通过空中)_after_我们发送命令开始流数据。
我们的代码基于物联网MSK v6.160.4。我们没有实现任何用于接收通知或发送命令以启动流数据的自定义代码。
我们特别没有改变负责编写和发送传感器数据的代码。
这是在以下文件和函数中实现的:
- file user_dws_reports.c, function bool user_prepare_multi_sensor_report(…)
- file user_dws_reports.c,函数void user_add_multi_sensor_report(...)
- file user_dws_reports.c, function void user_send_multi_sensor_report(…)
- file user_dws_task.c, function user_dws_val_ntf_cfm_handler(…)
当我连接到串行调试控制台(查看任何archprintfs的结果)时,我可以看到以下错误消息
“错误:NTF下降——<柜台>优秀NTFs”在柜台(ntf_sent_cntr)是一个数字大于15(有一个阈值# define (d)开始印刷这个错误消息,而不是编写和发送数据报告,这也是预配置在上述物联网MSK v6.160.4并不是感动我们)。
每次流数据停止(发送命令停止流数据)和重新启动(发送命令开始流数据)时,该计数器增加2(无论是否启用通知)
当设备与对等设备断开并重新连接时,此行为仍然存在。
Notification-Sent-counter,ntf_sent_cntr,在函数中增加
user_send_multi_sensor_report(…)
和
user_send_command_reply(...)(都在file user_dws_reports.c中)
功能下降
user_dws_val_ntf_cfm_handler(文件user_dws_task.c中)
流式数据通过发送0x01到dws_control_char (uuid 2ea78970-7d44-44bb-b097-26183f402410)启动
通过向dws_control_char发送0x00来停止流数据
上述该企业行为尚未被美国更改。所以我的问题重新重新定制:
是否需要设备无法从删除通知中恢复的行为
(a)即使设备断开并重新连接?
(b)在启动流时,启用流_Before_通知(它在启动流时未发生_AFter_通知已启用)?
我希望这描述它更清楚。
谢谢你!
凯瑟琳
7个月前
你好,凯瑟琳娜,
物联网MSK应用代码提供了wrbl_dws_control_char特征(可写)和wrbl_dws_control_reply_char(可通知),用于配置和控制设备
因此,每次设备连接到Central设备时,首先应该将0x01写入控制点(wrbl_dws_control_char)特征,启用wrbl_dws_control_reply_char中的通知,然后开始流数据。如果设备断开并重新连接,则应再次执行上述步骤。
如果控制点特性用0x01写入并开始流数据而不启用WRBL_DWS_CONTROL_RELLY_CHAR中的通知,则不会在对等设备中看到流数据,因为应启用通知。
谢谢,PM_Dialog
7个月前
亲爱的PM_DIALOG,
的你描述的过程(1.写入0x01到控制点,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的通知),当我写入0x01到控制点。
显然,如果我没有为WRBL_DWS_MULTI_SENS_CHAN启用通知,我将不会接收传感器数据。
的正确接收数据的程序不需要经常重启/重置它
- 启用wrbl_dws_control_reply_char的通知
- 启用WRBL_DWS_MULTI_SENS_CHAR的通知
- 将0x01写入控制点开始流数据
但这不是我的问题。
我的问题是(我只是从我上次的回复中抄下来的):
是否需要设备无法从删除通知中恢复的行为
(a)即使设备断开并重新连接?
(b)在启动流时,启用流_Before_通知(它在启动流时未发生_AFter_通知已启用)?
谢谢你!
凯瑟琳
8个月前
嗨gme_johannes,
谢谢你的帖子。因为这是一个自定义代码,你能多描述一下是什么问题吗?如果我没有弄错,根据标题,设备只有在对等设备禁用通知时才没有发送数据。在这种情况下,应该从对等设备启用通知,以便开始通过空中发送数据。
谢谢,PM_Dialog