暂时禁用接收BLE数据

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
2个帖子/ 0新
最后一篇
马哈居
离线
最后一次露面:2年2周前
加入:2018-01-29 01:08
暂时禁用接收BLE数据

我有一个程序,我从BLE获得大量字节,然后通过I2C将其发送到另一个连接到对话框芯片的设备

我的程序基于BLE_PERITALAL_APP示例程序

问题是,虽然I2C写入正在发生(并且需要一些时间来完成,因为我编写了大量字节),如果新数据通过BLE进入,则BLE刚刚断开连接

我假设如果新的BLE数据在写入I2C端口时进入,则程序尝试跳转到user_catch_rest_hndl()函数,I2c防止发生,这导致BLE断开连接

是否可以阻止芯片接收任何新的BLE数据,直到所有I2C通信都完成?在我开始I2C通信之前,我想做的是“停止数据接收”,使芯片忽略任何新的输入BLE数据,然后再次“开始BLE数据接收”,然后在完成所有I2C操作之后。

如何才能做到这一点?

关键词:
设备:
mt_dialog.
离线
最后一次露面:2个月3天前
职员
加入:2015-06-08 11:34
嗨马哈茹,

嗨马哈茹,

据我所知,由于I2C活动,您缺少BLE连接事件,但我不完全达到潜在的数据,你的意思是当中央设备发送数据时会断开连接?关于从中央停止incomming的数据,才有没有本地方法,才有这样的方式,才有作为可以通过外围设备通知的流控制信号的特征,并且在发送数据之前应检查这一点。

另请注意,连接事件保持联系,您应该仅安排这些事件,以便不仅要保持连接以获取数据,因此您必须确保设备将能够在连接事件的时间时调度来而不执行I2C事务。为了实现您必须确保I2C交易不会需要那么长时间,并且会让计划程序运行以计划连接事件,因此您的I2C交易应分为可以附加的小部分App_on_system_powered回调或app_on_ble_powered并返回keep_powered,只要有更多的事务来执行,因此设备将通过块执行整个事务件,而不会延迟调度连接事件的调度程序。

谢谢mt_dialog.