自定义通知值在BLE订阅后未发送

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
10个帖子/ 0新
最后一篇
Costas.Braz.Braz.
离线
最后一次露面:12个月前1年
加入:2017-10-16 20:57
自定义通知值在BLE订阅后未发送

你好,

我正在开发一个项目,通过ble传输加速度计测量。我已经成功地转移他们时,他们只是读的特征,作为下一步,我希望他们被通知,这样你就可以得到更新到你的智能手机。我在ble_periperal示例中的adc1特征之后基于它。
我首先尝试了第一个特征(x轴一个)并一旦订阅它加载一个值,然后再也不会发送另一个值。
我使用浅蓝色的android应用程序来检查特性。

也许我错过了一个需要配置的设置,以便在将CCCD写入描述符后发送更新?

我附上了我认为对您的源文件有用的源文件的一部分。
您还可以在此处找到我的完整源项目:

https://drive.google.com/open?id=1u4klqe1cd2xdbppyyhidjl2lnfaqtz09.

谢谢提前

设备:
PM_DIALOG.
离线
最后一次露面:20小时37分钟前
职员
加入:2018-02-08 11:03
嗨Kosta,

嗨Kosta,

让我检查一下你的项目,然后再回复你。你在移动应用程序中启用通知了吗?作为第一步,我建议您尝试发送原始值作为ADC示例,而不是加速度计的数据。您希望通过BLE发送多少数据?

此外,我强烈推荐您看看DA14585/6产品和我们最新的SDK6。亚博电竞菠菜对于这些产品,我们有亚博电竞菠菜一个软件示例实现读取超过I2C的传感器值,并通过通知发送它们。除了这个例子之外,我们还有很多软件例子,这对入门非常有用。请浏览以下连结:

谢谢,PM_DIALOG.

Costas.Braz.Braz.
离线
最后一次露面:12个月前1年
加入:2017-10-16 20:57
你好,

你好,
我已经有DA14580 pro的开发工具包,所以我想继续这个。我看了DA14585/6的例子,看看他们是否可以帮助我开发DA14580,但它没有。
我想要传输的传感器的数据是一个12位的值(由一个寄存器的8位和第二个寄存器的4位组成)。
在浏览手册UM-B-050后,我注意到您必须写入控制点以启用通知以及ADC1使用的计时器,我可以请您解释如何发生这种情况,具体是如何实现的通知?

PM_DIALOG.
离线
最后一次露面:20小时37分钟前
职员
加入:2018-02-08 11:03
嗨,哥,

嗨,哥,

控制点特性用于SDK的BLE_APP_PHERIALLAL示例。当值写入控制点特性时,触发user_custs1_ctrl_wr_ind_handler()。因此,如果值为1,则每个app_peripheral_ctrl_timer_delay触发app_adcval1_timer_cb_handler。app_adcval1_timer_cb_handler模​​拟ADC采样,如果检查此功能的源代码,则会看到“样本”值定期递增每个App_peripheral_ctrl_timer_delay。“示例”将通过通知发送到对等设备。但是,对等体需要通知操作。我检查了你的代码,因为我能够看到你不使用控制点特征。因此,您必须通过您使用的移动应用程序启用通知。

谢谢,PM_DIALOG.

Costas.Braz.Braz.
离线
最后一次露面:12个月前1年
加入:2017-10-16 20:57
你好,

你好,
我在教程中使用LightBlue应用程序。按下APP上的订阅按钮后,将发送值并编写CCCD,以便我假设从移动侧启用通知。我需要做别的事情吗?
在链接中,你可以找到它的图片。
https://drive.google.com/file/d/1rjga8gjjjrably63jsuacf13y69hwyxg/view?usp=sharing.

谢谢你。

PM_DIALOG.
离线
最后一次露面:20小时37分钟前
职员
加入:2018-02-08 11:03
嗨Kosta,

嗨Kosta,

在user_catch_rest_hndl中,您正在处理CUSTS1_VAL_WRITE_IND消息,因此如果我能够正确理解,您可以在特征中写入一些内容以触发user_custs1_accel_x_cfg_ind_handler()?能否在调试模式下运行代码,并在user_custs1_accel_x_cfg_ind_handler()中添加一个断点?断点是否到达?

谢谢,PM_DIALOG.

Costas.Braz.Braz.
离线
最后一次露面:12个月前1年
加入:2017-10-16 20:57
你好,

你好,
如图所示,断点点击并停止代码。
要诚实地,我真的不确定我需要写入任何东西才能触发该处理程序,我受到描述符编写(CCCD)的印象,以便启用通知。
在我的应用程序中,我希望它在描述符写入后立即开始通知,并继续发送数据,只要特征从传感器获取数据,直到断开连接。这是否意味着我不需要CUST1_VAL_WRITE_IND结构体?
https://drive.google.com/drive/u/0/folders/1a7nlywuad-jkncavlq9iztdjmmq9lji7.

PM_DIALOG.
离线
最后一次露面:20小时37分钟前
职员
加入:2018-02-08 11:03
嗨Kosta,

嗨Kosta,

抱歉,但我不能在调试模式下运行你的代码,因为我没有加速度计,我得到一个NMI。当执行user_custs1_accel_x_cfg_ind_handler时,将根据您的代码触发app_accel_x_ntf_req_handler。因此,在这个函数中,从传感器读取数据,通过通知发送第一个数据,并启动一个计时器,以便在APP_PERIPHERAL_CTRL_TIMER_DELAY之后再次读取数据。在这一点上,让我问你一些事情。在app_easy_timer的回调函数中,为什么有app_accel_x_set_handler而没有app_accel_x_ntf_req_handler?请检查ble_app_peripheral示例中的app_adcval1_timer_cb_handler。你能把你分享给我的链接重新发给我吗?因为我没有权限。

谢谢,PM_DIALOG.

Costas.Braz.Braz.
离线
最后一次露面:12个月前1年
加入:2017-10-16 20:57
你好,

你好,
您的建议让我认为,也许设置的处理程序与NTF处理程序一起令人困惑,并在完全注释Accel_X_Set_Handler之后,只留下它的工作NTF处理程序!订阅特性后,我成功读取了值。
谢谢你!
然而,我确实遇到了另一个问题。在发送一些值之后的一段时间,我在arch_system.c文件中得到一个wrap_platform_reset错误(我在下面的链接中有一个调试的截图)。这是什么,是什么导致了这一切?(有可能是发送的结果值吗?)

https://drive.google.com/file/d/1ywsywh0vnbya7y1zxgoi51rmmpzv6zo2/view?usp=sharing.

谢谢

PM_DIALOG.
离线
最后一次露面:20小时37分钟前
职员
加入:2018-02-08 11:03
嗨Kosta,

嗨Kosta,

很高兴你识上你的问题,谢谢你接受我的答案。WRAP_PLATFORM_RESET由于内存不足而导致。可能,在您的应用程序中,每个连接后,可能会有一些内存泄漏丸。当WRAP_PLATFORM_RESET()发生时,请确保错误代码是reset_mem_alloc_fail,您必须调试这一点以找到它。此外,检查加速度计的读数是否有任何待处理的消息,并确保您正在处理消息时会收到消息,或者如果您正在分配它们应该被释放。例如,如果从传感器获取数据,并且您正在分配消息,以便在有一个连接时将数据发送到通知时,设备最终将运行内存,并且如果设备运行内存,则会导致要重置的设备。尝试定义和增加DA1458x_config_advanced的db_heap_sz,例如,您可以放置​​2048的值。此外,您可以将app_peripheral_ctrl_timer_delay更改为较大。

谢谢,PM_DIALOG.