pub struct Meas3Measurement {
pub signal_index: u8,
pub signal_type: SignalType,
pub multipath_mm: i16,
pub carrier_multipath_1_512c: i8,
pub smoothing_correction_mm: i16,
pub lock_count: Option<u8>,
/* private fields */
}Expand description
A single decoded measurement from a Meas3 epoch.
Fields§
§signal_index: u8§signal_type: SignalType§multipath_mm: i16§carrier_multipath_1_512c: i8§smoothing_correction_mm: i16§lock_count: Option<u8>Implementations§
Source§impl Meas3Measurement
impl Meas3Measurement
pub fn pseudorange_m(&self) -> Option<f64>
pub fn carrier_phase_cycles(&self) -> Option<f64>
pub fn doppler_hz(&self) -> Option<f32>
Sourcepub fn cn0_dbhz(&self) -> Option<f32>
pub fn cn0_dbhz(&self) -> Option<f32>
Examples found in repository?
examples/decode_meas3.rs (line 80)
53fn flush_bundles(
54 bundles: &mut HashMap<u8, Meas3BlockSet>,
55 decoder: &mut Meas3Decoder,
56) -> Result<(), Box<dyn Error>> {
57 let mut antenna_ids: Vec<u8> = bundles.keys().copied().collect();
58 antenna_ids.sort_unstable();
59
60 for antenna_id in antenna_ids {
61 if let Some(block_set) = bundles.get(&antenna_id) {
62 if block_set.ranges.is_none() {
63 continue;
64 }
65
66 let epoch = decoder.decode_block_set(block_set)?;
67 println!(
68 "TOW {} WNc {} antenna {}: {} satellites, {} measurements",
69 epoch.tow_ms(),
70 epoch.wnc(),
71 epoch.antenna_id,
72 epoch.num_satellites(),
73 epoch.num_measurements()
74 );
75
76 for satellite in epoch.satellites.iter().take(4) {
77 let signal_summary = satellite
78 .measurements
79 .iter()
80 .map(|meas| match meas.cn0_dbhz() {
81 Some(cn0) => format!("{}:{cn0:.2}dB-Hz", meas.signal_type),
82 None => meas.signal_type.to_string(),
83 })
84 .collect::<Vec<_>>()
85 .join(", ");
86 println!(" {} {}", satellite.sat_id, signal_summary);
87 }
88 }
89 }
90
91 bundles.clear();
92 Ok(())
93}pub fn raw_cn0_dbhz(&self) -> Option<u8>
pub fn lock_time_ms(&self) -> Option<u32>
pub fn is_valid(&self) -> bool
pub fn smoothing_active(&self) -> bool
pub fn has_half_cycle_ambiguity(&self) -> bool
pub fn is_first_measurement(&self) -> bool
pub fn apme_in_sync(&self) -> bool
pub fn raw_pseudorange_m(&self) -> Option<f64>
pub fn raw_carrier_phase_cycles(&self) -> Option<f64>
Trait Implementations§
Source§impl Clone for Meas3Measurement
impl Clone for Meas3Measurement
Source§fn clone(&self) -> Meas3Measurement
fn clone(&self) -> Meas3Measurement
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for Meas3Measurement
impl RefUnwindSafe for Meas3Measurement
impl Send for Meas3Measurement
impl Sync for Meas3Measurement
impl Unpin for Meas3Measurement
impl UnsafeUnpin for Meas3Measurement
impl UnwindSafe for Meas3Measurement
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
Mutably borrows from an owned value. Read more