嗨对话小组
我想用我的设备扫描我周围的所有信标,但我不能扫描所有。
我扫描的所有设备,他们的evt_type是ADV_CONN_UNDIR,但我想获得的设备类型是ADV_NONCONN_UNDIR。
你能帮我查一下吗?
我的客户端项目是DA1458x_DSPS_v_5.150.2.zip
/*********************************************************************/
静态const struct scan_configuration
/ / /操作的代码。
.code = GAPM_SCAN_PASSIVE,
///设备自带BD地址源
.addr_src = GAPM_PUBLIC_ADDR,
/ / /扫描间隔
.interval = 0 x1900,
///扫描窗口大小
.window = 0 x1900,
/ / /扫描模式
.mode = GAP_GEN_DISCOVERY,
///扫描过滤策略
.filt_policy = SCAN_ALLOW_ADV_ALL,
///扫描副本过滤策略
.filter_duplic = SCAN_FILT_DUPLIC_EN
};
Void user_on_adv_report_ind(struct gapm_adv_report_ind const * param) (struct gapm_adv_report_ind const * param)
{
Uint8 idx = 0;
Int8 len = 0;
Uint8 report_ret[64] = {'\0'};
/ /调试数据报告
arch_printf(“扫描装置:”);
Arch_printf ("%02x %02x %02x %02x %02x %02x",
param - > report.adv_addr.addr [5],
param - > report.adv_addr.addr [4],
param - > report.adv_addr.addr [3],
param - > report.adv_addr.addr [2],
param - > report.adv_addr.addr [1],
param - > report.adv_addr.addr [0]);
arch_printf (" \ r \ n ");
Arch_printf ("adv type = %d\r\n",param->report.evt_type);
}
/***************************************************************/
“参数- >报告。evt_type"总是0(ADV_CONN_UNDIR),我如何得到其他evt_type广告?
struct adv_report
{
/ / /事件类型:
/// - ADV_CONN_UNDIR:可连接的无向广告
/// - ADV_CONN_DIR:可连接定向广告
/// - ADV_DISC_UNDIR:可发现的无定向广告
/// - ADV_NONCONN_UNDIR:不可连接的无向广告
uint8_t evt_type;
///发布地址类型:public/random
uint8_t adv_addr_type;
/ / /广告地址值
struct bd_addr adv_addr;
///广告包中的数据长度
uint8_t data_len;
///广告包数据
uint8_t数据(ADV_DATA_LEN);
///发布报文的RSSI值
uint8_t rssi;
};
谢谢大家
嗨puchuan,
您无法扫描所有广告设备的事实是因为您的设备的.mode被设置为GAP_GEN_DISCOVERY,它只返回在有限或通用模式下发布的广告字符串。您必须使用GAP_OBSERVER_MODE来扫描所有类型的广告数据。
由于MT_dialog
嗨对话小组
我换了模式,问题解决得很好。谢谢你的帮助
你好,
我使用了与上面相同的GAP_OBSERVER_MODE代码,仍然无法获得任何不可连接的广告。流程根本就没有出现在广告报告中。除了这些参数,我还需要初始化其他什么东西吗?我使用的是app_peripheral示例项目。
谢谢提前
嗨wisilica,
你得到了所有其他的广告指示,但不可连接的?
您是否将设备的角色配置为GAP_CENTRAL_MST或GAP_OBSERVER_SCA ?
由于MT_dialog
嗨
做得很成功。谢谢你!
嗨wisilica,
如果上面的答案有用,请将答案标记为接受。
由于MT_dialog