blackbox_log/opt/rustwide/workdir/src/generated/
failsafe_phase.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
2#[cfg_attr(feature = "_serde", derive(serde::Serialize))]
3#[non_exhaustive]
5pub enum FailsafePhase {
6 GpsRescue,
8 Idle,
10 Landed,
12 Landing,
14 ReturnToHome,
16 RxLossDetected,
18 RxLossIdle,
20 RxLossMonitoring,
22 RxLossRecovered,
24 Unknown,
25}
26#[allow(unused_qualifications)]
27impl crate::units::Flag for FailsafePhase {
28 fn as_name(&self) -> &'static str {
29 match self {
30 Self::GpsRescue => "GPS_RESCUE",
31 Self::Idle => "IDLE",
32 Self::Landed => "LANDED",
33 Self::Landing => "LANDING",
34 Self::ReturnToHome => "RETURN_TO_HOME",
35 Self::RxLossDetected => "RX_LOSS_DETECTED",
36 Self::RxLossIdle => "RX_LOSS_IDLE",
37 Self::RxLossMonitoring => "RX_LOSS_MONITORING",
38 Self::RxLossRecovered => "RX_LOSS_RECOVERED",
39 Self::Unknown => "UNKNOWN",
40 }
41 }
42}
43#[allow(unused_qualifications)]
44impl ::core::fmt::Display for FailsafePhase {
45 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
46 let s = <Self as crate::units::Flag>::as_name(self);
47 f.write_str(s)
48 }
49}
50#[allow(
51 unused_qualifications,
52 clippy::enum_glob_use,
53 clippy::match_same_arms,
54 clippy::unseparated_literal_suffix
55)]
56impl FailsafePhase {
57 pub(crate) fn new(raw: u32, fw: crate::headers::InternalFirmware) -> Self {
58 use crate::headers::InternalFirmware::*;
59 match (raw, fw) {
60 (
61 0u32,
62 Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5 | Inav5 | Inav6
63 | Inav7 | Inav8,
64 ) => Self::Idle,
65 (
66 1u32,
67 Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5 | Inav5 | Inav6
68 | Inav7 | Inav8,
69 ) => Self::RxLossDetected,
70 (2u32, Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5) => Self::Landing,
71 (2u32, Inav5 | Inav6 | Inav7 | Inav8) => Self::RxLossIdle,
72 (3u32, Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5) => Self::Landed,
73 (3u32, Inav5 | Inav6 | Inav7 | Inav8) => Self::ReturnToHome,
74 (4u32, Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5) => {
75 Self::RxLossMonitoring
76 }
77 (4u32, Inav5 | Inav6 | Inav7 | Inav8) => Self::Landing,
78 (5u32, Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5) => {
79 Self::RxLossRecovered
80 }
81 (5u32, Inav5 | Inav6 | Inav7 | Inav8) => Self::Landed,
82 (6u32, Betaflight4_2 | Betaflight4_3 | Betaflight4_4 | Betaflight4_5) => {
83 Self::GpsRescue
84 }
85 (6u32, Inav5 | Inav6 | Inav7 | Inav8) => Self::RxLossMonitoring,
86 (7u32, Inav5 | Inav6 | Inav7 | Inav8) => Self::RxLossRecovered,
87 _ => {
88 #[allow(clippy::redundant_closure_call)]
89 (|raw| tracing::debug!("invalid failsafe phase ({raw})"))(raw);
90 Self::Unknown
91 }
92 }
93 }
94}