你好,我们使用最后一个版本SDK 5.0.4来创建具有特定功能的新BLE项目。要求是通过特定的制造数据传输预定义的广告消息。
问题:有没有办法计算传输的广告消息?
或者
是否有一种方式/功能独立于当前参数(广告时段和频道)来传输一个广告消息3,5或100次?
感谢您提前答案。
嗨舞厅,
没有功能可以允许您EMMIT指定的广告消息数,但您可以计算设备互联的广告消息。在信标参考设计中存在这种操作的实现。请检查app_asynch_trm()函数有一个读取最后一个ble事件的实现,如果这是ble_evt_end,则意味着揭示了广告消息。这也在计算连接间隔,因此在计算时,您必须确保您的设备也处于广告状态。您可以在App_On_ble_powered回调中实现SDK5中的函数。
谢谢mt_dialog.
你好mt_dialog,
谢谢你的快速答案。我看到了灯塔项目,我成功地在我的项目中实现了这个想法。我正常工作。但我有几个问题。
1.为什么函数App_Asynch_trm()中的返回值只有goto_sleep?当广告操作停止时,它是否更好或更好地返回值_power?
2.信标参考设计支持连接模式和特定配置文件。可以更新某些配置参数。为什么在项目中(在函数app_asynch_trm()中)没有验证当前状态是“广告状态”,就像您在答案中的推荐一样?
3.为什么在函数app_asynch_trm()中的第一个传输之后存在下一个代码?if(app_advertise_mode == gapm_adv_non_conn)ble_advtim_set(500);
1)这是用户应该在他的应用程序中处理的东西,无论是否继续睡眠过程,还是不要睡觉并继续执行事件的调度。如果您随时返回Keep_Power,您无法在广告间隔之间睡眠。
2)灯架将被错误地衡量作为广告某些连接事件,但我想对于特定参考设计并不重要,因为计数器在断开连接并再次开始宣传时将计数器设置为零。
3)您提到的代码减少了广告期间不同通道上每个传输的间隔,因为设备是它广告非可连接数据包的信标,因此它不等待每个广告的接收,因此我们没有接收我们可以减少仅执行发送所需的时隙。这样做是为了减少设备的功耗。
谢谢你的快速答案。关于你的最后一个答案。如何定义该值500?蓝牙标准定义了625US的TX和RX时隙。顺便说一下,如果函数app_last_rwble_evt_get()返回BLE事件的末尾(一个BLE事件最多包含最多3个传输),则在第一个项目之后的所有BLE事件将更改广告间隔,这在文档中无法看到UM-B-019_DA14580_Beacon_Reference_Application_v1.2.pdf。
该值为500us,它不是广告间隔的值。对于每个广告事件,设备在3个不同的通道中广告,该值在一个广告事件中定义不同广告信道上的每个连续RF在不同广告信道上的间隔之间。我没有得到最后一个问题,为什么在第一个的所有BLE事件中将改变间隔?
Thansk mt_dialog.
嗨舞厅,
没有功能可以允许您EMMIT指定的广告消息数,但您可以计算设备互联的广告消息。在信标参考设计中存在这种操作的实现。请检查app_asynch_trm()函数有一个读取最后一个ble事件的实现,如果这是ble_evt_end,则意味着揭示了广告消息。这也在计算连接间隔,因此在计算时,您必须确保您的设备也处于广告状态。您可以在App_On_ble_powered回调中实现SDK5中的函数。
谢谢mt_dialog.
你好mt_dialog,
谢谢你的快速答案。我看到了灯塔项目,我成功地在我的项目中实现了这个想法。我正常工作。但我有几个问题。
1.为什么函数App_Asynch_trm()中的返回值只有goto_sleep?当广告操作停止时,它是否更好或更好地返回值_power?
2.信标参考设计支持连接模式和特定配置文件。可以更新某些配置参数。为什么在项目中(在函数app_asynch_trm()中)没有验证当前状态是“广告状态”,就像您在答案中的推荐一样?
3.为什么在函数app_asynch_trm()中的第一个传输之后存在下一个代码?
if(app_advertise_mode == gapm_adv_non_conn)
ble_advtim_set(500);
嗨舞厅,
1)这是用户应该在他的应用程序中处理的东西,无论是否继续睡眠过程,还是不要睡觉并继续执行事件的调度。如果您随时返回Keep_Power,您无法在广告间隔之间睡眠。
2)灯架将被错误地衡量作为广告某些连接事件,但我想对于特定参考设计并不重要,因为计数器在断开连接并再次开始宣传时将计数器设置为零。
3)您提到的代码减少了广告期间不同通道上每个传输的间隔,因为设备是它广告非可连接数据包的信标,因此它不等待每个广告的接收,因此我们没有接收我们可以减少仅执行发送所需的时隙。这样做是为了减少设备的功耗。
谢谢mt_dialog.
谢谢你的快速答案。
关于你的最后一个答案。如何定义该值500?蓝牙标准定义了625US的TX和RX时隙。顺便说一下,如果函数app_last_rwble_evt_get()返回BLE事件的末尾(一个BLE事件最多包含最多3个传输),则在第一个项目之后的所有BLE事件将更改广告间隔,这在文档中无法看到UM-B-019_DA14580_Beacon_Reference_Application_v1.2.pdf。
嗨舞厅,
该值为500us,它不是广告间隔的值。对于每个广告事件,设备在3个不同的通道中广告,该值在一个广告事件中定义不同广告信道上的每个连续RF在不同广告信道上的间隔之间。我没有得到最后一个问题,为什么在第一个的所有BLE事件中将改变间隔?
Thansk mt_dialog.