diff --git a/xr_rm_teleop/test/test_initial_joint_pose.py b/xr_rm_teleop/test/test_initial_joint_pose.py index a611775..6572a13 100644 --- a/xr_rm_teleop/test/test_initial_joint_pose.py +++ b/xr_rm_teleop/test/test_initial_joint_pose.py @@ -412,7 +412,15 @@ def test_udp_fault_and_recovery_are_logged_once_per_transition() -> None: assert len([message for message in logger.infos if "恢复正常" in message]) == 1 -def test_connect_configures_udp_feedback_and_waits_for_first_frame(monkeypatch) -> None: +@pytest.mark.parametrize( + ("cycle_ms", "sdk_cycle"), + [(5, 1), (10, 2)], +) +def test_connect_converts_udp_feedback_cycle_to_sdk_units( + monkeypatch, + cycle_ms, + sdk_cycle, +) -> None: fake_sdk = _install_fake_sdk(monkeypatch) adapter = RealManAdapter( "127.0.0.1", @@ -420,6 +428,7 @@ def test_connect_configures_udp_feedback_and_waits_for_first_frame(monkeypatch) 0, "192.168.192.148", 8090, + realtime_push_cycle_ms=cycle_ms, configure_safety_limits=False, ) @@ -427,7 +436,13 @@ def test_connect_configures_udp_feedback_and_waits_for_first_frame(monkeypatch) arm = fake_sdk.RoboticArm.instance assert arm is not None - assert arm.config.args == (5, True, 8090, 0, "192.168.192.148") + assert arm.config.args == ( + sdk_cycle, + True, + 8090, + 0, + "192.168.192.148", + ) assert arm.callback is adapter._realtime_callback assert adapter.get_latest_joint_state() is not None assert not hasattr(adapter, "_feedback_thread") diff --git a/xr_rm_teleop/xr_rm_teleop/realman_adapter.py b/xr_rm_teleop/xr_rm_teleop/realman_adapter.py index 9855a75..ce33cf6 100755 --- a/xr_rm_teleop/xr_rm_teleop/realman_adapter.py +++ b/xr_rm_teleop/xr_rm_teleop/realman_adapter.py @@ -188,7 +188,7 @@ class RealManAdapter: self._realtime_callback ) config = rm_realtime_push_config_t( - self._realtime_push_cycle_ms, + self._realtime_push_cycle_ms // 5, True, self._realtime_push_port, 0,