大家好,
我正在研究DA14583睡眠配置。
对于我的自定义代码开发,我使用了BLE_APP_PERITITAL SDK示例,并根据我的要求进行了必要的更改。没有睡眠配置和持续广告,我的功能是合理的。
我已将设备配置为延长睡眠模式,并使用传感器引脚信号低中断进行唤醒。为此,我遵循了ble_app_睡眠模式SDK示例进行睡眠配置。
在广告期间,我以延长睡眠模式发送设备。(即,在函数user_app_adv_start())中,使用传感器引脚低检测唤醒,然后再次开始广告。
详情如下,
1)广告间隔是2SEC。
2)#define app_param_update_request_to(50)
/ *广告数据更新计时器* /
#define app_adv_data_update_to(50)
要求,
-我必须连接到设备并分配一些设置。
- 我想将控制数据包发送到另一个设备(几乎我有50个我需要发送到另一个设备的数据包)。我正在使用更新制造商函数来执行此操作。
在睡眠模式之前在代码中结合,我使用了持续的设备广告,我可以通过制作慢的广告间隔发送所有数据包。
但现在我已经睡眠并使用中断逻辑变化唤醒回电话。使用上述详细信息配置,我试图发送数据,但只发送1个数据包,并将其发送到另一个设备,并将其粘在广告时段。我无法将其他数据包到设备,所以请帮助我如何在设备从睡眠中唤醒时,如何实现这50个数据包。
请尽早帮助我。
感谢致敬
Rohit R.
设备:
嗨rohit,
你的意思是50包?请澄清它并提供BLE嗅探器捕获,以便我们能够理解空中发生的事情。您是否可以检查设备是否已被遵循并提供SmartSnippets Toolbox的电源分布器的屏幕截图?
您提到才会在使用扩展睡眠模式时发生此问题。您是否使用任何外围块(I2C,SPI EC)?如果是,则所有外围域都会在任何睡眠模式中关闭。
谢谢,PM_DIALOG.
嗨pm_dialog,
50个数据包是指我向另一个设备发送一个数据包,该数据包包含其他设备的BDA,而它的控制值除此以外。[例如在Mnf_data_update()函数中,我发送 - “80eaca0101017f”数据包到另一个设备]。
并且,是的,我使用i2c,计时器的外围设备块,我知道,外围设备不适用于睡眠,我知道我已经管理的一部分。
我告诉睡眠配置我在我的自定义代码中引用了BLE_APP_SLEEPMODE示例,没有问题。
我的问题是从睡眠唤醒后如何将数据包发送到另一个设备?当我连接到设备时,如何保持清醒?(意思是我想要当设备POR完成时应该保持清醒一段时间并睡觉,除非直到有中断) -我在等待这个回复。
感谢您的理解
Rohit R.
嗨pm_dialog,
关于上一个问题的任何更新?
感谢致敬
Rohit R.
嗨rohit,
>>>我的问题是从睡眠唤醒后如何将数据包发送到另一个设备?
你能澄清你想要完成的事情吗?它是可连接的,还是不可连接的应用程序?您可以将数据放入广告或扫描响应数据,或通过向对等设备的通知/指示发送它们。
>>>在连接设备时如何保持清醒?
如果您使用的任何睡眠配置设置,则设备将通过连接间隔之间的BLE定时器自动唤醒。如果没有使用睡眠模式,则设备将始终唤醒。
>>>意味着我想要当设备POR完成时应该保持清醒一段时间并睡觉,除非直到有中断
当芯片广告或连接时?
谢谢,PM_DIALOG.
嗨pm_dialog,
谢谢你的回应,
>>你能澄清你想要完成的事情吗?它是可连接的,还是不可连接的应用程序?您可以将数据放入广告或扫描响应数据,或通过向对等设备的通知/指示发送它们。
- 我的设备是一种基于传感器的光控制装置,该装置是电池供电,应使用最小可能的功耗。我的设备应该是连接基础,它应该通过广告数据包发送数据。我想通过一个特征连接和分配一些设置,并使用mnf_data_update()将数据(发送数据包发送到另一个设备)。
>>如果您使用的是任何睡眠配置设置,设备将通过连接间隔之间的BLE定时器自动唤醒。如果没有使用睡眠模式,则设备将始终唤醒。
- i引用BLE_APP_SLEEPMODE()示例以获取睡眠配置。在广告user_app_adv_start()函数期间名为arch_set_extended_sleep()。并使用传感器引脚信号唤醒低中断检测并启动广告
>>>意味着我想要当设备POR完成时应该保持清醒一段时间并睡觉,除非在芯片广告或连接时存在中断,否则
- 当Por完成时保持醒来几秒钟,然后去睡觉。如果用户尝试连接,则保持清醒并保持唤醒状态,除非设备断开从应用程序的连接。而且它也应该唤醒中断(传感器引脚信号低中断检测并启动广告)发送所有数据包,并再次重新返回睡眠状态。
感谢致敬
Rohit R.
嗨pm_dialog,
对我以前的问题有任何更新。
感谢致敬
Rohit R.
嗨rohit,
在所有SDK示例中,设备将默认启动adverting。如果芯片在睡眠或活动模式下运行,则由用户取决于用户。如果在睡眠模式下配置,则它将在广告或连接间隔之间睡眠,并且它将通过BLE定时器唤醒。
你提到说:当Por完成时,保持醒来几秒钟,然后去睡觉。
你的意思是该设备将在不睡觉的情况下开始广告一段时间吗?如果是,则应更改app_default_sleep_mode变量。当它进入睡眠时,你的意思是你想停止广告并进入延长的睡眠模式吗?
谢谢,PM_DIALOG.
嗨pm_dialog,
请首先尝试了解我的申请,然后您可以更好地帮助我,
我对我的设备的应用程序:我希望BLE基于外围的应用程序启用了睡眠模式。我的设备是一种基于事件的传感器主机,其中传感器以这样的方式编程,即它中断(此中断除了事件中而不是事件),只要有一些可用于MCU的数据即可。
请注意,传感器是基于I2C的。
只要MCU中断,它应该从睡眠中唤醒并从传感器中检查I2C上的任何数据。如果是,则通过广告发送控制数据包。
这些广告包由范围(网络)内的节点收集,并分别作出反应。我还必须向用户提供连接设施,其中用户可以更改传感器参数/读取设备状态,这是由用户通过在连接模式下交换特征数据来完成的。
现在正如我之前告诉我的服务器主机就是电池,它必须使用最少的功耗,因此我正在使用睡眠模式。此外,我知道在睡眠中,所有的外围都会关闭。
现在,对于此应用程序设计,我提到了“BLE_APP_SLEEPMODE”示例进行睡眠和唤醒中断。我的应用程序我在广告和唤醒中,在中断时将设备设置在睡眠状态。唤醒后,我再次启用我的外围设备(我在项目中使用的i2c和timer)。
简而言之,我的设备应该如下所述,
1)在几秒钟之后(例15SEC或30SEC)的电源UPSTART通告后,然后停止广告并在睡眠模式下发送设备。
2)现在设备只唤醒传感器中断时,
3)如果MCU被中断,请唤醒,然后检查I2C数据并再次启动广告几秒钟(15至30秒)。如果I2C数据有效更新广告数据包中的用户字节,则在此处进行广告。
4)现在用户可以随时随地连接到设备。此外,如果建立连接,那么设备应保留在唤醒状态,直至断开连接。
5) 如果没有连接请求,则进入睡眠状态(延长睡眠意味着停止广告)
6)如果没有中断,那么设备应始终在睡眠状态(没有广告)。
但是,我面临以下问题,所以我要求您帮助我诊断这些问题并修复它们。
1)当我在广告期间在扩展睡眠模式下设置设备时(如我使用DA14583),我无法连接到设备。
- 为此,我的问题是如何获得最长时间才能将我的应用连接到设备?
2) 在唤醒之后,我想发送广告字符串中的控制节点数据包。我只能发送1个数据包,但不能发送所有数据包(正如我在之前的帖子中解释的那样)
- 为此,我的问题是,在唤醒后我如何在一次拍摄中发送我的所有节点报文,并在完成数据包设备后应该再次延长睡眠?
感谢致敬
Rohit R.
嗨rohit,
谢谢,PM_DIALOG.