feat: 添加 TODO 列表和更新协议文档,增强功能描述
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# TODO
|
||||
|
||||
- [ ] 补充 CLI 常用命令:读取当前位姿、写目标示教位姿、写纠偏量、持续轮询。
|
||||
- [ ] 明确标定参数协议:地址、数量、顺序、单位、数据类型和写入时机。
|
||||
- [ ] 实现标定参数写入接口,前提是协议参数定义已确认。
|
||||
- [ ] 增加 CLI 模拟模式测试,覆盖常用命令输出和参数校验。
|
||||
- [ ] 增加轮询异常测试,覆盖连续超时、恢复计数和不可恢复错误。
|
||||
- [ ] 增加真实串口硬件联调记录,确认状态字、当前位姿、模式写入、目标位姿和纠偏量读写。
|
||||
- [ ] 验证 20ms 轮询稳定性,记录实际通信耗时、超时次数和重试表现。
|
||||
- [ ] 完善发布元数据,包括 license、authors、classifiers 和 project URLs。
|
||||
- [ ] 评估是否加入类型检查和覆盖率统计。
|
||||
- [ ] 根据现场设备参数更新或补充配置示例。
|
||||
+1
-2
@@ -235,7 +235,7 @@
|
||||
|
||||
- (2)急停 5 只能退回 0 待机,不能直接进入运行模式;
|
||||
|
||||
- (3)标定完成自动回待机;
|
||||
- (3)标定完成自动回待机;控制器内部处理。
|
||||
|
||||
- (4)示教完成可切待机、在线跟踪、批量复现;
|
||||
|
||||
@@ -248,4 +248,3 @@
|
||||
- (1)视觉设备独立线程轮询周期:20ms;
|
||||
|
||||
- (2)单帧通信超时:50ms,超时重发,多次超时判定通信断开;
|
||||
|
||||
|
||||
@@ -106,7 +106,9 @@ def can_switch_mode(
|
||||
return True
|
||||
if current_mode is ModeCommand.EMERGENCY_STOP:
|
||||
return False
|
||||
if current_status in {DeviceStatus.CALIBRATION_DONE, DeviceStatus.TEACHING_DONE}:
|
||||
if current_status is DeviceStatus.CALIBRATION_DONE:
|
||||
return False
|
||||
if current_status is DeviceStatus.TEACHING_DONE:
|
||||
return target_mode in {
|
||||
ModeCommand.ONLINE_TRACKING,
|
||||
ModeCommand.TRAJECTORY_REPLAY,
|
||||
|
||||
@@ -27,6 +27,24 @@ def test_teaching_done_can_enter_tracking_or_replay() -> None:
|
||||
)
|
||||
|
||||
|
||||
def test_calibration_done_waits_for_controller_to_return_standby() -> None:
|
||||
assert can_switch_mode(
|
||||
ModeCommand.CALIBRATION,
|
||||
ModeCommand.STANDBY_RESET,
|
||||
DeviceStatus.CALIBRATION_DONE,
|
||||
)
|
||||
assert not can_switch_mode(
|
||||
ModeCommand.CALIBRATION,
|
||||
ModeCommand.ONLINE_TRACKING,
|
||||
DeviceStatus.CALIBRATION_DONE,
|
||||
)
|
||||
assert not can_switch_mode(
|
||||
ModeCommand.CALIBRATION,
|
||||
ModeCommand.TRAJECTORY_REPLAY,
|
||||
DeviceStatus.CALIBRATION_DONE,
|
||||
)
|
||||
|
||||
|
||||
def test_invalid_transition_raises() -> None:
|
||||
with pytest.raises(ValueError, match="Illegal mode switch"):
|
||||
validate_mode_switch(ModeCommand.EMERGENCY_STOP, ModeCommand.ONLINE_TRACKING)
|
||||
|
||||
Reference in New Issue
Block a user