mirror of
https://github.com/valmojr/armatak.git
synced 2026-06-13 19:03:30 +00:00
refactored mavlink mocking to "uas" module on the extension
This commit is contained in:
178
src/uas/payload.rs
Normal file
178
src/uas/payload.rs
Normal file
@@ -0,0 +1,178 @@
|
||||
use arma_rs::{FromArma, FromArmaError};
|
||||
|
||||
pub struct UasTelemetryPayload {
|
||||
pub address: String,
|
||||
pub system_id: u8,
|
||||
pub component_id: u8,
|
||||
pub vehicle_type: u8,
|
||||
pub lat_deg: f64,
|
||||
pub lon_deg: f64,
|
||||
pub alt_msl_m: f32,
|
||||
pub rel_alt_m: f32,
|
||||
pub heading_deg: f32,
|
||||
pub groundspeed_mps: f32,
|
||||
pub roll_deg: f32,
|
||||
pub pitch_deg: f32,
|
||||
pub yaw_deg: f32,
|
||||
pub flying: bool,
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub struct UasSystemPayload {
|
||||
pub address: String,
|
||||
pub entity_uuid: String,
|
||||
pub callsign: String,
|
||||
pub vehicle_type: u8,
|
||||
pub lat_deg: f64,
|
||||
pub lon_deg: f64,
|
||||
pub alt_msl_m: f32,
|
||||
pub rel_alt_m: f32,
|
||||
pub heading_deg: f32,
|
||||
pub groundspeed_mps: f32,
|
||||
pub roll_deg: f32,
|
||||
pub pitch_deg: f32,
|
||||
pub yaw_deg: f32,
|
||||
pub flying: bool,
|
||||
pub gimbal_roll_deg: f32,
|
||||
pub gimbal_pitch_deg: f32,
|
||||
pub gimbal_yaw_deg: f32,
|
||||
pub video_uri: String,
|
||||
pub hfov_deg: f32,
|
||||
pub vfov_deg: f32,
|
||||
pub image_lat_deg: f64,
|
||||
pub image_lon_deg: f64,
|
||||
pub image_alt_msl_m: f32,
|
||||
}
|
||||
|
||||
impl FromArma for UasTelemetryPayload {
|
||||
fn from_arma(data: String) -> Result<Self, FromArmaError> {
|
||||
let (
|
||||
address,
|
||||
system_id,
|
||||
component_id,
|
||||
vehicle_type,
|
||||
lat_deg,
|
||||
lon_deg,
|
||||
alt_msl_m,
|
||||
rel_alt_m,
|
||||
heading_deg,
|
||||
groundspeed_mps,
|
||||
roll_deg,
|
||||
pitch_deg,
|
||||
yaw_deg,
|
||||
flying,
|
||||
) = <(
|
||||
String,
|
||||
i32,
|
||||
i32,
|
||||
i32,
|
||||
f64,
|
||||
f64,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
i32,
|
||||
)>::from_arma(data)?;
|
||||
|
||||
Ok(Self {
|
||||
address,
|
||||
system_id: system_id.clamp(1, 255) as u8,
|
||||
component_id: component_id.clamp(1, 255) as u8,
|
||||
vehicle_type: vehicle_type.clamp(0, 255) as u8,
|
||||
lat_deg,
|
||||
lon_deg,
|
||||
alt_msl_m,
|
||||
rel_alt_m,
|
||||
heading_deg,
|
||||
groundspeed_mps,
|
||||
roll_deg,
|
||||
pitch_deg,
|
||||
yaw_deg,
|
||||
flying: flying != 0,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl FromArma for UasSystemPayload {
|
||||
fn from_arma(data: String) -> Result<Self, FromArmaError> {
|
||||
let (
|
||||
address,
|
||||
entity_uuid,
|
||||
callsign,
|
||||
vehicle_type,
|
||||
lat_deg,
|
||||
lon_deg,
|
||||
alt_msl_m,
|
||||
rel_alt_m,
|
||||
heading_deg,
|
||||
groundspeed_mps,
|
||||
roll_deg,
|
||||
pitch_deg,
|
||||
yaw_deg,
|
||||
flying,
|
||||
gimbal_roll_deg,
|
||||
gimbal_pitch_deg,
|
||||
gimbal_yaw_deg,
|
||||
video_uri,
|
||||
hfov_deg,
|
||||
vfov_deg,
|
||||
image_lat_deg,
|
||||
image_lon_deg,
|
||||
image_alt_msl_m,
|
||||
) = <(
|
||||
String,
|
||||
String,
|
||||
String,
|
||||
i32,
|
||||
f64,
|
||||
f64,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
i32,
|
||||
f32,
|
||||
f32,
|
||||
f32,
|
||||
String,
|
||||
f32,
|
||||
f32,
|
||||
f64,
|
||||
f64,
|
||||
f32,
|
||||
)>::from_arma(data)?;
|
||||
|
||||
Ok(Self {
|
||||
address,
|
||||
entity_uuid,
|
||||
callsign,
|
||||
vehicle_type: vehicle_type.clamp(0, 255) as u8,
|
||||
lat_deg,
|
||||
lon_deg,
|
||||
alt_msl_m,
|
||||
rel_alt_m,
|
||||
heading_deg,
|
||||
groundspeed_mps,
|
||||
roll_deg,
|
||||
pitch_deg,
|
||||
yaw_deg,
|
||||
flying: flying != 0,
|
||||
gimbal_roll_deg,
|
||||
gimbal_pitch_deg,
|
||||
gimbal_yaw_deg,
|
||||
video_uri,
|
||||
hfov_deg,
|
||||
vfov_deg,
|
||||
image_lat_deg,
|
||||
image_lon_deg,
|
||||
image_alt_msl_m,
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user