어떤 화면에 어떤 모듈이, 어떤 데이터 흐름으로 연결되는지 — APP feat/spoex-v3 @ a6d67c6d / FW 2.0.0-dev.1
▸ v3 Report (17B): pos, force만 | Dev Report (41B): + spd, acc, Icmd, Ifb, fLoad, mode, region, weightSet
| 명령 | 코드 | 파라미터 | ACK |
|---|---|---|---|
| MODE_CHANGE | - | 0~5 (모드ID) | WeightModeResponse |
| SET_WEIGHT | - | 0.5kg 단위 (max 59kg) | WeightResponse |
| WEIGHT_ON/OFF | - | bool | OnOffResponse (점진 완료 후) |
| SET_RANGE | 0x62 | LOW/HIGH | SetRangeResponse |
| ECC_LEVEL | - | kg (Negative 모드) | EccLevelResponse |
| 0xF5 0x05 | debug | paramId + value (모드별) | 없음 |
| 0xF5 0x20/21 | debug | Dev Report ON/OFF | 없음 |
| 모드 | 메인 파라미터 | BLE 명령 | 보조 (접힘) |
|---|---|---|---|
| 0 Constant | 무게 (kg) | adjustWeightTo | SlewRate |
| 1 Negative | 기본부하 + 이완부하 | adjustWeightTo + sendEccLevel | SlewRate |
| 2 Band | 최대부하 | adjustWeightTo | SlewRate |
| 3 Isokinetic | 목표속도 + 상한클램프 | sendIsoPreset(Vt, Kp, Ki) | Kp, Ki, SlewRate |
| 4 Hydraulic | 강도(kg) + 개형(N) | sendHydroPreset(Vmax, N, minR) | Vmax, MinRatio, SlewRate |
| 5 Vibration | 주파수(Hz) + 진폭(kg) | sendVibPreset(freq, amp, maxR) | MaxRatio, SlewRate |
단일 진실 소스 — 모든 화면은 DeviceStateService를 통해 기기 상태를 읽음. BLE 응답을 직접 파싱하지 않음.
| DataSource | 용도 | FW Speed | 사용처 |
|---|---|---|---|
| BleVbtSource | 실기기 BLE | ✅ DeviceStateService.speedL/R | VBT 체험, 묠니르 |
| SimVbtSource | sine파 시뮬 | ❌ 미분 fallback | VBT 시뮬레이터 |
| TouchVbtSource | 터치 드래그 | ❌ | 터치 시뮬 위젯 |
| RandomVbtSource | 랜덤 패턴 | ❌ | 자동 데모 |