你好我正在使用Proximity Reporter应用程序.i希望添加扫描数据(例如,数字),这将增加每个广告事件。在DA14580中可能会增加?
有人帮忙吗?!
你好HRG,我会检查一下。请耐心等待几天。
BR JE_DIALOG.
而且还为什么adv&scan_reesp数据处于这样的格式?#define app_scnrsp_data“\ x09 \ xff \ x00 \ x60 \ x52 \ x57 \ x2d \ x42 \ x4c \ x45”??除了制造特定数据字段之外还有任何服务数据字段吗?如果有方法如何访问它?
嗨对话小组我们急切地等待响应。谢谢
Hello HRG,实现计数器的最简单方法是实现计数器。
例如:如果您想要测量具有广告间隔的4个广告活动,则设置为700毫秒。
- 您必须将计时器设置为2152 ms(13ms * 4 + 700ms * 3)。注意:1广告需要大约13毫秒+ 1广告间隔,例如700毫秒。
这可能在很长一段时间内不准确:你想要做什么准确的?
嗨JE_DIALOG谢谢你的回复.Even如果我们使用计时器,我们如何更改扫描数据,因为它被定义为宏,它可以在运行时更改吗?
- 即可在广告期间,我需要更新每个广告活动的扫描响应字段。- 例如 - 在扫描数据上的电源期间,对于13ms的每个adv事件,我需要将扫描数据递增01,02 ...所以扫描响应数据字段将在广告期间宣传动态数据,直到它进入睡觉。
希望你了解我的问题。
嗨HRG,
广告扫描响应数据设置在大多数示例项目的函数app_adv_func()中(template_fh是这个的一个很好的例子)。在广告开始之前运行此功能,并且加载到扫描响应和广告数据的内容将在所有将来的广告中使用,直到您停止广告。该功能可以在App_Template_Proj.c中找到。
因此,诀窍是停止广告,使用您更新的数据(计数器或其他)并重新启动广告,重建App_adv_Func()重建广告数据并重新启动广告。如果您使用两个睡眠模式之一,则可以使用计时器或其中一个睡眠挂钩进行停止广告。推荐后一方法。
制造商特定数据使用ADV_DATA类型0xFF。您可以使用定义的值Gap_ad_type_manu_specific_data而不是0xFF。假设您希望将0xAA的计数器值添加到Scan Esponse String。您必须先提供数据的总长度(包括类型)。这是类型的一个字节,以及数据的一个字节,或者为0x02。接下来,您应该提供0xFF,最后是0xAA的一个字节数据。整个字符串将是\ 0x02 \ 0xFF \ 0xAA
我希望这有意义并解决您的要求。
谢谢你mhvid_dialog的详细回复。是否有任何main(),如adv_start,adv_stop等所有这些函数都被调用??因为存在恰好广告顺序操作的混淆!
而且您所说的值0xAA应该自动增量。但是由于它是一种宏定义的格式,如何在运行时更改值??!
app_adv_start()在app.c.中定义。它使用app_adv_func()来构建它最终发送到GAP堆栈的广告命令。app_adv_start()称为几个位置。它在设备配置完成后第一次调用(app_set_dev_config_complete_func())。当中央断开设备时也调用它。
0xaa不会易惯性。您的申请将不得不。
以下是在App_adv_func()函数中动态更改广告内容的示例。我用ibeacon为例,我正在加载在广告数据字符串中定义的次要密钥:
////////////代码片段开始
///////////代码片段结束
嗨mhv_dialog,
我可以在写入时更改ADV数据memcpy(&cmd-> info.host.addata和数据[0],cmd-> info.host.adv_data_len);所以我可以关闭nvds_support,什么剂量的nvds要做什么?
谢谢,安东尼
为什么来自nvds的dev name和adv数据是可以的,但是nvds_tag_app_ble_scan_resp_data不正常(如果(nvds_get(nvds_tag_app_ble_scan_resp_data,&cmd-> info.host.scan_rsp_data_len,&cmd-> info.host.scan_rsp_data [0])!= nvds_ok))nvds.c中的扫描响应数据长度是对的,任何其他原因?
嗨Antony42,
NVDS是Sysram中的特殊区域,具有特定结构,可以通过OTP报头或使用指定的程序中的指定代码填充。如果成功读取来自NVDS的程序数据,它会从其他值获取来自默认值的NVDS ears的adv数据。
if(nvds_get(nvds_tag_app_ble_adv_data,&cmd-> info.host.adv_data_len,&cmd-> info.host.addata [0])!= nvds_ok)
谢谢mt_dialog.
嗨mt_dialog,
非常感谢您的回复,ADV数据来自NVDS,但扫描响应数据始终来自默认宏,.nvds_tag_app_ble_scan_resp_data =“\ x09 \ xff \ x00 \ x60 \ x52 \ x57 \ x2d \ x42 \ x4c \ x45”,.can_resp_data_tag_len = 10,// scan_resp_data那么可能导致nvds_get失败了什么?
谢谢,安东尼。
我们会看看,并在我们有新闻时立即通知您。
似乎在从NVDS获取扫描响应数据的过程中存在错误,这将在未来的SDK发布中修复。
还有一个怀疑从深睡眠中醒来是一个类似于Push Button(如在Proximity_reporter_FH)的中断吗?无论如何在狭窄的时间后睡觉了?
Hello HRG,这里有两个好文件,可以告诉您如何在同步(BLE定时器)和异步(EXT中断)模式下使用睡眠模式。
睡眠模式配置
http://support.dialog-seminile.com/system/files/restricted/um-b-006.pdf.
http://support.dialog-seminiondiondiondiond.com/resource/b-026-external-wake-mechanisms.
谢谢你je_dialog !!另外,请回复这些问题
是否有任何main(),如adv_start,adv_stop等所有这些函数都被调用??因为存在恰好广告顺序操作的混淆!
谢谢
请看我上面的回复。
谢谢你mhv_dialog !!
嗨对话小组
我修改了近距离应用程序,以在广告领域进行动态制造数据,并且在SRAM中的调试模式下工作正常。该应用程序将宣传一次并进入睡眠,当我按下按钮K1时,它将再次浏览一次递增的数据并睡觉。这在调试模式下工作正常。现在我在OTP中刻录了同一节目。出现了问题!它是广告良好的。但是制造数据在K1的唤醒时不会递增!!那么这里的问题是什么!??请你慢慢解释为什么这样的问题出现了???
对话团队为什么到目前为止没有回复!?
HRG,您使用了什么睡眠模式?请注意,如果您使用深度睡眠,所有SRAM内容都丢失:因此您在SRAM中作为柜台保持的任何东西都将被剥离。SRAM从睡眠中从OTP重新装入OTP。
如果使用延长睡眠,SRAM保持活力。
谢谢你的回复je_dialog。你是对的 !!我使用了深度睡眠模式(默认情况下,在Proximity报道中,它是深度睡眠模式)。!我也烧掉了OTP!在OTP标题期间,我启用了JTAG.SO,我们可以通过Spota或任何其他方式将其更改为扩展睡眠模式吗?
你好HRG,那不是那么直的......之后实施Spota是不可能的,因为需要包括在项目构建和你的Arleady Burnt OTP中。最快的方法将与另一个设备(在电路板上交换)交换,我建议将所有内容保存在开发模式中,直到您完全确定您需要您需要的功能。或者,您可以使用闪存板上的基本开发套件,您可以使用闪存,永久使用闪存(并且只为OTP刻录Bootlader)。
对话小组,
我也可以用你的帮助。我想做同样的事情HRG描述了,但是我正在使用最新版本的SDK,V5.0.3。
我也在使用Proximity Reporter应用程序。
我无法在深睡眠中更新制造商的特定数据,也不是调试模式。我每一次获得默认制造商特定数据'dlg-ble'。
将极大地欣赏到这一点的更新。
你好JD @ Exp.-Eng,
当您处于开发模式并且您的项目在深睡眠中配置580时,580实际上并没有关闭其Sysram,因此即使您还没有在保留存储区域中保存您的值,您应该能够看到您的值更改扫描响应字符串,如果您实际上更改它们。使用以下命令,在580个示例中的大多数示例中,扫描响应数据通过NVDS加载:
app_easy_gap_adv_read_from_nvds(&cmd-> info.host.scan_rsp_data_len,&cmd-> info.host.scan_rsp_data [0],scan_rsp_data_len,scan_rsp_data_len + 1,nvds_tag_app_ble_scan_resp_data);在app_easy_gap_undirected_advertise_start_create_msg()函数中。请查看此函数并替换命令使用您的字符串操作功能。
有人帮忙吗?!
你好HRG,我会检查一下。请耐心等待几天。
BR JE_DIALOG.
而且还为什么adv&scan_reesp数据处于这样的格式?#define app_scnrsp_data“\ x09 \ xff \ x00 \ x60 \ x52 \ x57 \ x2d \ x42 \ x4c \ x45”??
除了制造特定数据字段之外还有任何服务数据字段吗?如果有方法如何访问它?
嗨对话小组我们急切地等待响应。
谢谢
Hello HRG,实现计数器的最简单方法是实现计数器。
例如:如果您想要测量具有广告间隔的4个广告活动,则设置为700毫秒。
- 您必须将计时器设置为2152 ms(13ms * 4 + 700ms * 3)。
注意:1广告需要大约13毫秒+ 1广告间隔,例如700毫秒。
这可能在很长一段时间内不准确:你想要做什么准确的?
BR JE_DIALOG.
嗨JE_DIALOG谢谢你的回复.Even如果我们使用计时器,我们如何更改扫描数据,因为它被定义为宏,它可以在运行时更改吗?
- 即可在广告期间,我需要更新每个广告活动的扫描响应字段。
- 例如 - 在扫描数据上的电源期间,对于13ms的每个adv事件,我需要将扫描数据递增01,02 ...所以扫描响应数据字段将在广告期间宣传动态数据,直到它进入睡觉。
希望你了解我的问题。
嗨HRG,
广告扫描响应数据设置在大多数示例项目的函数app_adv_func()中(template_fh是这个的一个很好的例子)。在广告开始之前运行此功能,并且加载到扫描响应和广告数据的内容将在所有将来的广告中使用,直到您停止广告。该功能可以在App_Template_Proj.c中找到。
因此,诀窍是停止广告,使用您更新的数据(计数器或其他)并重新启动广告,重建App_adv_Func()重建广告数据并重新启动广告。如果您使用两个睡眠模式之一,则可以使用计时器或其中一个睡眠挂钩进行停止广告。推荐后一方法。
制造商特定数据使用ADV_DATA类型0xFF。您可以使用定义的值Gap_ad_type_manu_specific_data而不是0xFF。假设您希望将0xAA的计数器值添加到Scan Esponse String。您必须先提供数据的总长度(包括类型)。这是类型的一个字节,以及数据的一个字节,或者为0x02。接下来,您应该提供0xFF,最后是0xAA的一个字节数据。整个字符串将是\ 0x02 \ 0xFF \ 0xAA
我希望这有意义并解决您的要求。
谢谢你mhvid_dialog的详细回复。
是否有任何main(),如adv_start,adv_stop等所有这些函数都被调用??因为存在恰好广告顺序操作的混淆!
而且您所说的值0xAA应该自动增量。但是由于它是一种宏定义的格式,如何在运行时更改值??!
嗨HRG,
app_adv_start()在app.c.中定义。它使用app_adv_func()来构建它最终发送到GAP堆栈的广告命令。app_adv_start()称为几个位置。它在设备配置完成后第一次调用(app_set_dev_config_complete_func())。当中央断开设备时也调用它。
0xaa不会易惯性。您的申请将不得不。
以下是在App_adv_func()函数中动态更改广告内容的示例。我用ibeacon为例,我正在加载在广告数据字符串中定义的次要密钥:
////////////代码片段开始
///////////代码片段结束
嗨mhv_dialog,
我可以在写入时更改ADV数据
memcpy(&cmd-> info.host.addata和数据[0],cmd-> info.host.adv_data_len);
所以我可以关闭nvds_support,
什么剂量的nvds要做什么?
谢谢,
安东尼
嗨mhv_dialog,
为什么来自nvds的dev name和adv数据是可以的,
但是nvds_tag_app_ble_scan_resp_data不正常
(如果(nvds_get(nvds_tag_app_ble_scan_resp_data,&cmd-> info.host.scan_rsp_data_len,
&cmd-> info.host.scan_rsp_data [0])!= nvds_ok))
nvds.c中的扫描响应数据长度是对的,任何其他原因?
谢谢,
安东尼
嗨Antony42,
NVDS是Sysram中的特殊区域,具有特定结构,可以通过OTP报头或使用指定的程序中的指定代码填充。如果成功读取来自NVDS的程序数据,它会从其他值获取来自默认值的NVDS ears的adv数据。
if(nvds_get(nvds_tag_app_ble_adv_data,&cmd-> info.host.adv_data_len,
&cmd-> info.host.addata [0])!= nvds_ok)
谢谢mt_dialog.
嗨mt_dialog,
非常感谢您的回复,
ADV数据来自NVDS,但扫描响应数据始终来自默认宏,
.nvds_tag_app_ble_scan_resp_data =“\ x09 \ xff \ x00 \ x60 \ x52 \ x57 \ x2d \ x42 \ x4c \ x45”,
.can_resp_data_tag_len = 10,// scan_resp_data
那么可能导致nvds_get失败了什么?
谢谢,
安东尼。
嗨Antony42,
我们会看看,并在我们有新闻时立即通知您。
谢谢mt_dialog.
嗨Antony42,
似乎在从NVDS获取扫描响应数据的过程中存在错误,这将在未来的SDK发布中修复。
谢谢mt_dialog.
还有一个怀疑从深睡眠中醒来是一个类似于Push Button(如在Proximity_reporter_FH)的中断吗?无论如何在狭窄的时间后睡觉了?
Hello HRG,这里有两个好文件,可以告诉您如何在同步(BLE定时器)和异步(EXT中断)模式下使用睡眠模式。
睡眠模式配置
http://support.dialog-seminile.com/system/files/restricted/um-b-006.pdf.
http://support.dialog-seminiondiondiondiond.com/resource/b-026-external-wake-mechanisms.
BR JE_DIALOG.
谢谢你je_dialog !!
另外,请回复这些问题
是否有任何main(),如adv_start,adv_stop等所有这些函数都被调用??因为存在恰好广告顺序操作的混淆!
而且您所说的值0xAA应该自动增量。但是由于它是一种宏定义的格式,如何在运行时更改值??!
谢谢
嗨HRG,
请看我上面的回复。
谢谢你mhv_dialog !!
嗨对话小组
我修改了近距离应用程序,以在广告领域进行动态制造数据,并且在SRAM中的调试模式下工作正常。该应用程序将宣传一次并进入睡眠,当我按下按钮K1时,它将再次浏览一次递增的数据并睡觉。这在调试模式下工作正常。现在我在OTP中刻录了同一节目。出现了问题!
它是广告良好的。但是制造数据在K1的唤醒时不会递增!!那么这里的问题是什么!??
请你慢慢解释为什么这样的问题出现了???
对话团队为什么到目前为止没有回复!?
HRG,您使用了什么睡眠模式?请注意,如果您使用深度睡眠,所有SRAM内容都丢失:因此您在SRAM中作为柜台保持的任何东西都将被剥离。SRAM从睡眠中从OTP重新装入OTP。
如果使用延长睡眠,SRAM保持活力。
BR JE_DIALOG.
谢谢你的回复je_dialog。
你是对的 !!我使用了深度睡眠模式(默认情况下,在Proximity报道中,它是深度睡眠模式)。!我也烧掉了OTP!在OTP标题期间,我启用了JTAG.SO,我们可以通过Spota或任何其他方式将其更改为扩展睡眠模式吗?
你好HRG,那不是那么直的......之后实施Spota是不可能的,因为需要包括在项目构建和你的Arleady Burnt OTP中。最快的方法将与另一个设备(在电路板上交换)交换,我建议将所有内容保存在开发模式中,直到您完全确定您需要您需要的功能。或者,您可以使用闪存板上的基本开发套件,您可以使用闪存,永久使用闪存(并且只为OTP刻录Bootlader)。
BR JE_DIALOG.
对话小组,
我也可以用你的帮助。我想做同样的事情HRG描述了,但是我正在使用最新版本的SDK,V5.0.3。
我也在使用Proximity Reporter应用程序。
我无法在深睡眠中更新制造商的特定数据,也不是调试模式。我每一次获得默认制造商特定数据'dlg-ble'。
将极大地欣赏到这一点的更新。
你好JD @ Exp.-Eng,
当您处于开发模式并且您的项目在深睡眠中配置580时,580实际上并没有关闭其Sysram,因此即使您还没有在保留存储区域中保存您的值,您应该能够看到您的值更改扫描响应字符串,如果您实际上更改它们。使用以下命令,在580个示例中的大多数示例中,扫描响应数据通过NVDS加载:
app_easy_gap_adv_read_from_nvds(&cmd-> info.host.scan_rsp_data_len,&cmd-> info.host.scan_rsp_data [0],scan_rsp_data_len,scan_rsp_data_len + 1,
nvds_tag_app_ble_scan_resp_data);在app_easy_gap_undirected_advertise_start_create_msg()函数中。请查看此函数并替换命令
使用您的字符串操作功能。
谢谢mt_dialog.