微信蓝牙开发

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了微信蓝牙开发脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1、经历:最近在进行微信蓝牙打印功能模块的开发,了解了下蓝牙连接的全流程,好记性不如烂笔头,记录一下

2、感想:

  先来说一下蓝牙连接的几个流程吧,虽然官方有且很详细了:https://develoPErs.weixin.QQ.COM/miniPRogram/dev/framework/device/ble.htML

  首先是蓝牙适配器模块的初始化wx.openBluetoothAdapter,不初始化是无法使用其他蓝牙接口的

  初始化后,要开始扫描周围的蓝牙设备wx.startBluetoothDevicesDiscovery,还要配置扫描到蓝牙设备的监听方法wx.onBluetoothDeviceFound

  触发扫描到蓝牙设备的监听方法后,我们可以调用wx.getBluetoothDevices获取在蓝牙模块生效期间所有搜索到的蓝牙设备

  获取到devices列表后我们可以在页面展示出来,当点击要连接的蓝牙设备就取出该设备device里面的deviceId进行连接wx.createBLEConnection

  连接成功后我们要停止扫描周围蓝牙设备wx.stopBluetoothDevicesDiscovery,同时取消监听蓝牙适配器状态变化事件wx.offBluetoothDeviceFound,因为扫描设备比较耗费系统资

  之后调用wx.getBLEDeviceServices获取连接的蓝牙设备提供的所有服务services,这时遍历一下如果有service里的isPrimary是true,说明这个service是主服务,就可以进行通信,如果多个主服务的话,就按业务需求操作就好了

  选了主服务service后用这个服务的uuid和连接设备的deviceId去查该服务的所有特征值wx.getBLEDeviceCharacteristics

  查到这个服务的所有特征值后进行遍历通过辨别特征的properties里面的wrITe、read、notify来判断是否具备读写、订阅等功能

  存在Properties.read可以用wx.readBLECharacteristicValue,存在properties.notify的话可以监听订阅的notify事件,简单来说就是建立长连接,获取设备发出的数据

  存在properties.write的话就可以调用wx.writeBLECharacteristicValue传入特征的uuid、服务的uuid和连接设备的deviceId来写入二进制数据数据

  蓝牙打印的话,直接把数据转二进制传过去是不行的,打印机是识别不了的,因为js里面用的Unicode编码,译名为万国码、国际码。而打印机里面用的是GBK编码,也就是国标码,编码不同,所以要经过转义才行

  转义完后,传给打印机的数据也不是随便传,除了传打印数据,还要传打印机能识别的指令,打印机才能动起来,目前主流的打印机控制语言有三种:Epson公司的ESC命令集、HP公司的PCL命令集、Adobe公司的PostScript(简称PS)命令集

  刚好我开发的业务主要是打印票据,而ESC命令集是针式打印机和票据打印领域的事实上的工业标准,所以我用的是ESC命令集

  写完数据后,打印机就成功打印出票据了,就可以调用wx.closeBLEConnection断开连接了,再调用wx.closeBluetoothAdapter关闭蓝牙模块,流程就结束了

wx.openBluetoothAdapter                         //初始化蓝牙模块
wx.startBluetoothDevicesDiscovery               //开始扫描设备
wx.onBluetoothDeviceFound                       //监听发现设备时的事件
wx.getBluetoothDevices                          //获取蓝牙模块生效期间所有的设备
wx.createBLEConnection                          //连接设备
wx.stopBluetoothDevicesDiscovery                //停止扫描设备
wx.offBluetoothDeviceFound                     //取消监听发现设备的事件
wx.getBLEDeviceServices                        //获取该设备所有服务
wx.getBLEDeviceCharacteristics                 //获取单个服务的所有特征
wx.writeBLECharacteristicValue                 //写入数据
wx.readBLECharacteristicValue                  //读取数据
wx.closeBLEConnection                          //断开连接
wx.closeBluetoothAdapter                       //关闭蓝牙模块

 

脚本宝典总结

以上是脚本宝典为你收集整理的微信蓝牙开发全部内容,希望文章能够帮你解决微信蓝牙开发所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。