起因很朴素:产线上要做低压共地端子的通畅性测量,手头的台式示波器又大又贵,还得两个人抬。我手上有两块 PW05 蓝牙模拟电压采集模块,就想——能不能让它们变成一台随身携带的双通道示波器?这篇记录 SBQScope 从 v1 到 v5 的完整迭代过程。
PW05 的输出协议非常朴素:一行一个十进制电压值。比如 0.125\n、0.138\n。APP 侧要兼容两种单位:小数形式按 V 处理(如 1.500),较大的整数形式按 mV 自动换算(如 1500 → 1.500 V)。这个假设定下来,后面的解析层就不用反复改。
A/B 两台采集模块要分别建立连接。实际联调发现,不同批次模块的蓝牙协议栈行为不一致,所以连接策略做成了逐级回退:
FFE0/FFE1、FFF0/FFF1/FFF2/FFF6 等常见服务和特征v5 的核心是把两路波形做实时对比。A、B 两路分别缓存后,逐点计算 A-B 差值序列,同时输出两端 RMS 及其差值;再用归一化互相关粗算波形相似度,作为端子通畅性的判定依据。导出走系统文件选择器,CSV 直接落盘,后续用 Python 脚本做离线对比分析。
产线工人不看说明书,交互必须符合直觉:双指捏合缩放时间轴和幅度、单指左右拖动回看、一键自动适配全屏、暂停/单次采集切换、游标测量读数。这些看起来琐碎,但占了整个开发量的一半。
最新全量包是 SBQScope-debug.apk,源码入口在 MainActivity.java 和 OscilloscopeView.java。下一步计划:固化判定阈值到配置文件、增加端子编号自动标注、把离线对比脚本合并进 APP。