protoflight 0.1.5

Protoflight flight controller.
#[allow(unused)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum TaskInitError {
    BoardInitError,
    GyroPidSpawnFailed,
    MotorMixerSpawnFailed,
    RxSpawnFailed,

    GyroPidWatchCountTooLow,
    ImuIntegralWatchCountTooLow,
    RxWatchCountTooLow,
    SetpointWatchCountTooLow,
    AutopilotWatchCountTooLow,

    ConfigPublisherFailed,
    ConfigSubscriberFailed,

    FastConfigPublisherFailed,
    FastConfigSubscriberFailed,

    BatteryPublisherFailed,
    BatterySubscriberFailed,

    BarometerPublisherFailed,
    BarometerSubscriberFailed,

    FailsafePublisherFailed,
    FailsafeSubscriberFailed,

    GpsPublisherFailed,
    GpsSubscriberFailed,

    MagnetometerPublisherFailed,
    MagnetometerSubscriberFailed,

    OpticalFlowPublisherFailed,
    OpticalFlowSubscriberFailed,

    RangefinderPublisherFailed,
    RangefinderSubscriberFailed,
}

impl TaskInitError {
    #[allow(unused)]
    pub fn as_str(self) -> &'static str {
        match self {
            Self::BoardInitError => "BoardInitError",

            Self::GyroPidSpawnFailed => "GyroPidSpawnFailed",
            Self::MotorMixerSpawnFailed => "MotorMixerSpawnFailed",
            Self::RxSpawnFailed => "RxSpawnFailed",

            Self::GyroPidWatchCountTooLow => "GyroPidWatchCountTooLow",
            Self::ImuIntegralWatchCountTooLow => "ImuIntegralWatchCountTooLow",
            Self::RxWatchCountTooLow => "RxWatchCountTooLow",
            Self::SetpointWatchCountTooLow => "SetpointWatchCountTooLow",
            Self::AutopilotWatchCountTooLow => "AutopilotWatchCountTooLow",

            Self::ConfigPublisherFailed => "ConfigPublisherFailed",
            Self::ConfigSubscriberFailed => "ConfigSubscriberFailed",

            Self::FastConfigPublisherFailed => "FastConfigPublisherFailed",
            Self::FastConfigSubscriberFailed => "FastConfigSubscriberFailed",

            Self::BatteryPublisherFailed => "BatteryPublisherFailed",
            Self::BatterySubscriberFailed => "BatterySubscriberFailed",

            Self::BarometerPublisherFailed => "BarometerPublisherFailed",
            Self::BarometerSubscriberFailed => "BarometerSubscriberFailed",

            Self::FailsafePublisherFailed => "FailsafePublisherFailed",
            Self::FailsafeSubscriberFailed => "FailsafeSubscriberFailed",

            Self::GpsPublisherFailed => "GpsPublisherFailed",
            Self::GpsSubscriberFailed => "GpsSubscriberFailed",

            Self::MagnetometerPublisherFailed => "MagnetometerPublisherFailed",
            Self::MagnetometerSubscriberFailed => "MagnetometerSubscriberFailed",

            Self::OpticalFlowPublisherFailed => "OpticalFlowPublisherFailed",
            Self::OpticalFlowSubscriberFailed => "OpticalFlowSubscriberFailed",

            Self::RangefinderPublisherFailed => "RangefinderPublisherFailed",
            Self::RangefinderSubscriberFailed => "RangefinderSubscriberFailed",
        }
    }
}