# dds_msg **Repository Path**: git_yandan/dds_msg ## Basic Information - **Project Name**: dds_msg - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-10 - **Last Updated**: 2025-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DDS msg #### 介绍 本仓库包含 DDS 使用的消息定义文件(IDL)。所有文件变更将自动同步至以下 Git 仓库地址: > https://gitee.com/git_yandan/dds_msg.git > ``` bash ## 可以用以下命令下载消息文件 git clone https://gitee.com/git_yandan/dds_msg.git ``` #### 编译 - C++消息编译方法: ```bash mkdir build cd build cmake .. make -j8 ``` 编译生成的头文件和源文件在build文件夹中 - python消息编译方法 ```bash <安装路径>/bin/idlc -l py xxx.idl ``` ​ 编译生成的文件在dds文件夹中 ## 接口说明 ### 1. 车辆状态反馈 (`chassis_status`) **消息流**:车辆控制器发布 **用途**:提供车辆的全面状态信息,包括基础状态、能源信息、位置姿态等。 **话题**:[platform_id]/VehicleStatus **消息结构:** ```idl struct chassis_status { string id; // 基础信息 uint8 gear; // 档位,N:1,D:2, R:3,P:4 uint8 chassis_err_code; // 底层控制器错误码 float speed; // 速度 (m/s) float brake_pedal_position; // 刹车踏板开度 0 ~ 100 float left_motor_rpm; // 左电机转速 float right_motor_rpm; // 右电机转速 uint8 mission_status; // 任务状态 (0-任务准备 1-任务进行中 2-任务完成 3-任务失败) // 能源信息 float battery_level; // 电量 (百分比或电压) float fuel_level; // 油量 (百分比或升) uint8 battery_status; // 电池组运行状态 (0-正常 1-警告 2-故障) uint8 engine_status; // 发动机运行状态 (0-关闭 1-怠速 2-运行 3-故障) // 位置信息 double longitude; // 车体当前经度 (WGS84坐标系) double latitude; // 车体当前纬度 (WGS84坐标系) // 姿态信息 float heading; // 车体方向角 (度,0-360) float roll; // 车体横滚角 (度) float pitch; // 车体俯仰角 (度) // 时间戳 int64 timestamp; // 消息时间戳 }; ``` ### 2. 遥控指令 (`remote_ctrl`) **消息流**:车辆控制器订阅 **用途**:接收远程控制指令,控制车辆运动。 **消息结构**: ```idl struct remote_ctrl { string platform_id; float exp_speed; // 期望速度,m/s float exp_radius; // 期望转弯半径,m,左负右正 }; ``` ### 3. 自主导航路径点 (`GPSPointsList`) **消息流**:车辆导航系统订阅 **用途**:下发自主导航的路径点序列,最少发两个点,第一个点发车辆当前位置。 **话题**:[platform_id]/GlobalNavigationPoints **消息结构**: ```idl struct GPSPoint { int32 longi; // 经度,单位为度,需要乘以0.000001转换为实际值 int32 lati; // 纬度,单位为度,需要乘以0.000001转换为实际值 int32 gauss_x; // 高斯平面坐标X,单位为厘米 int32 gauss_y; // 高斯平面坐标Y,单位为厘米 int32 azimuth; // 方位角,单位为度,需要乘以0.01转换为实际值 int32 v; // 速度,单位为毫米/秒 uint8 type; // 类型标识 }; struct GPSPointsList { sequence id; // 对象ID数组 uint8 mission_type; // 任务类型 uint8 formation; // 编队形态 uint16 tracking_target_id; // 跟踪目标ID uint16 tracking_distance; // 跟踪距离 sequence gps_list; // GPS点列表 }; ``` ### 4. 自动打击目标 (`TrackData`) **消息流**:车辆控制器订阅 **用途**:车辆接收打击目标位置,自动抵近并控制wqz打击。 **话题**:[platform_id]/TrackData **消息结构**: ```idl struct TrackData { string id; double lat; double lon; double timestamp; }; ``` ### 5. 车辆视频流地址获取 (`Json`) **消息流**:车辆控制器根据请求发布 **用途**:车辆视频流地址获取,需要往车辆控制器发送请求信息,车辆控制器收到请求后发布视频流地址。 **请求话题**:[platform_id]/command_center/GetRtspUrl/request **反馈话题**:[platform_id]/command_center/GetRtspUrl/response **请求、反馈消息结构**: ```idl struct Json { dds::std_msgs::Header header; string json_payload; // JSON字符串 }; // 请求示例:json_payload填任意字符串或空 // 反馈示例:{"rtsp_url": "http://172.16.16.62:8554/test"} ``` ### 6. WQZ状态(`weapon_status`) **消息流**:车辆控制器发布 **用途**:提供WQZ状态信息。 **话题**:[platform_id]/WeaponStatus **消息结构**: ```idl struct weapon_status { /* 载荷唯一标识 */ string id; /* 姿态与指向 */ double pitch; // 俯仰角,单位:度 double yaw; // 方位角,单位:度 /* 电机使能状态 */ uint8 yaw_motor_enabled; // 方位轴电机使能 uint8 pitch_motor_enabled; // 俯仰轴电机使能 /* 电源状态 */ uint8 power_48v_ok; // 是否上电 /* 视频流信息 */ string visible_light_video_url; // 可见光视频流地址 string infrared_video_url; // 红外视频流地址 /* 时间戳 */ int64 timestamp; // 毫秒级时间戳 }; ``` ### 7. WQZ设置 (`weapon_config`) **消息流**:车辆控制器订阅 **用途**:接收WQZ设置命令,对WQZ进行相应设置。 **话题**:[platform_id]/command_center/WeaponConfigService/request **消息结构**: ```idl struct weapon_config { uint8 power_48v_set; // true:上电;false:断电 uint8 yaw_motor_enable; // true:方位轴使能 uint8 pitch_motor_enable; // true:俯仰轴使能 int64 timestamp; // 发送端毫秒时间戳 }; ``` ### 8. WQZ手动控制 (`weapon_manual_cmd`) **消息流**:车辆控制器订阅 **用途**:接收WQZ手动控制命令,控制WQZ转台上下、左右转动。 **话题**:[platform_id]/command_center/WeaponManualCmdService/request **消息结构**: ```idl struct weapon_manual_cmd { int16 yaw_speed; // 方位角速度,-1000 ~ 1000 int16 pitch_speed; // 俯仰角速度,-1000 ~ 1000 int64 timestamp; // 毫秒级时间戳 }; ``` ### 9. WQZ击发 (`Json`) **消息流**:车辆控制器订阅 **用途**:控制WQZ击发。 **话题**:[platform_id]/command_center/WeaponTriggerCmdJsonService/request **消息结构**: ``` struct Json { dds::std_msgs::Header header; string json_payload; // JSON字符串 }; //示例:{"trigger_cmd": 1} ```