我对工作DSP中央应用程序进行了小的修改,基于SDK5,允许它在扫描期间将扫描的外围设备名称报告回我的应用程序。
在进行修改之前,我使用连接管理器应用程序首先验证我可以从我的(DSP)外围设备中报告此信息。
在Connection Manager中,我将它设置为“作为Central启动”。使用主动扫描。
我成功地看到了我的外设报告的2个广告报告,指示了第一个UUID信息,然后是随后的设备名称信息...请参阅下面的日志...
====> [13:24:56.677] Tx <====
SRC任务:0x3F(Task_Apd)
DST任务:0xD(task_gapm)
MSG ID:0x340F(Gapm_start_scan_cmd)
自己的添加类型:0x0(addr_public)
Payload:0F 34 0d 00 3F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00====> [13:24:56.716] Rx <====
SRC任务:0xD(task_gapm)
DST任务:0x3F(task_app)
MSG ID:0x3410(Gapm_adv_report_ind)
EVT类型:0x0
Addr典型值:0x0
BD ADDR:80:EA:CA:00:00:00
RSSI:0x89
数据Len:0x15
数据:02 01 06 11 07 B7 5C 49 D2 04 A3 40 71 A0 B5 35 85 3E B0 83 07
有效载荷:10 34 3F 00 0D 00 29 00 00 00 00 00 00 CA EA 80 15 02 01 06 11 07 B7 5C 49 D2 04 A3 40 71 A0 B5 35 85 3E B0 83 07 00 00 00 00 00 00 00 00 00 0089.====>应用信息<====
广告数据
标志:LE General可发现模式,BR / EDR不支持
128位服务UUID:0783B03E8535B5A07140A304D2495CB7====> [13:24:56.728] Rx <====
SRC任务:0xD(task_gapm)
DST任务:0x3F(task_app)
MSG ID:0x3410(Gapm_adv_report_ind)
EVT类型:0x4
Addr典型值:0x0
BD ADDR:80:EA:CA:00:00:00
rssi:0x8a.
数据Len:0x12
数据:11 09 53 6F 6C 65 4F 4F 4E 45 5F 50 51 52 53 54 55 5F 4C
Payload:10 34 3F 00 0d 00 2 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 008A====>应用信息<====
广告数据
设备名称:SOLEONE_PQRSTU_L
现在我承诺对我的DPSP中央申请进行修改。
在user_config.h中,我将扫描模式更改为gapm_scan_active。
现在在user_sps_host.cn时,在扫描我的外设时,我会看到2个回调到user_on_adv_report_ind()
第一个具有EVT_TYPE 0,第二个具有EVT_TYPE 4,如预期。
第一个事件报告我的bt addr,uuid和rssi
第二个事件报告正常我的BT Addr,RSSI .......但报表.Data_Len = 0,因此没有填充到Report.data []数组中的设备名称。
=========================================================================================================================.
问题:
在进行活动扫描中是否有其他任何我缺少报告我的外围设备名称?
对于Connection Manager DA14580应用程序,我有Binary / hex文件full_emb.hex
是否有此DA14580应用程序的源代码......我可以通过该代码涉及为什么能够成功报告外围设备的设备名称。
谢谢。
作为外围设备,我们在user_advertise_scan_response_data的微定义中添加名称信息。(file user_config.h“
但对于其他设备,它们可能不会在scan_rsp数据包中添加名称信息。
我的外围设备只是一个DA14580-EVKT-B板,运行DSPS SPS_DEVICE SDK5应用程序。
如对话框“Connection Manager”所示,“Connection Manager”能够成功执行活动扫描,并从主动扫描的DSPS SPS_DEVICE应用程序检测外围设备名称。
因此,外围设备正常提供设备名称。
但是当我修改DSPS SPS_HOST SDK5应用程序来执行活动扫描时,扫描请求响应响应显示设备名称的空字符串。
问题得到解决。
我认为只有在user_on_adv_report_ind()函数中设置了一个断点时,才显示空字符串。
一旦我拿走了断点,让代码不间断运行,则正在正确报告DeviceName。
谢谢。