From 7ea5bc7e3e7817e54bf7c06dedcdd8758a925632 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 7 Aug 2020 14:04:06 +1000 Subject: [PATCH] AP_EFI: use enum class for protocol --- libraries/AP_EFI/AP_EFI.cpp | 22 ++++++++++++---------- libraries/AP_EFI/AP_EFI.h | 12 ++++++------ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/libraries/AP_EFI/AP_EFI.cpp b/libraries/AP_EFI/AP_EFI.cpp index 3f4e1accf2..c43466a666 100644 --- a/libraries/AP_EFI/AP_EFI.cpp +++ b/libraries/AP_EFI/AP_EFI.cpp @@ -72,18 +72,20 @@ void AP_EFI::init(void) // Init called twice, perhaps return; } - // Check for MegaSquirt Serial EFI - switch (type) { - case EFI_COMMUNICATION_TYPE_NONE: - break; - case EFI_COMMUNICATION_TYPE_SERIAL_MS: - backend = new AP_EFI_Serial_MS(*this); - break; - case EFI_COMMUNICATION_TYPE_NWPMU: + switch ((Type)type.get()) { + case Type::NONE: + break; + case Type::MegaSquirt: + backend = new AP_EFI_Serial_MS(*this); + break; + case Type::NWPMU: #if HAL_EFI_NWPWU_ENABLED - backend = new AP_EFI_NWPMU(*this); + backend = new AP_EFI_NWPMU(*this); #endif - break; + break; + default: + gcs().send_text(MAV_SEVERITY_INFO, "Unknown EFI type"); + break; } } diff --git a/libraries/AP_EFI/AP_EFI.h b/libraries/AP_EFI/AP_EFI.h index d01913a0ad..16cd50de85 100644 --- a/libraries/AP_EFI/AP_EFI.h +++ b/libraries/AP_EFI/AP_EFI.h @@ -60,7 +60,7 @@ public: uint32_t get_rpm() const { return state.engine_speed_rpm; } // returns enabled state of EFI - bool enabled() const { return type != EFI_COMMUNICATION_TYPE_NONE; } + bool enabled() const { return type != Type::NONE; } bool is_healthy() const; @@ -68,10 +68,10 @@ public: static const struct AP_Param::GroupInfo var_info[]; // Backend driver types - enum EFI_Communication_Type { - EFI_COMMUNICATION_TYPE_NONE = 0, - EFI_COMMUNICATION_TYPE_SERIAL_MS = 1, - EFI_COMMUNICATION_TYPE_NWPMU = 2, + enum class Type : uint8_t { + NONE = 0, + MegaSquirt = 1, + NWPMU = 2, }; static AP_EFI *get_singleton(void) { @@ -91,7 +91,7 @@ protected: private: // Front End Parameters - AP_Int8 type; + AP_Enum type; // Tracking backends AP_EFI_Backend *backend;