pub struct GnssDegradationConfig {
pub scheduler: GnssScheduler,
pub fault: GnssFaultModel,
pub seed: u64,
}
Expand description
Configuration container for GNSS degradation in simulation.
This ties together a GnssScheduler
(which controls when GNSS fixes
are delivered), a GnssFaultModel
(which controls what corruption is
applied to each fix), and a random seed for reproducibility.
By keeping scheduling and fault injection separate but bundled here, you can easily swap in different scenarios or repeat experiments deterministically.
§Fields
scheduler
: Controls emission rate / outage pattern (e.g. pass-through, fixed-interval, duty-cycled).fault
: Corrupts measurement content (e.g. degraded AR(1) wander, slow bias, hijack).seed
: Seed for the internal random number generator, ensuring runs are reproducible for debugging and A/B comparisons.
§Example
use strapdown::messages::{GnssDegradationConfig, GnssScheduler, GnssFaultModel};
// Deliver GNSS every 10 seconds, with AR(1)-degraded accuracy.
let cfg = GnssDegradationConfig {
scheduler: GnssScheduler::FixedInterval { interval_s: 10.0, phase_s: 0.0 },
fault: GnssFaultModel::Degraded {
rho_pos: 0.99,
sigma_pos_m: 3.0,
rho_vel: 0.95,
sigma_vel_mps: 0.3,
r_scale: 5.0,
},
seed: 42,
};
Fields§
§scheduler: GnssScheduler
Scheduler that determines when GNSS measurements are emitted (e.g., pass-through, fixed interval, or duty-cycled).
fault: GnssFaultModel
Fault model that corrupts the contents of each emitted GNSS measurement (e.g., degraded wander, slow bias drift, hijack).
seed: u64
Random number generator seed for deterministic tests and reproducibility.
Use the same seed to repeat scenarios exactly; change it to get a new realization of stochastic processes such as AR(1) degradation.
Trait Implementations§
Source§impl Clone for GnssDegradationConfig
impl Clone for GnssDegradationConfig
Source§fn clone(&self) -> GnssDegradationConfig
fn clone(&self) -> GnssDegradationConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for GnssDegradationConfig
impl RefUnwindSafe for GnssDegradationConfig
impl Send for GnssDegradationConfig
impl Sync for GnssDegradationConfig
impl Unpin for GnssDegradationConfig
impl UnwindSafe for GnssDegradationConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.