stateDiagram-v2 direction TB record_replay: 录制重放APP init: 初始化 app_loaded: 内置APP模式(通过SDK load_app接口选择要加载的APP) ext_ctrl: 外部控制模式(通过SDK switch_mode切换控制模式) offline_connected: USB已连接,等待控制服务 state app_loaded { direction LR state record_replay { direction TB replay_waiting: 重放初始状态 replay_ready: 重放准备就绪 replaying: 重放中 replay_paused: 重放暂停 idle: 空闲状态 record_sub: 录制部分 replay_sub: 重放部分 drag: 可拖拽状态 recording: 轨迹录制中 state record_sub { direction LR idle --> drag: 末端按键 [长按] drag --> idle: 末端按键 [长按] drag --> recording: 底座按键 [短按] recording --> drag: 底座按键 [短按] } state replay_sub { direction LR replay_waiting --> replay_ready: 底座按键 [短按] replay_ready --> replaying: 底座按键 [短按],开始重放 replaying --> replay_paused: 底座按键 [短按] replay_paused --> replaying: 底座按键 [短按] replaying --> replay_ready: 重放结束 replay_waiting --> idle: 底座按键 [双击] %% replay_ready --> idle: 底座按键 [双击] %% replay_paused --> idle: 底座按键 [双击] idle --> replay_waiting: 末端按键 [双击] } [*] --> idle: 初始化 } } [*] --> init: 上电 init --> offline_connected: USB连接 offline_connected --> ext_ctrl: 控制服务启动 ext_ctrl --> record_replay: 底座按键 [长按] app_loaded --> ext_ctrl: SDK调用 [unload_app] record_replay --> ext_ctrl: 底座按键 [长按] ext_ctrl --> app_loaded: SDK调用 [load_app] classDef cyan fill:#00FFFF,stroke:#007F7F,stroke-width:2px,color:#000; classDef blue fill:#7F7FFF,stroke:#3F3F7F,stroke-width:2px,color:#000; classDef red fill:#FF7F7F,stroke:#7F3F3F,stroke-width:2px,color:#000; classDef purple fill:#FF7FFF,stroke:#7F3F7F,stroke-width:2px,color:#000; classDef green fill:#7FFF7F,stroke:#3F7F3F,stroke-width:2px,color:#000; classDef yellow fill:#FFFF3F,stroke:#7F7F3F,stroke-width:2px,color:#000; classDef light_grey fill:#BBBBBB,stroke:#777777,stroke-width:2px,color:#000; class idle cyan class idle breathing class drag blue class recording blue class recording flowing class replay_waiting purple class replay_waiting flashing class replay_ready purple class replaying purple class replaying breathing class replay_paused purple class replay_paused flashing class planning_pos green class servo_pos_joint green class servo_pos_cart green class servo_vel_joint green class servo_vel_cart green class gravity_comp green class self_check yellow class calibration_needed yellow class calibration_needed flashing class offline_idle light_grey class offline_connected light_grey class offline_connected breathing class failure red