canboat_rs/pgns/
switch_bank_control.rs

1use crate::nmea_option::NmeaOption;
2use crate::pgn_types::PgnType;
3pub const LENGTH: usize = 8usize;
4pub const PGN: u32 = 127502u32;
5#[derive(Debug)]
6pub enum Switch1 {
7    Off,
8    On,
9}
10impl bitfield::Into<u8> for Switch1 {
11    fn into(self) -> u8 {
12        match self {
13            Self::Off => 0u8,
14            Self::On => 1u8,
15        }
16    }
17}
18impl bitfield::Into<NmeaOption<Switch1>> for u8 {
19    fn into(self) -> NmeaOption<Switch1> {
20        match self {
21            0u8 => NmeaOption::Some(Switch1::Off),
22            1u8 => NmeaOption::Some(Switch1::On),
23            _ => NmeaOption::None,
24        }
25    }
26}
27#[derive(Debug)]
28pub enum Switch2 {
29    Off,
30    On,
31}
32impl bitfield::Into<u8> for Switch2 {
33    fn into(self) -> u8 {
34        match self {
35            Self::Off => 0u8,
36            Self::On => 1u8,
37        }
38    }
39}
40impl bitfield::Into<NmeaOption<Switch2>> for u8 {
41    fn into(self) -> NmeaOption<Switch2> {
42        match self {
43            0u8 => NmeaOption::Some(Switch2::Off),
44            1u8 => NmeaOption::Some(Switch2::On),
45            _ => NmeaOption::None,
46        }
47    }
48}
49#[derive(Debug)]
50pub enum Switch3 {
51    Off,
52    On,
53}
54impl bitfield::Into<u8> for Switch3 {
55    fn into(self) -> u8 {
56        match self {
57            Self::Off => 0u8,
58            Self::On => 1u8,
59        }
60    }
61}
62impl bitfield::Into<NmeaOption<Switch3>> for u8 {
63    fn into(self) -> NmeaOption<Switch3> {
64        match self {
65            0u8 => NmeaOption::Some(Switch3::Off),
66            1u8 => NmeaOption::Some(Switch3::On),
67            _ => NmeaOption::None,
68        }
69    }
70}
71#[derive(Debug)]
72pub enum Switch4 {
73    Off,
74    On,
75}
76impl bitfield::Into<u8> for Switch4 {
77    fn into(self) -> u8 {
78        match self {
79            Self::Off => 0u8,
80            Self::On => 1u8,
81        }
82    }
83}
84impl bitfield::Into<NmeaOption<Switch4>> for u8 {
85    fn into(self) -> NmeaOption<Switch4> {
86        match self {
87            0u8 => NmeaOption::Some(Switch4::Off),
88            1u8 => NmeaOption::Some(Switch4::On),
89            _ => NmeaOption::None,
90        }
91    }
92}
93#[derive(Debug)]
94pub enum Switch5 {
95    Off,
96    On,
97}
98impl bitfield::Into<u8> for Switch5 {
99    fn into(self) -> u8 {
100        match self {
101            Self::Off => 0u8,
102            Self::On => 1u8,
103        }
104    }
105}
106impl bitfield::Into<NmeaOption<Switch5>> for u8 {
107    fn into(self) -> NmeaOption<Switch5> {
108        match self {
109            0u8 => NmeaOption::Some(Switch5::Off),
110            1u8 => NmeaOption::Some(Switch5::On),
111            _ => NmeaOption::None,
112        }
113    }
114}
115#[derive(Debug)]
116pub enum Switch6 {
117    Off,
118    On,
119}
120impl bitfield::Into<u8> for Switch6 {
121    fn into(self) -> u8 {
122        match self {
123            Self::Off => 0u8,
124            Self::On => 1u8,
125        }
126    }
127}
128impl bitfield::Into<NmeaOption<Switch6>> for u8 {
129    fn into(self) -> NmeaOption<Switch6> {
130        match self {
131            0u8 => NmeaOption::Some(Switch6::Off),
132            1u8 => NmeaOption::Some(Switch6::On),
133            _ => NmeaOption::None,
134        }
135    }
136}
137#[derive(Debug)]
138pub enum Switch7 {
139    Off,
140    On,
141}
142impl bitfield::Into<u8> for Switch7 {
143    fn into(self) -> u8 {
144        match self {
145            Self::Off => 0u8,
146            Self::On => 1u8,
147        }
148    }
149}
150impl bitfield::Into<NmeaOption<Switch7>> for u8 {
151    fn into(self) -> NmeaOption<Switch7> {
152        match self {
153            0u8 => NmeaOption::Some(Switch7::Off),
154            1u8 => NmeaOption::Some(Switch7::On),
155            _ => NmeaOption::None,
156        }
157    }
158}
159#[derive(Debug)]
160pub enum Switch8 {
161    Off,
162    On,
163}
164impl bitfield::Into<u8> for Switch8 {
165    fn into(self) -> u8 {
166        match self {
167            Self::Off => 0u8,
168            Self::On => 1u8,
169        }
170    }
171}
172impl bitfield::Into<NmeaOption<Switch8>> for u8 {
173    fn into(self) -> NmeaOption<Switch8> {
174        match self {
175            0u8 => NmeaOption::Some(Switch8::Off),
176            1u8 => NmeaOption::Some(Switch8::On),
177            _ => NmeaOption::None,
178        }
179    }
180}
181#[derive(Debug)]
182pub enum Switch9 {
183    Off,
184    On,
185}
186impl bitfield::Into<u8> for Switch9 {
187    fn into(self) -> u8 {
188        match self {
189            Self::Off => 0u8,
190            Self::On => 1u8,
191        }
192    }
193}
194impl bitfield::Into<NmeaOption<Switch9>> for u8 {
195    fn into(self) -> NmeaOption<Switch9> {
196        match self {
197            0u8 => NmeaOption::Some(Switch9::Off),
198            1u8 => NmeaOption::Some(Switch9::On),
199            _ => NmeaOption::None,
200        }
201    }
202}
203#[derive(Debug)]
204pub enum Switch10 {
205    Off,
206    On,
207}
208impl bitfield::Into<u8> for Switch10 {
209    fn into(self) -> u8 {
210        match self {
211            Self::Off => 0u8,
212            Self::On => 1u8,
213        }
214    }
215}
216impl bitfield::Into<NmeaOption<Switch10>> for u8 {
217    fn into(self) -> NmeaOption<Switch10> {
218        match self {
219            0u8 => NmeaOption::Some(Switch10::Off),
220            1u8 => NmeaOption::Some(Switch10::On),
221            _ => NmeaOption::None,
222        }
223    }
224}
225#[derive(Debug)]
226pub enum Switch11 {
227    Off,
228    On,
229}
230impl bitfield::Into<u8> for Switch11 {
231    fn into(self) -> u8 {
232        match self {
233            Self::Off => 0u8,
234            Self::On => 1u8,
235        }
236    }
237}
238impl bitfield::Into<NmeaOption<Switch11>> for u8 {
239    fn into(self) -> NmeaOption<Switch11> {
240        match self {
241            0u8 => NmeaOption::Some(Switch11::Off),
242            1u8 => NmeaOption::Some(Switch11::On),
243            _ => NmeaOption::None,
244        }
245    }
246}
247#[derive(Debug)]
248pub enum Switch12 {
249    Off,
250    On,
251}
252impl bitfield::Into<u8> for Switch12 {
253    fn into(self) -> u8 {
254        match self {
255            Self::Off => 0u8,
256            Self::On => 1u8,
257        }
258    }
259}
260impl bitfield::Into<NmeaOption<Switch12>> for u8 {
261    fn into(self) -> NmeaOption<Switch12> {
262        match self {
263            0u8 => NmeaOption::Some(Switch12::Off),
264            1u8 => NmeaOption::Some(Switch12::On),
265            _ => NmeaOption::None,
266        }
267    }
268}
269#[derive(Debug)]
270pub enum Switch13 {
271    Off,
272    On,
273}
274impl bitfield::Into<u8> for Switch13 {
275    fn into(self) -> u8 {
276        match self {
277            Self::Off => 0u8,
278            Self::On => 1u8,
279        }
280    }
281}
282impl bitfield::Into<NmeaOption<Switch13>> for u8 {
283    fn into(self) -> NmeaOption<Switch13> {
284        match self {
285            0u8 => NmeaOption::Some(Switch13::Off),
286            1u8 => NmeaOption::Some(Switch13::On),
287            _ => NmeaOption::None,
288        }
289    }
290}
291#[derive(Debug)]
292pub enum Switch14 {
293    Off,
294    On,
295}
296impl bitfield::Into<u8> for Switch14 {
297    fn into(self) -> u8 {
298        match self {
299            Self::Off => 0u8,
300            Self::On => 1u8,
301        }
302    }
303}
304impl bitfield::Into<NmeaOption<Switch14>> for u8 {
305    fn into(self) -> NmeaOption<Switch14> {
306        match self {
307            0u8 => NmeaOption::Some(Switch14::Off),
308            1u8 => NmeaOption::Some(Switch14::On),
309            _ => NmeaOption::None,
310        }
311    }
312}
313#[derive(Debug)]
314pub enum Switch15 {
315    Off,
316    On,
317}
318impl bitfield::Into<u8> for Switch15 {
319    fn into(self) -> u8 {
320        match self {
321            Self::Off => 0u8,
322            Self::On => 1u8,
323        }
324    }
325}
326impl bitfield::Into<NmeaOption<Switch15>> for u8 {
327    fn into(self) -> NmeaOption<Switch15> {
328        match self {
329            0u8 => NmeaOption::Some(Switch15::Off),
330            1u8 => NmeaOption::Some(Switch15::On),
331            _ => NmeaOption::None,
332        }
333    }
334}
335#[derive(Debug)]
336pub enum Switch16 {
337    Off,
338    On,
339}
340impl bitfield::Into<u8> for Switch16 {
341    fn into(self) -> u8 {
342        match self {
343            Self::Off => 0u8,
344            Self::On => 1u8,
345        }
346    }
347}
348impl bitfield::Into<NmeaOption<Switch16>> for u8 {
349    fn into(self) -> NmeaOption<Switch16> {
350        match self {
351            0u8 => NmeaOption::Some(Switch16::Off),
352            1u8 => NmeaOption::Some(Switch16::On),
353            _ => NmeaOption::None,
354        }
355    }
356}
357#[derive(Debug)]
358pub enum Switch17 {
359    Off,
360    On,
361}
362impl bitfield::Into<u8> for Switch17 {
363    fn into(self) -> u8 {
364        match self {
365            Self::Off => 0u8,
366            Self::On => 1u8,
367        }
368    }
369}
370impl bitfield::Into<NmeaOption<Switch17>> for u8 {
371    fn into(self) -> NmeaOption<Switch17> {
372        match self {
373            0u8 => NmeaOption::Some(Switch17::Off),
374            1u8 => NmeaOption::Some(Switch17::On),
375            _ => NmeaOption::None,
376        }
377    }
378}
379#[derive(Debug)]
380pub enum Switch18 {
381    Off,
382    On,
383}
384impl bitfield::Into<u8> for Switch18 {
385    fn into(self) -> u8 {
386        match self {
387            Self::Off => 0u8,
388            Self::On => 1u8,
389        }
390    }
391}
392impl bitfield::Into<NmeaOption<Switch18>> for u8 {
393    fn into(self) -> NmeaOption<Switch18> {
394        match self {
395            0u8 => NmeaOption::Some(Switch18::Off),
396            1u8 => NmeaOption::Some(Switch18::On),
397            _ => NmeaOption::None,
398        }
399    }
400}
401#[derive(Debug)]
402pub enum Switch19 {
403    Off,
404    On,
405}
406impl bitfield::Into<u8> for Switch19 {
407    fn into(self) -> u8 {
408        match self {
409            Self::Off => 0u8,
410            Self::On => 1u8,
411        }
412    }
413}
414impl bitfield::Into<NmeaOption<Switch19>> for u8 {
415    fn into(self) -> NmeaOption<Switch19> {
416        match self {
417            0u8 => NmeaOption::Some(Switch19::Off),
418            1u8 => NmeaOption::Some(Switch19::On),
419            _ => NmeaOption::None,
420        }
421    }
422}
423#[derive(Debug)]
424pub enum Switch20 {
425    Off,
426    On,
427}
428impl bitfield::Into<u8> for Switch20 {
429    fn into(self) -> u8 {
430        match self {
431            Self::Off => 0u8,
432            Self::On => 1u8,
433        }
434    }
435}
436impl bitfield::Into<NmeaOption<Switch20>> for u8 {
437    fn into(self) -> NmeaOption<Switch20> {
438        match self {
439            0u8 => NmeaOption::Some(Switch20::Off),
440            1u8 => NmeaOption::Some(Switch20::On),
441            _ => NmeaOption::None,
442        }
443    }
444}
445#[derive(Debug)]
446pub enum Switch21 {
447    Off,
448    On,
449}
450impl bitfield::Into<u8> for Switch21 {
451    fn into(self) -> u8 {
452        match self {
453            Self::Off => 0u8,
454            Self::On => 1u8,
455        }
456    }
457}
458impl bitfield::Into<NmeaOption<Switch21>> for u8 {
459    fn into(self) -> NmeaOption<Switch21> {
460        match self {
461            0u8 => NmeaOption::Some(Switch21::Off),
462            1u8 => NmeaOption::Some(Switch21::On),
463            _ => NmeaOption::None,
464        }
465    }
466}
467#[derive(Debug)]
468pub enum Switch22 {
469    Off,
470    On,
471}
472impl bitfield::Into<u8> for Switch22 {
473    fn into(self) -> u8 {
474        match self {
475            Self::Off => 0u8,
476            Self::On => 1u8,
477        }
478    }
479}
480impl bitfield::Into<NmeaOption<Switch22>> for u8 {
481    fn into(self) -> NmeaOption<Switch22> {
482        match self {
483            0u8 => NmeaOption::Some(Switch22::Off),
484            1u8 => NmeaOption::Some(Switch22::On),
485            _ => NmeaOption::None,
486        }
487    }
488}
489#[derive(Debug)]
490pub enum Switch23 {
491    Off,
492    On,
493}
494impl bitfield::Into<u8> for Switch23 {
495    fn into(self) -> u8 {
496        match self {
497            Self::Off => 0u8,
498            Self::On => 1u8,
499        }
500    }
501}
502impl bitfield::Into<NmeaOption<Switch23>> for u8 {
503    fn into(self) -> NmeaOption<Switch23> {
504        match self {
505            0u8 => NmeaOption::Some(Switch23::Off),
506            1u8 => NmeaOption::Some(Switch23::On),
507            _ => NmeaOption::None,
508        }
509    }
510}
511#[derive(Debug)]
512pub enum Switch24 {
513    Off,
514    On,
515}
516impl bitfield::Into<u8> for Switch24 {
517    fn into(self) -> u8 {
518        match self {
519            Self::Off => 0u8,
520            Self::On => 1u8,
521        }
522    }
523}
524impl bitfield::Into<NmeaOption<Switch24>> for u8 {
525    fn into(self) -> NmeaOption<Switch24> {
526        match self {
527            0u8 => NmeaOption::Some(Switch24::Off),
528            1u8 => NmeaOption::Some(Switch24::On),
529            _ => NmeaOption::None,
530        }
531    }
532}
533#[derive(Debug)]
534pub enum Switch25 {
535    Off,
536    On,
537}
538impl bitfield::Into<u8> for Switch25 {
539    fn into(self) -> u8 {
540        match self {
541            Self::Off => 0u8,
542            Self::On => 1u8,
543        }
544    }
545}
546impl bitfield::Into<NmeaOption<Switch25>> for u8 {
547    fn into(self) -> NmeaOption<Switch25> {
548        match self {
549            0u8 => NmeaOption::Some(Switch25::Off),
550            1u8 => NmeaOption::Some(Switch25::On),
551            _ => NmeaOption::None,
552        }
553    }
554}
555#[derive(Debug)]
556pub enum Switch26 {
557    Off,
558    On,
559}
560impl bitfield::Into<u8> for Switch26 {
561    fn into(self) -> u8 {
562        match self {
563            Self::Off => 0u8,
564            Self::On => 1u8,
565        }
566    }
567}
568impl bitfield::Into<NmeaOption<Switch26>> for u8 {
569    fn into(self) -> NmeaOption<Switch26> {
570        match self {
571            0u8 => NmeaOption::Some(Switch26::Off),
572            1u8 => NmeaOption::Some(Switch26::On),
573            _ => NmeaOption::None,
574        }
575    }
576}
577#[derive(Debug)]
578pub enum Switch27 {
579    Off,
580    On,
581}
582impl bitfield::Into<u8> for Switch27 {
583    fn into(self) -> u8 {
584        match self {
585            Self::Off => 0u8,
586            Self::On => 1u8,
587        }
588    }
589}
590impl bitfield::Into<NmeaOption<Switch27>> for u8 {
591    fn into(self) -> NmeaOption<Switch27> {
592        match self {
593            0u8 => NmeaOption::Some(Switch27::Off),
594            1u8 => NmeaOption::Some(Switch27::On),
595            _ => NmeaOption::None,
596        }
597    }
598}
599#[derive(Debug)]
600pub enum Switch28 {
601    Off,
602    On,
603}
604impl bitfield::Into<u8> for Switch28 {
605    fn into(self) -> u8 {
606        match self {
607            Self::Off => 0u8,
608            Self::On => 1u8,
609        }
610    }
611}
612impl bitfield::Into<NmeaOption<Switch28>> for u8 {
613    fn into(self) -> NmeaOption<Switch28> {
614        match self {
615            0u8 => NmeaOption::Some(Switch28::Off),
616            1u8 => NmeaOption::Some(Switch28::On),
617            _ => NmeaOption::None,
618        }
619    }
620}
621use bitfield::bitfield;
622bitfield! {
623    #[doc = "Switch Bank Control"] pub struct SwitchBankControl([u8]); impl Debug; u32;
624    pub instance, _ : 7usize, 0usize; pub u8, from into NmeaOption < Switch1 >, switch_1,
625    _ : 9usize, 8usize; pub u8, from into NmeaOption < Switch2 >, switch_2, _ : 11usize,
626    10usize; pub u8, from into NmeaOption < Switch3 >, switch_3, _ : 13usize, 12usize;
627    pub u8, from into NmeaOption < Switch4 >, switch_4, _ : 15usize, 14usize; pub u8,
628    from into NmeaOption < Switch5 >, switch_5, _ : 17usize, 16usize; pub u8, from into
629    NmeaOption < Switch6 >, switch_6, _ : 19usize, 18usize; pub u8, from into NmeaOption
630    < Switch7 >, switch_7, _ : 21usize, 20usize; pub u8, from into NmeaOption < Switch8
631    >, switch_8, _ : 23usize, 22usize; pub u8, from into NmeaOption < Switch9 >,
632    switch_9, _ : 25usize, 24usize; pub u8, from into NmeaOption < Switch10 >, switch_10,
633    _ : 27usize, 26usize; pub u8, from into NmeaOption < Switch11 >, switch_11, _ :
634    29usize, 28usize; pub u8, from into NmeaOption < Switch12 >, switch_12, _ : 31usize,
635    30usize; pub u8, from into NmeaOption < Switch13 >, switch_13, _ : 33usize, 32usize;
636    pub u8, from into NmeaOption < Switch14 >, switch_14, _ : 35usize, 34usize; pub u8,
637    from into NmeaOption < Switch15 >, switch_15, _ : 37usize, 36usize; pub u8, from into
638    NmeaOption < Switch16 >, switch_16, _ : 39usize, 38usize; pub u8, from into
639    NmeaOption < Switch17 >, switch_17, _ : 41usize, 40usize; pub u8, from into
640    NmeaOption < Switch18 >, switch_18, _ : 43usize, 42usize; pub u8, from into
641    NmeaOption < Switch19 >, switch_19, _ : 45usize, 44usize; pub u8, from into
642    NmeaOption < Switch20 >, switch_20, _ : 47usize, 46usize; pub u8, from into
643    NmeaOption < Switch21 >, switch_21, _ : 49usize, 48usize; pub u8, from into
644    NmeaOption < Switch22 >, switch_22, _ : 51usize, 50usize; pub u8, from into
645    NmeaOption < Switch23 >, switch_23, _ : 53usize, 52usize; pub u8, from into
646    NmeaOption < Switch24 >, switch_24, _ : 55usize, 54usize; pub u8, from into
647    NmeaOption < Switch25 >, switch_25, _ : 57usize, 56usize; pub u8, from into
648    NmeaOption < Switch26 >, switch_26, _ : 59usize, 58usize; pub u8, from into
649    NmeaOption < Switch27 >, switch_27, _ : 61usize, 60usize; pub u8, from into
650    NmeaOption < Switch28 >, switch_28, _ : 63usize, 62usize;
651}
652impl SwitchBankControl<&[u8]> {
653    pub fn is_match(&self, pgn: u32) -> bool {
654        127502u32 == pgn
655    }
656    pub fn get_pgn() -> u32 {
657        127502u32
658    }
659    pub fn get_message_type() -> PgnType {
660        PgnType::Single
661    }
662}