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}