1
회원 선택
MemberDetail
FAB 탭 → "BLE 라이브 수업"
›
2
기기 스캔
ScanScreen
Roomfit / WeSpion BLE 검색 → 탭 → 연결
›
3
컨텍스트 시드
LiveWorkoutFlow
member / trainer / center ID 를 liveWorkoutContextProvider 에 주입
›
4
운동 선택
ExerciseSelect
65개 카탈로그 + 그립 선택. session 시작.
›
5
실시간 측정
LiveWorkout
20Hz 모션 → FSM rep detection → MCV / ROM / Power 라이브.
›
6
세트 종료
PostSetSheet
RPE / RIR 입력 (Zourdos auto-pair).
›
7
세트 요약
SetSummary
VL%, Avg MCV, ROM. "다음 세트" / "수업 종료".
›
8
세션 마무리
SessionSummary
Foster sRPE + mood. finalizeSession 호출.
BLE 커맨드 시퀀스 (Studio → 기기) — SetExecutor.startSet 실제 순서
t = 0ms
→ OUT
StartReportCommand
20Hz 36B dev report 스트림 시작
+10ms
→ OUT
SetWeightModeCommand(L=mode, R=mode)
picker가 normal 외 모드 선택 시 송출 (PR #45)
+20ms
→ OUT
SetAutoWeightCommand(isActive=1)
자동 무게 모드 활성
+30ms
→ OUT
SetWeightPowerCommand(onOff=1)
모터 전류 ON → 사용자 체감 저항 시작
+50ms~
← IN
ReportResponse 0x41 (반복, 50ms 주기 / 36B)
position, speed, accel, icmd, ifb, fLoad, region…
세트 중
→ OUT
AdjustWeightCommand ±0.5/5kg
트레이너가 SetControlBar에서 조정 (PR #46)
완료 시
→ OUT
StopReport → SetAutoWeight(0) → SetWeightPower(0)
graceful 종료 (cutoffTrigger=user/velocity_loss_30/...)
비상정지
→ OUT
EmergencyStopCommand 0x64
단일 패킷 + forceComplete (cutoffTrigger=timeout)