task(efd8bad2-98f6-4ca6-b0e2-06d5f557b43f): Add M4 collect & BLE module (scan/connect/parse/excite/queue)

补偿提交:归档自动提交(commitOnArchive)未落盘,由主聊天代为补交 S-M4 全部源码变更(16 新 + 4 改 + 1 删)。
- core:ble:BleDriver/BleConnection 抽象 + SystemBleDriver/FakeBleDriver(演示模式,协议精确样例帧)/SwitchableBleDriver;BleSession 四态状态机(Ready)、MTU 协商、API 33+ 回调签名,修复 notifyBytes 自建 listener 收不到回调的骨架缺陷
- app:feature/collect 九件套(权限分版动线/扫描/连接/会话编排/退避重连/激励下发/MonitorValue payload 入队/测点源 M5 预留接口),Tab.COLLECT 换挂 CollectWorkspaceFragment,删除占位 CollectFragment
- 修正存量协议测试断言:接口文档 140V 系算术笔误,按公式口径应为 140.39
验证::app:assembleDebug BUILD SUCCESSFUL(app-debug.apk 8.6MB);单测 15/15 绿(协议 12 + payload 3)
This commit is contained in:
阿猫
2026-09-04 01:55:48 +08:00
parent 85a144459e
commit 3cb82169b6
21 changed files with 2492 additions and 65 deletions

View File

@@ -11,7 +11,8 @@ class Vm208FrameParserTest {
/**
* 协议示例报文CC F12345 T334 E14039 SG AA 0D 0A
* → 频率 1234.5 Hz、温度 33.4 ℃、电压 140 V、质量 GOOD。
* → 频率 1234.5 Hz、温度 33.4 ℃、电压 140.39 V、质量 GOOD。
* 原文档「14039/100 = 140V」为算术笔误按公式 14039/100 = 140.39 断言。)
*/
private fun sampleFrame(): ByteArray =
"CC F12345 T334 E14039 SG AA".toByteArray(Charsets.US_ASCII) + byteArrayOf(0x0D, 0x0A)
@@ -23,7 +24,7 @@ class Vm208FrameParserTest {
assertEquals(1, readings.size)
assertEquals(1234.5, readings[0].frequency, 1e-9)
assertEquals(33.4, readings[0].temperature, 1e-9)
assertEquals(140.0, readings[0].voltage, 1e-9)
assertEquals(140.39, readings[0].voltage, 1e-9)
assertEquals(Vm208Quality.GOOD, readings[0].quality)
}