BLE主机中所有播发BLE设备的列表

⚠️
您好,谢谢您来到论坛。令人兴奋的消息!我们正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support.我们将在未来几天内修复bug/优化搜索和标记。
8个帖子/ 0新
最后一篇文章
拉提什特
离线
最后一次见到:1年10个月前
加入:2017-01-02 11:08
BLE主机中所有播发BLE设备的列表

你好
1) 。如何列出在我们的DSP(v_5.150.2)主机程序中广告的所有BLE设备。
2) 。列出主机中的所有设备后,我需要通过选择该设备连接到特定设备。请建议在BLE主机程序中进行更改的位置。

我正在使用da14580 pro套件。

请参考一些有关此项目或示例项目或文档的链接

设备:
MT_对话框
离线
最后一次见到:1个月3周前
工作人员
加入:2015-06-08 11:34
嗨,RatheeshT,

嗨,RatheeshT,

1)每次您都有一个迹象表明您只能打印数据,只要您在da1458x_config_basic.h中定义了cfg_printf定义,DSPS应用程序可以实现user_on_adv_report_ind()中的ARCH_PRINF()函数文件(也是为了能够打印您还需要额外修改它在这篇文章中指出https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...)

2)如果您想拥有这种功能,那么您应该有一个数组将发现的设备放置并在扫描过程期间将索引分配给每个发现的设备(扫描过程为中心持续10秒)。关于打印何时会发生,这取决于您希望如何实现它(扫描期间或扫描完成时)。没有完全托管的例子,具有这种功能,但是接近监视器Windows应用程序确实如此(在Windows上),也许这将为您提供一些想法。

谢谢你的对话

拉提什特
离线
最后一次见到:1年10个月前
加入:2017-01-02 11:08
你好

你好
当我列出设备地址时,即可两次获取单个设备地址。为什么它发生得那么以及如何解决它。

MT_对话框
离线
最后一次见到:1个月3周前
工作人员
加入:2015-06-08 11:34
嗨,RatheeshT,

嗨,RatheeshT,

扫描命令消息有一个由用户扫描配置的.filter\u duplic成员配置的选项,该成员将scan\u FILT\u duplic\EN或scan\u FILT\u duplic\u DIS作为一个值。因此,如果为当前扫描配置扫描\u FILT\u duplic\EN(持续约8秒-自动超时),则不会有重复的设备(除非广告设备超过10个)。因此,如果您启用了此选项,并且在每次扫描中获得相同的正常地址,您将需要应用程序实现的附加过滤器,以便过滤出独立于扫描过程实例的广告设备。

谢谢你的对话

拉提什特
离线
最后一次见到:1年10个月前
加入:2017-01-02 11:08
嗨mt_dialog,

嗨mt_dialog,

1.好的,它已经处于扫描过滤双重模式,但我无法理解你上一篇文章的最后一句话
i、 e.“您将需要应用程序实现的附加过滤器,以便过滤出独立于扫描过程实例的广告设备。”。
你能用更多细节描述它吗?

我有两个对话BLE和另外三个BLE。

2.此外,它只列出一个设备地址,但我们的期望是,它应该发现所有设备地址。

我用下面的设置运行ble
主机设置:(扫描)
GAP_GEN_发现
scan_allow_adv_all.
GAPM_CONNECTION_SELECTIVE.
设备设置:(广告)
可发现的间隙
gap_peripheral_slv.
ADV\u允许\u扫描\u任何\u禁止\u任何

你能提供你的建议吗?

MT_对话框
离线
最后一次见到:1个月3周前
工作人员
加入:2015-06-08 11:34
嗨,RatheeshT,

嗨,RatheeshT,

1.扫描过程有一个超时(约8秒),因此对于一次扫描操作,设备扫描约8秒,在这8秒钟内,您不应看到重复的设备(只要您有扫描过滤器)。如果您希望扫描更长的时间,这意味着您应该在每次超时时重新启动扫描操作,因此在每次扫描中,您都将获得上次扫描报告的设备。如果您希望避免此情况,则应在应用程序级别应用过滤器,以防止打印出现问题的设备e allready reported。这意味着您必须创建一个阵列,在该阵列上存储您在以前扫描中拾取的设备,并对照阵列条目检查每个广告指示(每个db地址),以避免打印以前扫描中找到的设备。

2.我没有看到你的设置有什么问题,是范围内的广告设备吗?如果在中央扫描时检查外围设备是否是广告的(减少广告间隔,以便广告商更频繁地发送广告字符串并减少扫描窗口和间隔,以便更频繁地扫描广告频道),在空中的噪音可能会阻止中央从外围获取广告指示。此外,由于您只能从一个设备中获取一个广告字符串,以防user_on_adv_report_ind()中有任何if()条件,请检查广告消息中的特定字符串(如果您复制了IT使用的DSPS user_on_adv_report_ind()验证外围设备在广告字符串中具有特定序列的条件)。

谢谢你的对话

拉提什特
离线
最后一次见到:1年10个月前
加入:2017-01-02 11:08
嗨对话框

嗨对话框
非常感谢。
我可以列出广告设备。扫描在初始化后立即开始,但我需要使用命令scan扫描设备,甚至需要使用命令connect通过选择连接到其他设备。我使用的是uart2。我参考了uart2_async示例。我做了如下更改:
mode-arch_sleep_off.
连接端口1引脚2和端口1 PIN3。
ARCH_PRINTF工作,但我无法接收任何命令并给出响应。
我的代码更改了

作废用户\在\设置\开发\配置\完成(作废)
{
//在数据库中添加第一个必需的服务
if(app_db_init_start()))
{

uart2_read_in_progress = 1;
uart2_读取((uint8_t*)缓冲区、读取字符计数、uart2_读取完成_cb);

while(uart2读取中);

缓冲区[读取字符计数]=0;

//arch_printf(“工作”);
arch_printf(缓冲区);
//
// uart2_print_string(缓冲区);
//用户_扫描_开始();
}
}
该代码仅用于检查接收。但它未接收任何数据。实际上,必须比较接收到的数据,如果命令为scan,则主机应开始扫描,并且连接也是如此。

请帮我解决这个问题。

MT_对话框
离线
最后一次见到:1个月3周前
工作人员
加入:2015-06-08 11:34
嗨,RatheeshT,

嗨,RatheeshT,

您确定设备是否未收到数据?当您在READ_CHAR_COUNT中声明的数据量时,应在键入终端中的特定数据量时检查UART2_READ_COMPLETION_CB()函数。此外,因为i VE测试了代码,所以需要将UART_READ_IN_PROGREST变量设置为易失性以便工作。

谢谢你的对话