use std::net::Ipv4Addr;
use chrono::{DateTime, Utc};
#[derive(Copy, Clone, Debug)]
pub enum GpsStatus {
SyncNmea,
NmeaOnly,
SyncOnly,
NotConnected,
}
#[derive(Debug, Clone, Copy)]
pub enum ReturnType {
Strongest,
Last,
Both,
}
#[derive(Debug, Clone, Copy)]
pub enum PowerLevel {
AutoNormalized,
AutoRaw,
Manual(u8),
}
#[derive(Debug, Clone, Copy)]
pub struct Status {
pub dt: DateTime<Utc>,
pub gps: GpsStatus,
pub temperature: u8,
pub version: u8,
pub lens_contamination: bool,
pub hot: bool,
pub cold: bool,
pub pps: bool,
pub gps_time: bool,
pub rpm: u16,
pub fov_start: u16,
pub fov_end: u16,
pub real_life_time: u16,
pub ip_source: Ipv4Addr,
pub ip_dest: Ipv4Addr,
pub return_type: ReturnType,
pub power_level: PowerLevel,
pub humidity: u8,
pub upper_threshold: u8,
pub lower_threshold: u8,
pub calib_dt: DateTime<Utc>,
}