使用app_easy_timer

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
10个帖子/ 0新
最后发表
HamzaAffes
离线
最后一次露面:6个月3个星期前
加入: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.
离线
最后一次露面:6天20小时前
工作人员
加入: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个月3个星期前
加入:2020-10-03 13:11
嗨对话框,

嗨对话框,

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

谢谢你!

PM_DIALOG.
离线
最后一次露面:6天20小时前
工作人员
加入: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个月3个星期前
加入: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.
离线
最后一次露面:6天20小时前
工作人员
加入:2018-02-08 11:03
嗨Hamzaaffes,

嗨Hamzaaffes,

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

谢谢,PM_DIALOG.

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

嗨对话框,

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

谢谢你!

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

嗨Hamzaaffes,

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

谢谢,PM_DIALOG.

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

嗨对话框,

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

谢谢你!

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

嗨Hamzaaffes,

如果你能告诉我如何实现的话,一个环形缓冲区可以解决这个问题。

这是你应该自己设计的。您可以看一下实现循环缓冲区的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.