关于SDK5.0作为信标的广告

18个员额/ 0个新员额
最后发表
liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
关于SDK5.0作为信标的广告

嗨,对话框中,

我试图使adverstiement像灯塔申请其他蓝牙设备可以监听,这个问题后,我从你的网站链接的家伙,但仍不能捕获的数据包广播与其他蓝牙设备通过扫描广播包。你能帮忙吗?

参考我所做的相同的如下:
http://support.dialog-semiconductor.com/advertisement-complete-callback-..。

选项2(正确的选项)是通过catch rest函数(user_catch_rest_hndl)捕获一个不可连接的广告的结尾。你可以把下面的代码放到函数user_peripheral.c中:

案例GAPM_CMP_EVT:

Struct gapm_cmp_evt const *msg_param = (Struct gapm_cmp_evt const *)(param);
开关(msg_param - >操作)

案例GAPM_ADV_NON_CONN:
user_app_adv_start ();//或任何你想在完成后
打破;

默认值:
打破;
}打破;

设备:
MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

如果调用了catch rest函数的回调函数,可以转到gapm_cmp_evt_handler()并使用断点进行检查。如果调用了它,则在switch语句中检查是否执行了正确的case。出于调试目的,您也可以总是使用第一个选项来检查GAPM_ADV_NON_CONN是否被触发。

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
谢谢你的回复。

谢谢你的回复。然而我正在调试你的代码,然而它在GLOBAL_INT_STOP()中停止;在arch_main.c中,当我运行F10时

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
亲爱的MT_dialog,

亲爱的MT_dialog,

我试图运行您的代码从DA1458x_SDK\5.0.3\项目\target_apps\ble_examples\ble_app_peripheral,但我不能捕捉广播包从其他蓝牙设备。该设备可以从其他蓝牙信标包获取该包。你能帮我运行它,让一些基于ble_app_peripheral的信标广播包运行吗?

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

在你提到的帖子中显示的代码只是捕捉一个非连接广告的结尾(设备正在发布广告,你发出一个停止命令,导致广告停止,你得到一个提示,你的设备停止了广告)。你说你无法从其他设备捕捉到广告包装是什么意思?为了从其他设备获得ble包,你必须成为一个扫描仪,以便嗅探来自其他外设的广告包。

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
我在用蓝牙扫描仪

我使用基于RN4020芯片制作的蓝牙扫描器来捕捉所有广播包中的广告包。我可以看到来自其他芯片RN4020扫描装置的其他信标包,但我看不到来自DA14580的包。

从我的代码中,我刚刚添加了以下更改到DA1458x_SDK\5.0.3\projects\target_apps\ble_examples\ble_app_peripheral项目

选项2(正确的选项)是通过catch rest函数(user_catch_rest_hndl)捕获一个不可连接的广告的结尾。你可以把下面的代码放到函数user_peripheral.c中:

案例GAPM_CMP_EVT:

Struct gapm_cmp_evt const *msg_param = (Struct gapm_cmp_evt const *)(param);
开关(msg_param - >操作)

案例GAPM_ADV_NON_CONN:
user_app_adv_start ();//或任何你想在完成后
打破;

默认值:
打破;
}打破;

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

既然你没有看到任何广告,你也没有得到你的广告已经停止的指示,你能确保你的设备是广告使用智能片段工具或只是确保尝试一个android BLE应用程序吗?

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
嗨,我能看到

你好,我可以从手机上看到广告包,但是我不能用microchip的扫描仪扫描它。但使用相同的工具,它可以扫描运行在同一设备上的Ibeacon示例包。你能帮忙吗?我是否需要将无定向广播的编码改为无连接广播?我该怎么做呢?

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

我不知道你的扫描器能检测到什么样的数据包。如果你想在非连接模式下发布,你可以在SDK的模板项目中使用app_easy_gap_non_connectable_advertise_start()函数。

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
我试过了,但还是不行

我试过了,但还是没多大区别。广播方法和行为与信标示例和DA1458x_SDK\5.0.3\projects\target_apps\ble_examples\ble_app_peripheral的示例有很大区别吗?

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

