找回密码
 立即注册
搜索
热搜: 星闪 最新 活动
查看: 424|回复: 0

BLE低耗蓝牙广播通行测试(微信小程序)

[复制链接]

1

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-12-11 14:18:19 | 显示全部楼层 |阅读模式
本帖最后由 Heshen_Zhao 于 2024-12-11 14:25 编辑

BLE低耗蓝牙广播通行测试(微信小程序)
开发环境 Windows 11 Home x64, 23H2. VScode, 微信开发者工具(baselibrary 3.6.6)。
测试环境:广播设备名:’cent_prph’iPhone 15 Pro Max , IOS18.1.1.
【注意事项】
-       微信小程序的蓝牙API不支持将手机变成advertiser.(12/11/2024)
-       Zip 里中的.vscode 文件夹可以忽略,我习惯用vscode编辑,这个文件夹是系统自动生成文件方便编辑和读取信息。
-       若需要测试,使用微信开发者工具非常的方便,可以使用Remote Debug模式来时时关注console里的状态来核对已知信息。
-       在测试当中发现在测试对象没有开启的状态下,第一次开启发送的数据全部显示关闭状态。(非小程序能控制因素,测试的时候需要注意12/11/2024)
-       考虑到蓝牙可能进行间接定位 安卓6.0 以上版本,未给予定位权限或者定位未打开时,无法进行设备搜索。
-       如果以后使用UUID 而不是名称来过滤设备则需要注意ios只支持16/128位的UUID
-       安卓8.0.9 开始支持16/32/128位UUID
-       安卓8.0.9以下只支持128位的UUID, 需要开发者手动补位到128位。补位方法如下:
o  128位UUID = 16位UUID * 2^96 + Bluetooth Base UUID
o  128位UUID = 32位UUID * 2^96 + Bluetooth Base UUID
【程序结构】
在此文件中,只有这部分可以安全的调动并且可以保证小程序正常工作。
里面相对应的是:
-       pageinfo.js, 小程序的功能页面。
-       pageinfo.json 小程序识别这个文件夹里面那些components是需要用的。
-       pageinfo.wxml 小程序中的网页设计程序(主要调整网页上显示的字,按钮,和读取并且显示功能页面提供的数据)
-       pageinfo.wxss 小程序中辅助网页设计的程序(主要调整字体,颜色等辅助性功能)


【功能介绍】
pageinfo.js的文件里拥有所有小程序的运行逻辑和功能。这里做一些简单的介绍和需注意现象来辅助以后的修改和测试。
首先是data格式,设计理念是拥有一个列表来储存所有找到的设备,一个变量来储存手机/检测器的当前蓝牙状态从而帮助scaninterval来自动刷新和error来检测错误。需要注意的是error是一个空的string这样可以当出现问题的时候把string的状态修改来报错,也省去了报错所需要的储存空间。

然后是toggleBluetooth 这个按钮是与页面设计上的“打开蓝牙”按钮连接到一起的,当系统蓝牙未开启时,蓝牙状态会保持关闭并且报错。当系统蓝牙开启时,按“打开蓝牙”会将蓝牙状态变成开启,当蓝牙状态保持开启时系统会自动每一秒钟刷新一次startscanfunction 来检测和扫描设备。
startscan 是这个小程序的主要部分,他会开启检测并且寻找一个名字为‘cent_prph’的设备若需要改变将这个if 框架删除或者改成想要寻找的设备名即可。然后这个检测会将找到的设备加入设备列表或者deviceList当中,并且把设备的status(状态), on/off)显示出来。这个状态结果是通过一个辅助function名为计算出来的,因设备而异,可以通过改变这个算法来检测自己需要检测的设备。
中间还有一个辅助function 用于更新或者加一个新的设备到deviceList里。
需要特别注意的是最后一段代码:
在修改代码时需要特别注意setInverval的实时状态并且保证最后会把所有相关信息清理掉,不然有可能会出现内存泄漏等情况。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|【淇诺科技】技术论坛 ( 粤ICP备14010465号-1|粤ICP备14010465号-1 )

GMT+8, 2026-4-2 17:20 , Processed in 0.126582 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表