在运行时更改广告数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
Dsandbue.
离线
最后一次露面:1年9个月前
加入:2017-02-15 14:09
在运行时更改广告数据

你好,

我正在使用BLE_MULTI_LINK-DEMO,我想在运行时调整广告数据。如果我在adv_data []中放置一个变量,则编译器抛出变量必须是const的错误。

我已经搜索了论坛,但旧的主题似乎属于较旧的/不同的芯片组。

提前非常感谢,
菲利普

设备:
mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨dsandbue,

嗨dsandbue,

为了动态地改变68x上的数据,您需要停止广告过程(例如,通过计时器)并设置新的广告数据,然后再次启动广告。

我不太完全得到你的意思,你把一个变量放在广告数据中,能否与你想要做的事情分享一些代码?将广告数据的ADV_DATA []数组声明为常量,我认为这是编译器抱怨的原因,但这不是一个nessecity,您可以在没有const类型的情况下设置广告数据。

请看看这篇文章,https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...,也许会给你一些洞察力。

谢谢mt_dialog.

Dsandbue.
离线
最后一次露面:1年9个月前
加入:2017-02-15 14:09
谢谢您的回答,

感谢您的答案,这里是一个抛出编译器错误的示例,我试图更改PXP-Reporter-Demo中的adv_data:

uint8_t test_adv = 100;

UINT8_T ADV_DATA [] = {
0x05,gap_data_type_uuid16_list_inc,
0x03,0x18,// = 0x1803(lls uuid)
0x02,0x18,// = 0x1802(IAS UUID)
test_adv,
};

错误是:

构建文件:../pxp_reporter_task.c
调用:交叉臂C编译器
../pxp_reporter_task.c:93:9:错误:初始化器元素不是常量
test_adv,
^
../pxp_reporter_task.c:93:9:错误:(初始化'Adv_data [6]')
制作:*** [pxp_reporter_task.o]错误1

提前致谢,
菲利普

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨dsandbue,

嗨dsandbue,

对不起,您正在尝试做的是C中的有效表达式,您是乘以变量,并且您正在尝试在数组初始化中分配该变量,在数组初始化中不能具有变量。如果您想更新字符串,则可以在运行时使用memcpy才能使用该变量更新您的数组。

谢谢mt_dialog.

Dsandbue.
离线
最后一次露面:1年9个月前
加入:2017-02-15 14:09
非常感谢你!!:-)

非常感谢你!!:-)