使用app_easy_timer

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
10个帖子/ 0新
最后发表
HamzaAffes
离线
最后一次露面:6个月2周之前
加入:2020-10-03 13:11
使用app_easy_timer

亲爱的对话框,

所以我开始使用DA14585和sdk 6.0.14构建一个小而简单的项目。我宁愿说是一个小小的模拟。我想创建一个队列,它持有用户定义的结构数据类型和每个间隔30秒,例如,它得到排队,直到它达到其最大大小。我设法做这当建立连接并获取数据通过参照ble外围为例现在我问的是我怎么能实现这个当不乏连接到祝福,我的意思是一旦系统队列自动填充一旦建立连接队列中的数据计算和start sending it through a characteristic that i made along side the data itself. is it possible to do this using the app_easy_timer function to fill the queue even if the ble is not active? if so since it is a one shot timer is there a way to call the enqueuing function periodically until ble is active ?

谢谢你!

设备:
PM_DIALOG.
离线
最后一次露面:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨Hamzaaffes,

嗨Hamzaaffes,

谢谢你的问题在线。您可以将数据存储在广告字符串中,并使用App_easy_Timer opdate它们。请查看SDK和ADV_DATA_UPDATE_TIMER_CB()函数的BLE_APP_PHERIALAL示例。此回调在app_addata_update_to秒之后更新制造商特定数据。

谢谢,PM_DIALOG.

HamzaAffes
离线
最后一次露面:6个月2周之前
加入:2020-10-03 13:11
嗨对话框,

嗨对话框,

您能否在使用user_peripheral.c文件中进一步解释如何在上面实现我的请求?对于我尝试完成的内容是,通过使用app_easy_timer定期填充一个随机数的队列,然后一旦建立连接,我会停止eNqueue,我通过类似于app_adcval1_timer_cb_handler的特征发送数据。

谢谢你!

PM_DIALOG.
离线
最后一次露面:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨Hamzaaffes,

嗨Hamzaaffes,

首先,您应该在广告字符串中定义制造商特定的数据,并使用app_easy_timer更新。请检查adv_data_update_timer_cb(),它更新制造商特定的数据。

应该放在广告字符串中的数据量是多少?

还请查看以下教程:

http://lpccs-docs.dialog-seminiondiond.com/da145xx_advertising_tutorial/changing_advertising_parameters.html#changing-the-advertising-data.

一旦设备连接上,你应该停止计时器,复制数据并通过通知发送它们。

关于BLE通知,请检查app_adcval1_timer_cb_handler()函数。

谢谢,PM_DIALOG.

HamzaAffes
离线
最后一次露面:6个月2周之前
加入:2020-10-03 13:11
你好,谢谢你

你好,谢谢你的回复

#define BUFFER_LENGTH 1000 typedef struct sensorData_t {uint16_t _sensor1;uint16_t _sensor2;uint16_t _sensor3;uint16_t _sensor4;uint16_t _sensor5;uint16_t _sensor6;uint16_t _sensor7;uint16_t _sensor8;uint16_t _sensor9;uint16_t _sensor10; uint16_t _sensor11 ; uint16_t _sensor12 ; }sensorData_t; sensorData_t SensorDataBuffer[BUFFER_LENGTH];

Scent1到12的所有值都是随机生成的(伪值),然后每隔30秒存储在ScenorDoodabuffer中,并且一旦我连接,我将通过app_adcval1_timer_cb_handler逐个发送存储的值,因此单个元素将是sizeof(sensoldata_t)这是24字节

PM_DIALOG.
离线
最后一次露面:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨Hamzaaffes,

嗨Hamzaaffes,

澄清一下:在通过BLE通知发送之前,您的要求是什么?您需要将24字节放入广告字符串并更新它吗?

谢谢,PM_DIALOG.

HamzaAffes
离线
最后一次露面:6个月2周之前
加入:2020-10-03 13:11
嗨对话框,

嗨对话框,

正如我之前说的sensorDataBuffer将填充一个sensorData_t变量每30秒,所以它就像通过堆栈推数据,然后一旦板连接到浅蓝色的应用程序,我可以从堆栈一个一个弹出所有的数据。sensorDataBuffer是一个数组,用于存储为测试目的而随机生成的数据,因此如果数组的长度为100,那么它可以保存2400字节的收集数据。我为这个初学者的要求道歉

谢谢你!

PM_DIALOG.
离线
最后一次露面:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨Hamzaaffes,

嗨Hamzaaffes,

您可以使用广告或扫描响应数据来存储自定义数据。请付款使用GPIO中断和/或计时器改变通告参数BLE广告教程(HTML)

谢谢,PM_DIALOG.

HamzaAffes
离线
最后一次露面:6个月2周之前
加入:2020-10-03 13:11
嗨对话框,

嗨对话框,

我得说,你说的和我的要求之间找不出任何共同点。我需要存储2400字节和广告数据包不能容纳这么多有效载荷。其目标不是更新现有数据,而是按照前面注释中定义的结构存储新生成的数据。循环缓冲区可以解决这个如果你可以请澄清我如何实现它以及如何使用app_easy_timer填充数据时没有建立连接,然后当ble连接存在我可以通过app_adcval1_timer_cb_handler特点流行的数据来监控整个缓冲区。

谢谢你!

PM_DIALOG.
离线
最后一次露面:2天14小时前
工作人员
加入:2018-02-08 11:03
嗨Hamzaaffes,

嗨Hamzaaffes,

>>A ring buffer可以解决这个问题,如果你能告诉我如何实现。

这是你应该自己设计的东西。您可以看一下实现循环缓冲区的DSPS示例。

>>如何在没有建立连接时使用app_easy_timer填充数据

正如我在前面的评论中提到的,您应该使用广告字符串来存储您的自定义数据。请查看SDK的ble_app_peripheral示例和adv_data_update_timer_cb()函数

>>当ble连接出现时,我可以通过app_adcval1_timer_cb_handler特性弹出数据来监视整个缓冲区。

SDK的ble_app_peripheral示例演示了如何向对端设备发送通知

谢谢,PM_DIALOG.