上期回顾: 树莓派3应广大极客的需求,支持WiFi和Bluetooth无线通信技术,为IOT开发提供了更多可能。今天就来测试树莓派3的蓝牙功能。 在蓝牙图标上右击鼠标弹出子菜单,共有“Turn Off Bluetooth”、“Make Discoverable”、“Add Device…”、“Remove Device…”4个菜单选项。 点击“Add Device…”子菜单选项,进入蓝牙设备搜索界面。打开手机蓝牙,开放检测功能,这样才能被树莓派找到,找到设备后,在Add New Device界面中,选择手机,点击Pair按钮,进行配对。 配对过程会弹出确认窗口,点击ok确认。 配对成功后弹出下面的窗口提示,分析应该是SDP出现了问题,我们来抓抓log分析一下。分析蓝牙的数据包协议,我们需要一款软件来辅助分析:Frontline ,去http://www./ 官方网站下载,在Windows本地安装Frontline 的安装包。 在手机中进入开发者选项,并开启开发者选项,打开蓝牙数据包日志。 在树莓派的蓝牙子菜单中点击Make Discoverable,然后打开手机蓝牙,进行scan,能够扫描到树莓派蓝牙设备,设备名称为raspberrypi(AD55)。 点击进行配对,配对完成后,查看树莓派蓝牙支持的profile,发现只有共享联系人 service,如下图所示。 将手机中的btsnoop_hci.log文件拷贝到电脑,修改后缀为.cfa文件,双击btsnoop_hci.cfa文件打开。 分析packet,Raspbian操作系统使用的BlueZ支持的bluetooth spec为4.1。 但是在inquiry result中只支持AVRCP、GAP profile。 在SDP中得到的结果也是只支持AVRCP、GAP profile,因此导致SDP完成后断线。 系统自带的蓝牙管理软件功能不是很强大,为了更便于使用,安装Blueman。Blueman是一个GTK蓝牙管理器,能够高效管理BlueZ API,并简化设备连接和操作。 测试文件发送,树莓派能够发送到手机,但是手机不能够发送到树莓派,问题在于树莓派SDP中不包含OPP profile的service record。 总结: 树莓派Raspbian操作系统的蓝牙功能还不是很完善,至少用户体验是很差的,还存在很多问题。如果要支持OPP,A2DP,DUN等profile需要自己配置,配置过程也非常复杂。 |
|