#[derive(Debug, Clone, Copy, PartialEq)]
pub struct NavigationSolution {
pub visible_beacons: u8,
pub dilution_of_precision: f64,
pub position_error_m: f64,
}
impl NavigationSolution {
pub fn autonomous_surface_fix() -> Self {
Self {
visible_beacons: 4,
dilution_of_precision: 3.5,
position_error_m: 40.0,
}
}
pub fn is_robust(&self) -> bool {
self.visible_beacons >= 4
&& self.dilution_of_precision < 4.0
&& self.position_error_m < 50.0
}
}