信标示例使用两种不同的发布模式(取决于软件配置- GAPM_ADV_NON_CONN和GAPM_ADV_UNDIRECT),设备的角色在GAP_PERIPHERAL_SLV中设置,PDU类型为ADV_NONCONN_IND。信标广告也没有扫描响应数据。app_peripheral as是用GAP_PERIPHERAL_SLV中的GAPM_ADV_UNDIRECTED发布的,带有扫描响应数据,使用的PDU类型是ADV_IND。

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
谢谢你的回复,我

谢谢你的回复,我现在试着检查一下。
至于扫描,有没有可能我们只听一个频道,比如我们只扫描37频道?

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

它不可能只检查个别的广告渠道或检索特定的广告渠道号码。

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
谢谢,现在管用了。

谢谢,现在管用了。

另一个问题是关于看门狗的
对于项目“ble_app_barebone”,我已经在“da1458x_config_basic.h”中将看门狗从“#undef CFG_WDOG”更改为“#define CFG_WDOG”。然后我把下面的代码写进"app_task.c",然后我发现它运行了一段时间后,程序停止了,如何解决这个问题?看来看门狗不跑了。你能帮忙吗?再次感谢大家。

//设备配置更新
案例GAPM_SET_DEV_CONFIG:

如果(param - >状态! = GAP_ERR_NO_ERROR)

ASSERT_ERR (0);/ /意想不到的错误

其他的

If (7 == current_role)

#如果DEBUG_LOG
printf_string(“Adv1 \ r \ n \ r \ n”);
uart2_init (UART_BAUDRATE_115K2 3);
# endif
而(1)

#如果DEBUG_LOG
printf_string(“\ r \ n WD T”);
如果(USE_WDOG)

printf_string (" 1 ");
wdg_reload (WATCHDOG_DEFAULT_PERIOD);
wdg_resume ();

如果(DEVELOPMENT_DEBUG)

printf_string(“2”);

printf_string (" \ r \ n ");
uart2_init (UART_BAUDRATE_115K2 3);
# endif

record2 (current_role);
EXECUTE_CALLBACK_VOID (app_on_set_dev_config_complete);

其他的

#如果DEBUG_LOG
printf_string(“Adv2 \ r \ n \ r \ n”);
uart2_init (UART_BAUDRATE_115K2 3);

# endif
record2 (current_role);

ke_timer_set (APP_SWITCH_ROLE_TIMER TASK_APP 10);/ / 10 * 10 ms


打破;

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

我真不明白你到底想干什么。就我所知,程序不打算广告,但它将卡在那while(1)和将总是重载看门狗和打印一些东西。如果程序由于NMI_Handler()(意思是看门狗中断)而停止,那么你可以通过打开内存选项卡并检查地址0x81850找到NMI中断发出的位置,内存窗口中的第七个无符号长整数就是程序计数器。您可以检查这个,以便查看程序在哪里停止。

由于MT_dialog

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
谢谢你!我让它工作起来

谢谢你!我现在让它工作了

liuluan002
离线
最后看到:10个月1个星期前
加入:2015-11-27 14:24
有什么办法吗

有办法通过UART端口进行软件更新吗?怎么做呢?
有任何方法做OTA之间的两个对话框BTLE编程吗?
有没有办法我们仍然使用对话14583的内部闪光部分作为传感器数据记录?

MT_dialog
离线
最后看到:6个月,4个星期前
工作人员
加入:2015-06-08 34
嗨liuluan002,

嗨liuluan002,

当前的SUOTA实现使用SPI Flash或I2C eeprom,对于其他用例没有其他实现。

你的意思是一个da是suota的接收者,而另一个da作为中心并更新第一个da的形象?由于大多数spot中心通常是允许上传图像的电话或其他设备,因此没有实现将SUOTA配置文件作为中心。

除了要上传到da的图像外,你可以使用da的flash来存储数据。信标示例使用spi内存的空间来存储一些配置数据,我没有看到任何理由为什么不能用14583做到这一点。

由于MT_dialog