"""pod_control_test.py —— 吊舱目标识别/锁定控制器单元测试。 覆盖:arm_detection 发 0x07(识别,目标类型)+0x0F(自动锁定)、 stop_tracking 发 0x0E(停止)+0x08(识别关)。 """ from pod_bridge.protocol import ControlCode from task_runner.pod_control import PodController class FakeBridge: def __init__(self): self.sent = [] def send_control(self, cmd): self.sent.append(cmd) def test_arm_detection_sends_detect_and_autolock(): bridge = FakeBridge() pc = PodController(bridge, target_type=1) pc.arm_detection() assert len(bridge.sent) == 2 assert bridge.sent[0].code == ControlCode.TARGET_DETECT_ON assert bridge.sent[0].param_x == 1 # 目标类型 1 = 无人机 assert bridge.sent[1].code == ControlCode.AUTO_LOCK_ON_FOUND def test_arm_detection_default_target_type_is_person_vehicle(): bridge = FakeBridge() pc = PodController(bridge) # 默认 target_type=0 = 人/车 pc.arm_detection() assert bridge.sent[0].code == ControlCode.TARGET_DETECT_ON assert bridge.sent[0].param_x == 0 def test_stop_tracking_sends_stop_and_detect_off(): bridge = FakeBridge() pc = PodController(bridge) pc.stop_tracking() assert len(bridge.sent) == 2 assert bridge.sent[0].code == ControlCode.STOP_TRACK assert bridge.sent[1].code == ControlCode.TARGET_DETECT_OFF