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

嗨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从slack发送短信还有其他基本要求。数据增强将带来越来越多的客户响应。
嗨Ercei02,
感谢您在我们的蓝牙论坛上发帖。你能解释一下你的问题是什么吗?我建议你创建一个新的论坛帖子,因为这个帖子已经很旧了。
谢谢,PM_Dialog