fix: 阻止重复遥操作节点继续运行
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from launch import LaunchDescription
|
from launch import LaunchDescription
|
||||||
from launch.actions import DeclareLaunchArgument, OpaqueFunction
|
from launch.actions import DeclareLaunchArgument, OpaqueFunction, Shutdown
|
||||||
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
|
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
|
||||||
from launch_ros.actions import Node
|
from launch_ros.actions import Node
|
||||||
from launch_ros.substitutions import FindPackageShare
|
from launch_ros.substitutions import FindPackageShare
|
||||||
@@ -47,6 +47,9 @@ def _udp_receiver_node() -> Node:
|
|||||||
executable="udp_controller_receiver",
|
executable="udp_controller_receiver",
|
||||||
name="udp_controller_receiver",
|
name="udp_controller_receiver",
|
||||||
output="screen",
|
output="screen",
|
||||||
|
on_exit=Shutdown(
|
||||||
|
reason="XR UDP receiver exited; stopping arm_debug launch"
|
||||||
|
),
|
||||||
parameters=[{
|
parameters=[{
|
||||||
"udp_host": LaunchConfiguration("udp_host"),
|
"udp_host": LaunchConfiguration("udp_host"),
|
||||||
"udp_port": LaunchConfiguration("udp_port"),
|
"udp_port": LaunchConfiguration("udp_port"),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from launch import LaunchContext
|
from launch import LaunchContext
|
||||||
from launch.actions import DeclareLaunchArgument
|
from launch.actions import DeclareLaunchArgument, Shutdown
|
||||||
from launch.utilities import perform_substitutions
|
from launch.utilities import perform_substitutions
|
||||||
|
|
||||||
|
|
||||||
@@ -35,3 +35,9 @@ def test_mujoco_mode_requires_both_arms() -> None:
|
|||||||
|
|
||||||
with pytest.raises(ValueError, match="arm:=both"):
|
with pytest.raises(ValueError, match="arm:=both"):
|
||||||
arm_debug_launch._validate_mujoco_mode("left", True)
|
arm_debug_launch._validate_mujoco_mode("left", True)
|
||||||
|
|
||||||
|
|
||||||
|
def test_udp_receiver_exit_shuts_down_launch() -> None:
|
||||||
|
receiver = arm_debug_launch._udp_receiver_node()
|
||||||
|
|
||||||
|
assert isinstance(receiver._ExecuteLocal__on_exit, Shutdown)
|
||||||
|
|||||||
Reference in New Issue
Block a user