收发测试

This commit is contained in:
2026-03-23 02:10:54 +08:00
parent 338ca9d2b7
commit f2ebd8e78a
7 changed files with 830 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
def generate_launch_description():
# 声明启动参数 - 基本设置
send_frequency_arg = DeclareLaunchArgument(
'send_frequency',
default_value='50.0',
description='CAN 发送频率 (Hz)'
)
tx_channel_arg = DeclareLaunchArgument(
'tx_channel',
default_value='0',
description='CAN 发送通道 (0 或 1)'
)
rx_channel_arg = DeclareLaunchArgument(
'rx_channel',
default_value='1',
description='CAN 接收通道 (0 或 1)'
)
# 声明启动参数 - CAN ID 设置
can_id_motion_arg = DeclareLaunchArgument(
'can_id_motion',
default_value='329', # 0x149 = 329
description='运动控制 CAN ID (十进制,默认 0x149=329)'
)
can_id_attack_arg = DeclareLaunchArgument(
'can_id_attack',
default_value='393', # 0x189 = 393
description='攻击控制 CAN ID (十进制,默认 0x189=393)'
)
# 声明启动参数 - CAN 帧格式
use_extended_frame_arg = DeclareLaunchArgument(
'use_extended_frame',
default_value='false',
description='是否使用扩展帧(29位ID)false=标准帧(11位)'
)
use_canfd_arg = DeclareLaunchArgument(
'use_canfd',
default_value='false',
description='是否使用 CANFDfalse=CAN2.0'
)
use_brs_arg = DeclareLaunchArgument(
'use_brs',
default_value='false',
description='CANFD 是否启用波特率切换(BRS)'
)
# 声明启动参数 - 接收过滤
rx_filter_enabled_arg = DeclareLaunchArgument(
'rx_filter_enabled',
default_value='false',
description='是否启用接收 ID 过滤'
)
rx_filter_id_min_arg = DeclareLaunchArgument(
'rx_filter_id_min',
default_value='0',
description='接收过滤 ID 最小值'
)
rx_filter_id_max_arg = DeclareLaunchArgument(
'rx_filter_id_max',
default_value='2047', # 0x7FF
description='接收过滤 ID 最大值'
)
# 创建节点
transmitter_test_node = Node(
package='amadeus_26',
executable='transmitter_test_node',
name='transmitter_test_node',
output='screen',
parameters=[{
'send_frequency': LaunchConfiguration('send_frequency'),
'tx_channel': LaunchConfiguration('tx_channel'),
'rx_channel': LaunchConfiguration('rx_channel'),
'can_id_motion': LaunchConfiguration('can_id_motion'),
'can_id_attack': LaunchConfiguration('can_id_attack'),
'use_extended_frame': LaunchConfiguration('use_extended_frame'),
'use_canfd': LaunchConfiguration('use_canfd'),
'use_brs': LaunchConfiguration('use_brs'),
'rx_filter_enabled': LaunchConfiguration('rx_filter_enabled'),
'rx_filter_id_min': LaunchConfiguration('rx_filter_id_min'),
'rx_filter_id_max': LaunchConfiguration('rx_filter_id_max'),
}],
)
return LaunchDescription([
send_frequency_arg,
tx_channel_arg,
rx_channel_arg,
can_id_motion_arg,
can_id_attack_arg,
use_extended_frame_arg,
use_canfd_arg,
use_brs_arg,
rx_filter_enabled_arg,
rx_filter_id_min_arg,
rx_filter_id_max_arg,
transmitter_test_node,
])