ros2-interfaces-iron 0.0.2

Structs for Messages and Services listed by ROS Index for ROS2 Iron. Built around the `ros2-client` crate.
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Dvl {
    pub header: crate::std_msgs::msg::Header,
    pub velocity_mode: u8,
    pub dvl_type: u8,
    pub velocity: crate::geometry_msgs::msg::Vector3,
    pub velocity_covar: [f64; 9],
    pub altitude: f64,
    pub course_gnd: f64,
    pub speed_gnd: f64,
    pub num_good_beams: u8,
    pub sound_speed: f32,
    pub beam_ranges_valid: bool,
    pub beam_velocities_valid: bool,
    pub beam_unit_vec: [crate::geometry_msgs::msg::Vector3; 4],
    pub range: [f64; 4],
    pub range_covar: [f32; 4],
    pub beam_quality: [f32; 4],
    pub beam_velocity: [f32; 4],
    pub beam_velocity_covar: [f32; 4],
}

impl Dvl {
    pub const DVL_MODE_BOTTOM: u8 = 1;
    pub const DVL_MODE_WATER: u8 = 2;
    pub const DVL_TYPE_PISTON: u8 = 0;
    pub const DVL_TYPE_PHASED_ARRAY: u8 = 1;
}

impl Default for Dvl {
    fn default() -> Self {
        Dvl {
            header: crate::std_msgs::msg::Header::default(),
            velocity_mode: 0,
            dvl_type: 0,
            velocity: crate::geometry_msgs::msg::Vector3::default(),
            velocity_covar: [0.0; 9],
            altitude: 0.0,
            course_gnd: 0.0,
            speed_gnd: 0.0,
            num_good_beams: 0,
            sound_speed: 0.0,
            beam_ranges_valid: false,
            beam_velocities_valid: false,
            beam_unit_vec: core::array::from_fn(|_| crate::geometry_msgs::msg::Vector3::default()),
            range: [0.0; 4],
            range_covar: [0.0; 4],
            beam_quality: [0.0; 4],
            beam_velocity: [0.0; 4],
            beam_velocity_covar: [0.0; 4],
        }
    }
}

impl ros2_client::Message for Dvl {}