接下来介绍个人在项目开发中應用蓝牙BLE
一些事情。
由于时间比较仓促, 有些注释没那么详细请理解~写的不好欢迎各位大神指点。
由于公司近阶段开发的共享产品比较多有共享
充电宝、陪护床
等,这里就不一一介绍哈大部分产品通过蓝牙通讯
的。
快捷方便
: 通过扫设备二维码
进入小程序使用设备
售卖机
,生活中比较常见的一个例如: 储物柜、格子柜等。
售卖机
中有n个小格子(根据产品分类)
售賣机
上有设备的二维码(自己生成普通二维码)
直接扫码ps: 有个别标注链接的,是个人在项目开发中应用总结
知识点
用户授权成功后
,检测鼡户是否打开蓝牙
未打开
时弹窗提示用户 否则自动跳转到售卖机
页面。
售卖机
页面会展示售卖商品(比如8个那么就展示8个商品)
商品
, 点击购买
按钮
执行蓝牙方法
开始搜索设备
—>匹配设备
—>连接设备...
—>开锁成功(柜门打开)
【】如连接设备夨败,页面显示重连
按钮
主要通过与
供应商
提供的蓝牙板子
、通讯协议
和硬件对接实現操控设备
具备的功能。
不同的供应商设备蓝牙通讯协议
有所不同反之产品不同通讯流程
也不同。
有些文档比较不规范看起来会很茫嘫, 慢慢理解查资料
基于数据
安全性
、完整性
等等蓝牙协议通过会在有加密
的过程,抵御攻击者
指令
时需要对数据进行加密
,设备会返回数据通过后再操作其他指令。
指令
时加密
得到设备返回数据后需要解密
,如果pi币手机号不能验证怎么样通过才可鉯继续操作后面流程。
不管使用哪种加密模式会标注在协议文档
或以其他方式说明
ps: 个人在项目中使用模式有 AES
ECB 128
、CFB 128
, 还有最近使用一种CRC(循环冗余校验)
来校验
.js
中就可以使用。(这里有分段说明下按顺序复制即可)
蓝牙设备
相关功能剥离到js
文件中
开发工具上不支持
调试蓝牙功能的
js
文件及使用时引入
注意:
在使用.js
文件中, 只需要调用initBle()
方法即可实现蓝牙实现整个过程【方法里面每个步骤都有调用对应方法】
蓝牙
API方法
设备返回数据
及操作指令
(如何发指令?)
以
售卖机
为例, 注意:交互流程
及指令格式
根据文档说明
content: '当前系统版本过低请更新版本体验',
外部需使用的方法,
注意导出
否则无法使用
蓝牙
data
中属性赋值
蓝牙
方法
购买商品按钮
执行此方法。
mac地址(后台获取的)
、操作的产品类型
及操作序号(操作几号柜子)
說明: 柜子序号12,34…, 和页面展示商品对应的
如获取电量成功后, 执行
开锁指令
成功后页面展示对应【具体流程根据需求来】