嗨,对话,
我正在尝试为其他Bluetooth设备制作一个类似于信标的应用程序来收听广播,这个问题是我跟踪了你网站上链接的家伙,但是仍然无法通过扫描广播包来捕获其他Bluetooth设备的广播包。你能帮忙吗?
我所做的参考如下:
http://support.dialog.com/advancement complete callback-。。。
2 - 选项(适当的一个)是通过CATCH REST功能(User_Catch_Rest_hndl)捕获非可连接广告的结束。您可以将以下代码放在user_peripher.cl函数中:
案例GAPM\U CMP\U EVT:
{
struct gapm_cmp_evt const * msg_param =(结构gapm_cmp_evt const *)(param);
开关(消息参数->操作)
{
案例GAPM_ADV_NON_CONN:
user_app_adv_start();//或完成后想要的任何东西
休息;
违约:
休息;
}中断;
}
设备:
嗨Liuluan002,
您可以转到gapm\u cmp\u evt\u handler()并使用断点检查是否调用了catch rest函数的回调函数。如果调用了它,请检查switch语句是否执行了正确的大小写。出于调试目的,您也可以始终使用第一个选项来检查是否触发了GAPM\u ADV\u NON\u CONN。
谢谢你的对话
谢谢你的回复。不过,我正在调试您的代码,但是当我运行F10步骤时,它会在arch_main.c的GLOBAL_INT_STOP();中停止
亲爱的MT\u dialog,
我正在尝试从da1458x_sdk \ 5.0.3 \ projects \ target_apps \ ble_examples \ ble_app_peripheral运行代码,但我不能从其他蓝牙设备捕获广播包。此设备可以从其他蓝牙信标包中获取包。您能帮我请帮助我运行一些基于BLE_APP_PERITERAL运行的一些信标广播包吗?
嗨Liuluan002,
在您提到的帖子中指示的代码只是为了捕获不可连接的广告的结束(设备是广告,您发出的停止导致广告停止,并且您将指示您的设备停止的应用程序的迹象广告)。你是什么意思你不能从另一个设备捕获广告包?为了从其他设备获取BLE包,您必须成为扫描仪,以便从其他外设的SNIF广告包。
谢谢你的对话
我正在使用基于Microchip RN4020的蓝牙扫描仪赶上所有广播包的所有广告包。我可以通过Microchip RN4020扫描从其他设计中看到其他信标包,但我无法看到来自DA14580的包。
在我的代码中,我刚刚对DA1458x\u SDK\5.0.3\projects\target\u apps\ble\u examples\ble\u app\u peripheral的项目添加了以下更改
2 - 选项(适当的一个)是通过CATCH REST功能(User_Catch_Rest_hndl)捕获非可连接广告的结束。您可以将以下代码放在user_peripher.cl函数中:
案例GAPM\U CMP\U EVT:
{
struct gapm_cmp_evt const * msg_param =(结构gapm_cmp_evt const *)(param);
开关(消息参数->操作)
{
案例GAPM_ADV_NON_CONN:
user_app_adv_start();//或完成后想要的任何东西
休息;
违约:
休息;
}中断;
}
嗨Liuluan002,
既然你看不到任何广告,也没有收到广告已经停止的提示,那么你能通过使用智能代码片段工具来确保你的设备正在做广告吗,或者只是确保尝试一个android BLE应用程序?
谢谢你的对话
嗨,我可以从电话里看到广告包,但是我不能用Mircochip的扫描仪来扫描它。但使用相同的工具,它可以扫描在同一设备上运行的Ibeacon示例中的包。你能帮忙吗?我是否需要将代码从无向广播更改为无连接广播?我怎样才能做到?
嗨Liuluan002,
我不知道扫描仪检测到什么样的数据包。如果要以不可连接的模式宣传,可以通过使用SDK的模板项目中的App_easy_gap_non_connectable_advertise_start()函数来进行此操作。
谢谢你的对话
我试过了,但还是没有多大区别。广播方式和行为是否与信标示例和DA1458x\u SDK\5.0.3\projects\target\u apps\ble\u examples\ble\u app\u外设示例有很大区别?
嗨Liuluan002,
信标示例使用两种不同的播发模式(取决于软件配置-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。
谢谢你的对话
谢谢你的回复,我现在就查。
对于扫描,有没有可能我们只听一个频道,例如我们只扫描37频道?
嗨Liuluan002,
只有只检查各个广告频道或检索特定的广告频道号码。
谢谢你的对话
谢谢,现在可以了。
花药问题是关于看门狗
对于“ble_app_barebone”项目,我在“da1458x_config_basic.h”中将看门狗从“#undef CFG_WDOG”更改为“#define CFG_WDOG”。然后我把下面的代码写进“app\u task.c”,然后我发现在它运行了一段时间后,程序停止了,如何修复这个问题?看来看门狗没跑。你能帮忙吗?再次非常感谢。
//设备配置更新
CASE GAPM_SET_DEV_CONFIG:
{
如果(参数->状态!=间隙(无错误)
{
ASSERT_ERR(0);//意外错误
}
其他的
{
if(7 == current_role)
{
#如果调试日志
printf_字符串(“\r\n Adv1\r\n”);
uart2_init(UART_波特率_115K2,3);
#结束
而(1)
{
#如果调试日志
printf_string(“\ r \ n wd t”);
如果(使用WDOG)
{
printf_string(“1”);
wdg_reload(watchdog_default_period);
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
}
}
休息;
嗨Liuluan002,
我真的不明白你想要做什么。据我所知,该计划不会宣传,但它会陷入其中(1)并且将始终重新加载看门狗并打印一些东西。如果程序因NMI_Handler()(意味着看门狗中断)停止,那么您可以通过打开内存选项卡和检查地址0x81850检查NMI中断,在内存窗口中的第七个无符号长整数号是您的程序计数器。您可以查看此操作以便查看程序停止的位置。
谢谢你的对话
非常感谢。我让它工作now
有没有办法通过UART端口进行软件更新?怎么做?
通过编程,是否有办法在两个对话框中进行两种对话框之间的OTA?
有没有办法我们仍然使用对话框14583的内部闪光灯的一部分作为传感器数据记录?
嗨Liuluan002,
当前的型话实现使用SPI Flash或I2C EEPROM,没有其他用例的其他实现。
你的意思是一个DA为Suota接收器,另一个DA作为中央操作并更新第一DA的图像?由于大多数Spota中央通常是手机或其他允许图像的其他设备,因此没有实施Suota配置文件。
除了要上传到da的图像外,您还可以使用da的flash存储数据。信标示例使用spi内存的空间来存储一些配置数据,我不明白为什么不能用14583实现这一点。
谢谢你的对话