canboat_rs/pgns/
system_configuration_deprecated.rs1use 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}