在哪里可以填充广告数据和即时的gatt树

10帖子 / 0新
最后一篇文章
德里希
离线
最后一次露面:3年11个月前
加入:2017-02-10 09:56
在哪里可以填充广告数据和即时的gatt树

你好,

现在,我能够使用KE_SEND_MSG填充广告数据和GATT服务和特征,并处理USER_CATCH_REST_HNDL()中的事件。虽然,我以一种硬编码的方式完成了此操作。

现在,我必须通过通过UART发送相同的数据来做到这一点。我想找到可以做到这一点的适当位置。我发现的是,一旦控件到达user_app_init(),广告就开始了。每当我将所有必需的数据(广告数据和gatt树)上方的所有必需的数据(广告数据和Gatt树)上方时,我想控制它并开始广告。正确的方法是什么?
考虑到看门狗和其他东西不受影响。

另外,是否有一个特定的功能通过对话框进行定期调用,我可以用来填充数据。

设备:
mt_dialog
离线
最后一次露面:10个月3周前
职员
加入:2015-06-08 11:34
嗨,德里希,

嗨,德里希,

The advertising of the device starts as soon as the .default_operation_adv is called, that means that the advertising starts either from the default_app_on_set_dev_config_complete() function is executed or from the default_app_on_db_init_complete() (it depends if the device has a database to create or not)因此,这是您可以开始实现代码的两个功能,以便首先通过UART获取数据,然后开始广告过程。关于您的第二个问题,没有定期执行的默认函数来更改数据,随着时间的推移更改广告数据的示例使用内核计时器,您可以查看BLE_APP_BAREBAREBONE示例,以获取有关此信息的更多信息。

谢谢mt_dialog

德里希
离线
最后一次露面:3年11个月前
加入:2017-02-10 09:56
你好,

你好,

谢谢回复。我在这方面有很多问题:

1.当我使用app_easy_timer()调用在User_app_init()中启动计时器时,回调函数不会执行。不允许吗?如何在user_app_init()本身中启动计时器?
2.启动定期计时器等同于在回调函数中再次启动计时器,对吗?另外,我将计时器回调延迟作为100ms。可以设置的最低值是1 ms,对吗?
3.当我在UART上工作时,是否允许它在上一个UART RECV回调函数中注册下一个UART接收的UART回调。当我这样做时,我无法获得下一个数据,因为从未打电话给我的回调。正确的方法是什么?

谢谢,
hrishikesh

mt_dialog
离线
最后一次露面:10个月3周前
职员
加入:2015-06-08 11:34
嗨,德里希,

嗨,德里希,

如果以上答案有用,请标记为接受

1)是的,您无法在user_app_init()函数中调用启动计时器,系统将发布gapm_reset,如果有计时器,它将与其他计划的消息一起删除。

2)是的,为了使计时器定期,您应该从先前计时器的处理程序中重置计时器。KE_Timers的最低值为10ms,如果将超时设置为1,则计时器将以其最小值的速度复活。

3)我不确定我会得到这个问题,我使用了UART2_ASYNC示例并调用UART2_READ()以开始新的UART读取事务,该回调是在键入5个字符后始终执行的。

谢谢mt_dialog

德里希
离线
最后一次露面:3年11个月前
加入:2017-02-10 09:56
感谢您的澄清点1

感谢您澄清点1)和2)

再具体一点:
我想通过UART填充以下内容:
1. ADV数据(操作:保存在数组中)
2.扫描响应数据(操作:保存在数组中)
3. GATT数据库一次/char一次(操作:使用KE_MSG_SEND()发送到服务和属性)
为此,我需要一个定期调用的函数,可以通过该功能从主机接收请求以采取一些操作(保存在数组或发送内核消息)并发送响应(反之亦然)
4.完成所有这些后,然后开始广告

因此,我在哪里以及如何做所有这些事情。App_on_ble_powered()还是app_on_system_powered做到这一点的地方?如果是,则两个功能都应包含哪种类型的功能。另外,如果您可以提供这两种功能的用法的示例,那将是很好的。
如果没有,那么完成上述任务的正确方法是什么?

谢谢,
hrishikesh

mt_dialog
离线
最后一次露面:10个月3周前
职员
加入:2015-06-08 11:34
嗨,德里希,

嗨,德里希,

app_on_ble_powered()和app_on_system_popered()是函数,是在SDK5.0.4中的580个活动期间定期调用的函数,这意味着这两个回调都可以在广告中运行多次(这取决于内核已存储的消息,并且必须使用App_on_ble_popered(),以及App_on_system_popered()。您可以通过用户空间中提供的回调附加一些代码。您可以在这两个回调中应用代码,主要区别在于,在App_on_ble_popered()中,您会确定BLE核心处于活动状态,因此在您的情况下,也许App_on_system_popered()更合适。请检查第7.1.3节中的UM-B-051 DA1458X软件平台参考v1.0.pdf,以检查其使用情况。关于如何使用它们的示例,没有特定的过程,只需记住,当设备处于活动状态时,这些功能中的代码将始终运行,并且从这些功能中,您可以在条件下取消睡眠保持设备清醒返回goto_sleep让设备继续使用睡眠模式)。因此,从这些功能中,我想您只要您拥有UART交易,只要提供的广告阵列不完整,只要您拥有UART交易,只要广告字符串uart uart send完整,您就可以填充您的自定义阵列,并且触发广告功能。

谢谢mt_dialog

德里希
离线
最后一次露面:3年11个月前
加入:2017-02-10 09:56
非常感谢您的回答。

非常感谢您的回答。绝对有帮助。

mt_dialog
离线
最后一次露面:10个月3周前
职员
加入:2015-06-08 11:34
嗨,德里希,

嗨,德里希,

如果以上任何答案有帮助,请标记为接受。

谢谢mt_dialog

ERCEI02
离线
最后一次露面:2年2个月前
加入:2019-10-14 09:39
感谢您分享

感谢您分享特征和编码方式。广告全部取决于业务的本质,但是要发送的广告和消息也起着至关重要的作用。我认为我们将不得不雇用一家公司雷电竞下载app从Slack发送短信有所有其他基本要求。数据增强将带来越来越多的客户响应。

pm_dialog
离线
最后一次露面:3周3天前
职员
加入:2018-02-08 11:03
嗨,ercei02,

嗨,ercei02,

感谢您在我们的蓝牙论坛上发布。您能澄清一下您的问题吗?我建议您创建一个新的论坛线程,因为这个线程很旧。

谢谢,pm_dialog