#[cfg_attr(carla_version_0916, doc = "")]
#[cfg_attr(
carla_version_0916,
doc = " [`carla.WheelTelemetryData`]: https://carla.readthedocs.io/en/0.9.16/python_api/#carla.WheelTelemetryData"
)]
#[cfg_attr(carla_version_0915, doc = "")]
#[cfg_attr(
carla_version_0915,
doc = " [`carla.WheelTelemetryData`]: https://carla.readthedocs.io/en/0.9.15/python_api/#carla.WheelTelemetryData"
)]
#[cfg_attr(carla_version_0914, doc = "")]
#[cfg_attr(
carla_version_0914,
doc = " [`carla.WheelTelemetryData`]: https://carla.readthedocs.io/en/0.9.14/python_api/#carla.WheelTelemetryData"
)]
#[cfg(carla_version_0916)]
#[derive(Debug, Clone, PartialEq)]
pub struct WheelTelemetryData {
pub tire_friction: f32,
pub lat_slip: f32,
pub long_slip: f32,
pub omega: f32,
pub tire_load: f32,
pub normalized_tire_load: f32,
pub torque: f32,
pub long_force: f32,
pub lat_force: f32,
pub normalized_long_force: f32,
pub normalized_lat_force: f32,
}
#[cfg(carla_version_0916)]
impl From<carla_sys::carla::rpc::WheelTelemetryData> for WheelTelemetryData {
fn from(value: carla_sys::carla::rpc::WheelTelemetryData) -> Self {
Self {
tire_friction: value.tire_friction,
lat_slip: value.lat_slip,
long_slip: value.long_slip,
omega: value.omega,
tire_load: value.tire_load,
normalized_tire_load: value.normalized_tire_load,
torque: value.torque,
long_force: value.long_force,
lat_force: value.lat_force,
normalized_long_force: value.normalized_long_force,
normalized_lat_force: value.normalized_lat_force,
}
}
}
#[cfg_attr(carla_version_0916, doc = "")]
#[cfg_attr(
carla_version_0916,
doc = " [`carla.VehicleTelemetryData`]: https://carla.readthedocs.io/en/0.9.16/python_api/#carla.VehicleTelemetryData"
)]
#[cfg_attr(carla_version_0915, doc = "")]
#[cfg_attr(
carla_version_0915,
doc = " [`carla.VehicleTelemetryData`]: https://carla.readthedocs.io/en/0.9.15/python_api/#carla.VehicleTelemetryData"
)]
#[cfg_attr(carla_version_0914, doc = "")]
#[cfg_attr(
carla_version_0914,
doc = " [`carla.VehicleTelemetryData`]: https://carla.readthedocs.io/en/0.9.14/python_api/#carla.VehicleTelemetryData"
)]
#[cfg(carla_version_0916)]
#[derive(Debug, Clone, PartialEq)]
pub struct VehicleTelemetryData {
pub speed: f32,
pub steer: f32,
pub throttle: f32,
pub brake: f32,
pub engine_rpm: f32,
pub gear: i32,
pub drag: f32,
pub wheels: Vec<WheelTelemetryData>,
}
#[cfg(carla_version_0916)]
impl From<&carla_sys::carla_rust::rpc::FfiVehicleTelemetryData> for VehicleTelemetryData {
fn from(value: &carla_sys::carla_rust::rpc::FfiVehicleTelemetryData) -> Self {
let wheels_ref = value.wheels();
let mut wheels_vec = Vec::new();
for wheel in wheels_ref.iter() {
wheels_vec.push(WheelTelemetryData {
tire_friction: wheel.tire_friction,
lat_slip: wheel.lat_slip,
long_slip: wheel.long_slip,
omega: wheel.omega,
tire_load: wheel.tire_load,
normalized_tire_load: wheel.normalized_tire_load,
torque: wheel.torque,
long_force: wheel.long_force,
lat_force: wheel.lat_force,
normalized_long_force: wheel.normalized_long_force,
normalized_lat_force: wheel.normalized_lat_force,
});
}
Self {
speed: value.speed(),
steer: value.steer(),
throttle: value.throttle(),
brake: value.brake(),
engine_rpm: value.engine_rpm(),
gear: value.gear(),
drag: value.drag(),
wheels: wheels_vec,
}
}
}