嗨对话框,
我正在尝试使Beacon应用程序的忠告权如其他蓝牙设备可以倾听空中,这是我遵循您网站链接的那个人的问题,但仍然无法捕捉到其他蓝牙设备的广播数据包扫描广播包。能否请你帮忙?
引用我所做的与以下内容相同:
http://support.dialog-semicondiondiondum/aadvertisement-complete-callback -...
2-选项(正确的一个)是通过catch rest函数(user\u catch\u rest\u hndl)捕捉不可连接广告的结尾。您只需将以下代码放入user\u peripheral.c函数中即可:
案例GAPM_CMP_EVT:
{
结构gapm\u cmp\u evt const*msg\u param=(结构gapm\u cmp\u evt const*)(param);
开关(MSG_PARAM->操作)
{
案例GAPM\ U ADV\ U NON\ U CONN:
user_app_adv_start();//完成后或任何您想要的内容
中断;
默认:
中断;
} 休息;
}
设备:
你好,刘銮002,
您可以转到GapM_CMP_EVT_HANDLER()并在接收捕获REST功能的回调函数时检查断点。如果执行正确的案例,则在切换语句中调用它。您可以始终使用第一个选项,以便调试目的,以检查GAPM_ADV_NON_CONN是否被触发。
谢谢mt_dialog.
感谢你的回复。但是我正在调试代码,但它在global_int_stop()中停止;在arch_main.cn时,我运行f10步骤
亲爱的mt_dialog,
我正在尝试从DA1458x\u SDK\5.0.3\projects\target\u apps\ble\u examples\ble\u app\u peripheral运行您的代码,但无法从其他蓝牙设备捕获广播包。此设备可以从其他蓝牙信标包中获取包。你能帮我运行它来运行一些基于ble\u app\u外设的信标广播包吗?
你好,刘銮002,
您在帖子中提到的代码只是为了捕捉不可连接广告的结尾(设备正在广告,您发出了一个stop命令,导致广告停止,并且您的应用程序收到了设备停止广告的指示)。你说你不能从另一台设备上截获广告包是什么意思?为了从其他设备获取可复制的软件包,你必须是一个扫描器,以便从其他外设截取广告软件包。
谢谢mt_dialog.
我正在使用我基于芯片RN4020制作的蓝牙扫描器从所有的广播包中捕捉所有的广告包。我可以看到其他带有芯片RN4020扫描的设备的信标包,但是我看不到DA14580的信标包。
从我的代码中,我刚刚添加了Da1458x_sdk \ 5.0.3 \ projects \ target_apps \ ble_examples \ ble_app_periasieral的项目的以下更改
2-选项(正确的一个)是通过catch rest函数(user\u catch\u rest\u hndl)捕捉不可连接广告的结尾。您只需将以下代码放入user\u peripheral.c函数中即可:
案例GAPM_CMP_EVT:
{
结构gapm\u cmp\u evt const*msg\u param=(结构gapm\u cmp\u evt const*)(param);
开关(MSG_PARAM->操作)
{
案例GAPM\ U ADV\ U NON\ U CONN:
user_app_adv_start();//完成后或任何您想要的内容
中断;
默认:
中断;
} 休息;
}
你好,刘銮002,
由于您没有看到任何广告,而且您没有得到您的广告已停止的指示,可以确保您的设备通过使用Smart Spetpets工具或只是为了确保尝试Android BLE应用程序进行广告?
谢谢mt_dialog.
嗨,我可以从手机看到广告包,但我不能使用mircochip的扫描仪来扫描它。但是使用相同的工具,它可以从同一设备中运行的IBeAcon示例扫描包。你能帮忙吗?是否需要将代码从无连接的广播更改为非连接的广播?我怎么能做到?
你好,刘銮002,
我不知道你的扫描仪检测到什么样的数据包。如果您想以不可连接模式播发,可以使用SDK模板项目中的app\u easy\u gap\u non\u connectable\u advertive\u start()函数来实现。
谢谢mt_dialog.
我试过,但仍然没有那么差异。来自信标的广播方法和行为是否有很多来自信标示例和da1458x_sdk \ 5.0.3 \ projects \ target_apps \ ble_examples \ ble_app_perifal的示例?
你好,刘銮002,
信标示例使用两种不同的广告模式(取决于软件配置 - Gapm_adv_non_conn和GapM_Adv_undirect),并且设备的角色在Gap_peripheral_slv中设置pdu类型是adv_nonconn_ind。也是Beacon广告没有扫描响应数据。App_Peripheral AS在Gap_Peripheral_SLV中使用GAPM_ADV_UNDICHICED,具有扫描响应数据,PDU类型使用是ADV_IND。
谢谢mt_dialog.
谢谢你的回复,我现在试着检查一下。
对于扫描,我们是否有可能只收听一个频道,例如我们只扫描通道37?
你好,刘銮002,
它不可能只检查单个广告频道或检索特定的广告频道号码。。
谢谢mt_dialog.
谢谢,现在可以了。
另一个问题是关于看门狗的
对于项目“BLE_APP_BAREBONE”,我已将WatchDog从“#undef cfg_wdog”更改为“da1458x_config_basic.h”中的“#define cfg_wdog”。然后我将以下代码写入“app_task.c”,然后我发现它在运行后一段时间后,程序停止,如何解决这个问题?看起来看门狗没有运行。能否请你帮忙?再一次非常感谢你。
//设备配置已更新
案例GAPM\u SET\u DEV\u CONFIG:
{
if(param-> status!= gap_err_no_error)
{
assert_err(0);// 意外的错误
}
别的
{
if(7==当前角色)
{
#if debug_log.
printf_string(“\ r \ n adv1 \ r \ n”);
UART2_INIT(UART_BAUDRATE_115K2,3);
#万一
而(1)
{
#if debug_log.
printf_字符串(“\r\n WD T”);
如果(USE_WDOG)
{
打印字符串(“1”);
wdg\U重新加载(看门狗\U默认\U周期);
wdg_resume();
}
if(development_debug)
{
printf_string(“2”);
}
printf_string(“\ r \ n”);
UART2_INIT(UART_BAUDRATE_115K2,3);
#万一
}
Record2(Current_role);
Execute_callback_void(app_on_set_dev_config_complete);
}
别的
{
#if debug_log.
printf_string(“\ r \ n adv2 \ r \ n”);
UART2_INIT(UART_BAUDRATE_115K2,3);
#万一
Record2(Current_role);
}
ke_timer_set(app_switch_role_timer,task_app,10);// 10 * 10ms
}
}
中断;
你好,刘銮002,
我真的不明白你想做什么。据我所知,该程序是不会广告,但它会停留在这一点,而(1)将始终重新加载看门狗和打印一些东西。如果程序由于NMI\u Handler()(意味着看门狗中断)而停止,那么您可以通过打开内存选项卡并在地址0x81850处进行检查来找到发出NMI中断的位置,内存窗口中的第七个无符号长整数是您的程序计数器。您可以检查此项以查看程序停止的位置。
谢谢mt_dialog.
非常感谢。我现在就让它工作
是否有任何方法可以通过UART端口进行软件更新?怎么做?
有没有办法通过编程实现两个对话框之间的OTA?
是否有任何方式我们仍然使用对话框14583的内部闪存的一部分作为传感器数据记录?
你好,刘銮002,
当前的SUOTA实现使用SPI闪存或i2ceeprom,没有其他实现用于其他用例。
你的意思是一个da作为索塔接收器,另一个da作为中心操作并更新第一个da的图像?由于大多数spota central都是允许上传图像的手机或其他设备,因此没有将SUOTA配置文件实现为中心。
您可以使用DA的Flash来存储数据除了将上传到DA的图像。信标示例使用SPI内存的空间来存储一些配置数据,我不会看到任何原因为什么不能够用14583执行此操作。
谢谢mt_dialog.