canboat_rs/pgns/
system_configuration_deprecated.rs

1use crate::nmea_option::NmeaOption;
2use crate::pgn_types::PgnType;
3pub const LENGTH: usize = 2usize;
4pub const PGN: u32 = 130580u32;
5#[derive(Debug)]
6pub enum Power {
7    No,
8    Yes,
9}
10impl bitfield::Into<u8> for Power {
11    fn into(self) -> u8 {
12        match self {
13            Self::No => 0u8,
14            Self::Yes => 1u8,
15        }
16    }
17}
18impl bitfield::Into<NmeaOption<Power>> for u8 {
19    fn into(self) -> NmeaOption<Power> {
20        match self {
21            0u8 => NmeaOption::Some(Power::No),
22            1u8 => NmeaOption::Some(Power::Yes),
23            _ => NmeaOption::None,
24        }
25    }
26}
27#[derive(Debug)]
28pub enum DefaultSettings {
29    Savecurrentsettingsasuserdefault,
30    Loaduserdefault,
31    Loadmanufacturerdefault,
32}
33impl bitfield::Into<u8> for DefaultSettings {
34    fn into(self) -> u8 {
35        match self {
36            Self::Savecurrentsettingsasuserdefault => 0u8,
37            Self::Loaduserdefault => 1u8,
38            Self::Loadmanufacturerdefault => 2u8,
39        }
40    }
41}
42impl bitfield::Into<NmeaOption<DefaultSettings>> for u8 {
43    fn into(self) -> NmeaOption<DefaultSettings> {
44        match self {
45            0u8 => NmeaOption::Some(DefaultSettings::Savecurrentsettingsasuserdefault),
46            1u8 => NmeaOption::Some(DefaultSettings::Loaduserdefault),
47            2u8 => NmeaOption::Some(DefaultSettings::Loadmanufacturerdefault),
48            _ => NmeaOption::None,
49        }
50    }
51}
52#[derive(Debug)]
53pub enum TunerRegions {
54    USA,
55    Europe,
56    Asia,
57    MiddleEast,
58    LatinAmerica,
59    Australia,
60    Russia,
61    Japan,
62}
63impl bitfield::Into<u8> for TunerRegions {
64    fn into(self) -> u8 {
65        match self {
66            Self::USA => 0u8,
67            Self::Europe => 1u8,
68            Self::Asia => 2u8,
69            Self::MiddleEast => 3u8,
70            Self::LatinAmerica => 4u8,
71            Self::Australia => 5u8,
72            Self::Russia => 6u8,
73            Self::Japan => 7u8,
74        }
75    }
76}
77impl bitfield::Into<NmeaOption<TunerRegions>> for u8 {
78    fn into(self) -> NmeaOption<TunerRegions> {
79        match self {
80            0u8 => NmeaOption::Some(TunerRegions::USA),
81            1u8 => NmeaOption::Some(TunerRegions::Europe),
82            2u8 => NmeaOption::Some(TunerRegions::Asia),
83            3u8 => NmeaOption::Some(TunerRegions::MiddleEast),
84            4u8 => NmeaOption::Some(TunerRegions::LatinAmerica),
85            5u8 => NmeaOption::Some(TunerRegions::Australia),
86            6u8 => NmeaOption::Some(TunerRegions::Russia),
87            7u8 => NmeaOption::Some(TunerRegions::Japan),
88            _ => NmeaOption::None,
89        }
90    }
91}
92use bitfield::bitfield;
93bitfield! {
94    #[doc = "System Configuration (deprecated)"] pub struct
95    SystemConfigurationDeprecated([u8]); impl Debug; u32; pub u8, from into NmeaOption <
96    Power >, power, _ : 1usize, 0usize; pub u8, from into NmeaOption < DefaultSettings >,
97    default_settings, _ : 3usize, 2usize; pub u8, from into NmeaOption < TunerRegions >,
98    tuner_regions, _ : 7usize, 4usize; pub max_favorites, _ : 15usize, 8usize;
99}
100impl SystemConfigurationDeprecated<&[u8]> {
101    pub fn is_match(&self, pgn: u32) -> bool {
102        130580u32 == pgn
103    }
104    pub fn get_pgn() -> u32 {
105        130580u32
106    }
107    pub fn get_message_type() -> PgnType {
108        PgnType::Fast
109    }
110}