微信小程序 BLE 开发笔记(1)

微信小程序开发记录

BLE背景知识

ble是低功耗蓝牙设备,特点是省电、传输效率低。比如手环、腕表、无线耳机等。

1、设备提供多个service,每个service有一个uuid,这个uuid有一定的统一命名。
2、每个service下,有一个或多个characteristic。
3、每个characteristic,提供read、write、notify 、indicate 等功能中的一个或多个。
4、read功能主要是获取设备的信息,比如设备型号、电量、通信频率等等
5、write功能主要是给设备传输命令。设备会根据命令回传数据,或者更改设备设置。
6、notify类似于通知,只有打开通知,write写入命令后,设备的命令响应才会传出。

微信ble相关API

具体使用方法文档中都有,基本顺序如下:
1、wx.openBluetoothAdapter,这个相当于初始化蓝牙适配器,但手机蓝牙关闭的情况下不会弹窗提示,需要用户手动打开蓝牙。所以最好检测一下适配器状态后提示用户开启蓝牙。
2、wx.startBluetoothDevicesDiscovery、打开蓝牙搜索功能,这玩意儿费电,用完就关wx.stopBluetoothDevicesDiscovery
3、wx.onBluetoothDeviceFound 和 wx.getBluetoothDevices 这两个都可以获取可连接设备。
4、如果是Android而且对于固定设备,是知道service的uuid和Characteristic的uuid,可以直接写死,然后调用,但是ios,需要先执行 wx.getBLEDeviceServices,对于需要操作的Characteristic,也要执行wx.getBLEDeviceCharacteristics,要是特征值在不同的服务中需要多次执行。
5、wx.notifyBLECharacteristicValueChange、先打开设备服务通知。然后用wx.onBLECharacteristicValueChange注册一个回调函数,之后每次设备发给手机的信息就可以捕获了。
6、、wx.readBLECharacteristicValue和wx.writeBLECharacteristicValue,对设备进行操作。
7、wx.closeBLEConnection。

一些注意事项

1、在小程序的页面中连接后,当页面退出或者隐藏,蓝牙不会自动断开连接。在unload和hide中加入断开连接的函数。
2、对于ios设备,连接后,必须要获取一次services,和一次或多次的Characteristic。
3、BLE的数据传输是一个包一个包进行的,一个包最大一般是20个字节。

arraybuffer

写入命令,需要写入的是二进制。在js中就需要arraybuffer来进行。注意转换。

var arraybuffer = new arraybuffer(8) //声明一个变量 8个字节。
var buf = new DataView(arraybuffer) //用buf实例化一个dataview,来绑定arraybuffer,用来操作和读取arraybuffer的内存
buf.setUint8(0,0xff) //设置第一个字节为 16进制 ff,也支持十进制。
buf.getUint16(0) // 0xff00 ,读取arraybuffer的值。未定义过的内存空间值为0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值