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

18个职位/0个新职位
最后一篇文章
六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
关于用SDK5.0作为信标的广告

嗨,对话,

我正在尝试为其他Bluetooth设备制作一个类似于信标的应用程序来收听广播,这个问题是我跟踪了你网站上链接的家伙,但是仍然无法通过扫描广播包来捕获其他Bluetooth设备的广播包。你能帮忙吗?

我所做的参考如下:
http://support.dialog.com/advancement complete callback-。。。

2-选项(正确的一个)是通过catch rest函数(user\u catch\u rest\u hndl)捕捉不可连接广告的结尾。您只需将以下代码放入user\u peripheral.c函数中即可:

案例GAPM\U CMP\U EVT:
{
结构gapm\u cmp\u evt const*msg\u param=(结构gapm\u cmp\u evt const*)(param);
开关(消息参数->操作)
{
案例GAPM\ U ADV\ U NON\ U CONN:
user_app_adv_start();//或完成后想要的任何东西
中断;

违约:
中断;
}中断;
}

设备:
MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

您可以转到gapm\u cmp\u evt\u handler()并使用断点检查是否调用了catch rest函数的回调函数。如果调用了它,请检查switch语句是否执行了正确的大小写。出于调试目的,您也可以始终使用第一个选项来检查是否触发了GAPM\u ADV\u NON\u CONN。

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
谢谢你的回复。

谢谢你的回复。不过,我正在调试您的代码,但是当我运行F10步骤时,它会在arch_main.c的GLOBAL_INT_STOP();中停止

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
亲爱的MT\u dialog,

亲爱的MT\u dialog,

我正在尝试从DA1458x\u SDK\5.0.3\projects\target\u apps\ble\u examples\ble\u app\u peripheral运行您的代码,但无法从其他蓝牙设备捕获广播包。此设备可以从其他蓝牙信标包中获取包。你能帮我运行它来运行一些基于ble\u app\u外设的信标广播包吗?

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

您在帖子中提到的代码只是为了捕捉不可连接广告的结尾(设备正在广告,您发出了一个stop命令,导致广告停止,并且您的应用程序收到了设备停止广告的指示)。你说你不能从另一台设备上截获广告包是什么意思?为了从其他设备获取可复制的软件包,你必须是一个扫描器,以便从其他外设截取广告软件包。

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
我正在使用蓝牙扫描仪

我正在使用我基于芯片RN4020制作的蓝牙扫描器从所有的广播包中捕捉所有的广告包。我可以看到其他带有芯片RN4020扫描的设备的信标包,但是我看不到DA14580的信标包。

在我的代码中,我刚刚对DA1458x\u SDK\5.0.3\projects\target\u apps\ble\u examples\ble\u app\u peripheral的项目添加了以下更改

2-选项(正确的一个)是通过catch rest函数(user\u catch\u rest\u hndl)捕捉不可连接广告的结尾。您只需将以下代码放入user\u peripheral.c函数中即可:

案例GAPM\U CMP\U EVT:
{
结构gapm\u cmp\u evt const*msg\u param=(结构gapm\u cmp\u evt const*)(param);
开关(消息参数->操作)
{
案例GAPM\ U ADV\ U NON\ U CONN:
user_app_adv_start();//或完成后想要的任何东西
中断;

违约:
中断;
}中断;
}

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

既然你看不到任何广告,也没有收到广告已经停止的提示,那么你能通过使用智能代码片段工具来确保你的设备正在做广告吗,或者只是确保尝试一个android BLE应用程序?

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
嗨,我能看到

嗨,我可以从电话里看到广告包,但是我不能用Mircochip的扫描仪来扫描它。但使用相同的工具,它可以扫描在同一设备上运行的Ibeacon示例中的包。你能帮忙吗?我是否需要将代码从无向广播更改为无连接广播?我怎样才能做到?

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

我不知道你的扫描仪检测到什么样的数据包。如果您想以不可连接模式播发,可以使用SDK模板项目中的app\u easy\u gap\u non\u connectable\u advertive\u start()函数来实现。

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
我试过了,但还是不行

我试过了,但还是没有多大区别。广播方式和行为是否与信标示例和DA1458x\u SDK\5.0.3\projects\target\u apps\ble\u examples\ble\u app\u外设示例有很大区别?

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

信标示例使用两种不同的播发模式(取决于软件配置-GAPM\u ADV\u NON\u CONN和GAPM\u ADV\u UNDIRECT),设备的角色在GAP\u PERIPHERAL\u SLV中设置PDU type为ADV\u noncon\u IND。信标播发时没有扫描响应数据。app\u peripheral as is在GAP\u peripheral\u SLV中用GAPM\u ADV\u UNDIRECTED和扫描响应数据播发,PDU type正在使用is ADV\u IND。

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
谢谢你的回复,我

谢谢你的回复,我现在就查。
对于扫描,有没有可能我们只听一个频道,例如我们只扫描37频道?

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

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

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
谢谢,现在可以了。

谢谢,现在可以了。

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

//设备配置已更新
案例GAPM\u SET\u DEV\u CONFIG:
{
如果(参数->状态!=间隙(无错误)
{
ASSERT_ERR(0);//意外错误
}
其他的
{
if(7==当前角色)
{
#如果调试日志
printf_字符串(“\r\n Adv1\r\n”);
uart2_init(UART_波特率_115K2,3);
#结束
而(1)
{
#如果调试日志
printf_字符串(“\r\n WD T”);
如果(使用WDOG)
{
打印字符串(“1”);
wdg\U重新加载(看门狗\U默认\U周期);
wdg\ U简历();
}
if(开发/调试)
{
打印字符串(“2”);
}
printf_字符串(“\r\n”);
uart2_init(UART_波特率_115K2,3);
#结束
}
记录2(当前角色);
执行回调无效(app on set dev config complete);
}
其他的
{
#如果调试日志
printf_字符串(“\r\n Adv2\r\n”);
uart2_init(UART_波特率_115K2,3);

#结束
记录2(当前角色);
}
ke_timer_set(APP_SWITCH_ROLE_timer,TASK_APP,10);//10*10ms
}
}
中断;

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

我真的不明白你想做什么。据我所知,该程序是不会广告,但它会停留在这一点,而(1)将始终重新加载看门狗和打印一些东西。如果程序由于NMI\u Handler()(意味着看门狗中断)而停止,那么您可以通过打开内存选项卡并在地址0x81850处进行检查来找到发出NMI中断的位置,内存窗口中的第七个无符号长整数是您的程序计数器。您可以检查此项以查看程序停止的位置。

谢谢你的对话

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
非常感谢。我让它工作

非常感谢。我现在就让它工作

六銮002
离线
最后一次见到:3个月3周前
已加入:2015-11-27 14:24
有什么办法做这个吗

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

MT\u对话框
离线
最后一次见到:1周11小时前
工作人员
已加入:2015-06-08 11:34
你好,刘銮002,

你好,刘銮002,

当前的SUOTA实现使用SPI闪存或i2ceeprom,没有其他实现用于其他用例。

你的意思是一个da作为索塔接收器,另一个da作为中心操作并更新第一个da的图像?由于大多数spota central都是允许上传图像的手机或其他设备,因此没有将SUOTA配置文件实现为中心。

除了要上传到da的图像外,您还可以使用da的flash存储数据。信标示例使用spi内存的空间来存储一些配置数据,我不明白为什么不能用14583实现这一点。

谢谢你的对话