你好,
现在我可以使用ke_send_msg填充广告数据和GATT服务和特征,并处理user_catch_rest_hndl()中的事件。不过,我是用硬编码的方式完成的。
现在,我必须通过通过UART发送相同的数据来做到这一点。我想找到一个合适的地方来做这件事。我发现,一旦控件到达user_app_init(),广告就开始了。我想控制这一点,并开始广告,每当我得到所有所需的数据(广告数据和GATT树)通过UART。正确的做法是什么?
考虑到看门狗和其他东西不受影响。
此外,是否有一个特定的函数,这些功能是通过对话框的方式调用我可以用于填充我的数据。
设备:

嗨dhrishi,
一旦调用.default_operation_adv,设备的发布就开始了,这意味着广告开始从default_app_on_set_dev_config_complete()函数执行或default_app_on_db_init_complete()(这取决于如果设备数据库创建或没有)这是两个函数,您可以开始执行代码以UART然后开始首先获得数据广告程序。关于你的第二个问题,没有默认的函数会定期执行来改变数据,随着时间的推移改变广告数据的例子使用内核计时器,你可以看一下ble_app_barebone的例子来了解更多信息。
由于MT_dialog
你好,
谢谢回复。在这方面,我有很多问题:
1.当我使用app_easy_timer()呼叫中启动user_app_init()中的计时器时,呼叫函数不会被执行。它不允许吗?如何在user_app_init()本身中启动计时器?
2.启动一个周期性定时器等价于在回调函数中再次启动定时器,对吧?此外,我使用定时器回调延迟为100ms。可以设置的最小值是1ms,对吧?
3.正如我在UART工作的那样,它是否允许注册UART回调的下一个UART接收以前的UART RECV回调函数。当我这样做时,我无法获得下一个数据,因为我的回调从未被调用。什么是正确的方法?
谢谢,
hrishikesh.
嗨dhrishi,
如果以上答案是有用的,请标记为接受
1)是的,您无法在User_App_Init()函数中启动一个定时器,系统将发出GAPM_RESET,如果有一个计时器,它将与其他计划邮件一起丢失。
2)是的,为了让你的计时器是周期性的,你应该从前一个计时器经过的处理程序重置计时器。ke_timers的最小值是10ms,如果您将timeout设置为1,那么计时器将以其最小值超时。
3)我不确定我得到的问题,我使用uart2_async的例子和调用uart2_read(),以开始一个新的UART读事务,回调总是在输入5个字符后执行。
由于MT_dialog
谢谢你的澄清点1)和2)
再具体一点:
我想通过UART填充以下内容:
1. ADV数据(操作:保存在数组中)
2.扫描响应数据(动作:以数组形式保存)
3.GATT数据库一次一个服务/字符(Action:使用ke_msg_send()将服务和属性发送到内核)
为此,我需要一个定期调用的函数,通过它,我可以接收来自主机的请求,以执行一些操作(保存在数组中或发送内核消息),并发送响应(反之亦然)
4.完成后完成,然后开始广告
所以,我在哪里以及如何完成所有这些事情。app_on_ble_powered()或app_on_system_powered正确的地方这样做?如果是,则函数中应包含哪种类型的功能。此外,如果您可以提供两种功能的例子,那将是良好的。
如果没有,那么完成上述任务的正确方法是什么?
谢谢,
hrishikesh.
嗨dhrishi,
app_on_ble_powered()和app_on_system_powered()是经常被调用的函数,而不是在SDK5.0.4中的580活动期间只调用一次,这意味着在app_on_ble_powered()和app_on_system_powered()的情况下,这两个回调可以在一个广告事件(这取决于内核已经存储和必须提供的消息)中运行不止一次。您可以通过用户空间中提供的回调附加一些代码。您可以在这两个回调中应用代码,主要的区别在于,在app_on_ble_powered()中,您可以确定BLE核心是活动的,因此在您的情况下,也许app_on_system_powered()更合适。请参阅7.1.3节中的UM-B-051 DA1458x软件平台参考v1.0.pdf以查看它们的使用情况。关于如何使用它们的例子,没有具体的过程,只要记住,这些函数中的代码将始终在设备处于活动状态时运行,并且从这些函数中你可以在某种条件下取消睡眠(返回KEEP_POWERED将保持设备清醒,返回GOTO_SLEEP让设备继续睡眠模式)。从这些功能我假设您可以保持580活着只要你有UART交易,只要提供广告数组不完整,一旦广告字符串UART发送完成可以填充您的自定义数组和触发广告功能。
由于MT_dialog
非常感谢您的回答。这绝对是有帮助的。
嗨dhrishi,
如果上述任何答案有用,请将其标记为已接受。
由于MT_dialog
感谢分享特征和编码方式。广告都取决于业务的性质,但要发送的广告和消息也发挥着重要作用。我想我们将不得不聘请一家公司雷电竞下载app发送短信松弛还有其他基本要求。数据增强将带来越来越多的客户响应。
嗨Ercei02,
感谢您在蓝牙论坛上发布。你能澄清你的问题吗?我建议你创建一个新的论坛线程,因为这个是非常旧的。
谢谢,PM_Dialog