CH573主机扫描怎么看蓝牙名?

才开始使用CH573,想在主机上扫描出设备蓝牙名,不知道是读取哪个参数,有哪位用过的麻烦告诉我一下,感谢大佬。

蓝牙名被放在了扫描应答包或者广播包里面,我们的例程中只打印了MAC地址,想打印扫描应答包或者广播包添加即可。emobile_2022-02-14_13-26-34.png


我看主机是通过绑定的MAC地址进行连接的,收发是在哪里呢,主机例程连的是从机例程还是可以连透传的例程呢?


是的,例程中主机通过mac地址和从机建立连接,与主机建立连接的是从机例程,透传例程在从机例程的基础上进行了修改,也可与主机建立连接。

emobile_2022-02-14_15-38-07.png

主机在这边打印出从机notify信息。收发均可通过连接后的打印信息在程序中搜索到。


刚好我也用到这个功能,主机通过蓝牙名称去链接,广播包里面有蓝牙名称,而SDK没有提供函数去获取它,自己解析广播包即可获取。我是这样操作的,供参考:

image.png



感谢分享j_0069.gif


现在用CH582主机进行扫描,

image.png

在下面这个事件中能收到deviceinfo,但是pEvent->deviceInfo.dataLen一直是为0的,所以无法获取到广播名,CH573主机是可以,但是事件不一样是用的 GAP_DEVICE_INFO_EVENT事件,而CH582用的GAP_DIRECT_DEVICE_INFO_EVENT,用CH573事件无反应。


官方刚刚更新了583的evt,下载最新的evt(1.2版本)


新的版本OK

能不能扫描到设备的UUID?

现在从机广播是有uuid的

image.png

通过手机蓝牙也看的到广播的UUID,主机在扫描的时候哪个参数可以看到呢?


跟二楼的操作一样的啊,二楼那个包里就是广播包和扫描应答包,包括了你包里放的所有数据。


datalen长度有几种,有28,31,7这些,不一样的长度代表的包不一样,根据adverData长度判断这个包代表的是UUID,有什么方法能同时获取到或者先后的顺序怎么处理。




对于一个设备而言,你只会扫到两个包的长度,一个是扫描应答包,一个是广播包,那么你获取到的信息就是你从机设备的扫描应答包和广播包的信息,你会一次性获取扫描包或广播包里面的所有信息,而不是零零散散的。所以你只想获取其中的某一块时,这是需要你根据完整的内容去解析的,包里的内容格式是固定的(长度+类型+长度)可根据类型筛选。


只有登录才能回复,可以选择微信账号登录