pub mod ingest;
pub mod monitors;
pub mod scenario;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum LogFormat {
Ubx,
Rinex,
Android,
Nmea,
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct SatCn0 {
pub sat: String,
pub band: String,
pub cn0_dbhz: f64,
}
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReportedFix {
pub lat_deg: f64,
pub lon_deg: f64,
pub height_m: f64,
pub n_used: Option<u32>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct LogEpoch {
pub t_s: f64,
pub time_label: Option<String>,
pub cn0: Vec<SatCn0>,
pub agc: Option<f64>,
pub jam_ind: Option<f64>,
pub fix: Option<ReportedFix>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct Timeline {
pub epochs: Vec<LogEpoch>,
pub start_label: Option<String>,
pub observables: Vec<String>,
pub skipped_records: usize,
}