From 9ed99f6c50ce433bad6931bd7c5cfb866f670dcb Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Wed, 3 Jun 2020 23:26:54 +0200 Subject: [PATCH] Added unified model mode --- src/unifiedmodelmode.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/unifiedmodelmode.h diff --git a/src/unifiedmodelmode.h b/src/unifiedmodelmode.h new file mode 100644 index 0000000..e119fc2 --- /dev/null +++ b/src/unifiedmodelmode.h @@ -0,0 +1,34 @@ +#pragma once + +#include + +#include + +#include "bobbycar-protocol/protocol.h" + +namespace { +enum class UnifiedModelMode +{ + Commutation, + Sinusodial, + FocVoltage, + FocSpeed, + FocTorque +}; + +std::pair split(UnifiedModelMode mode) +{ + switch (mode) + { + case UnifiedModelMode::Commutation: return std::make_pair(ControlType::Commutation, ControlMode::Voltage); + case UnifiedModelMode::Sinusodial: return std::make_pair(ControlType::Sinusoidal, ControlMode::Voltage); + case UnifiedModelMode::FocVoltage: return std::make_pair(ControlType::FieldOrientedControl, ControlMode::Voltage); + case UnifiedModelMode::FocSpeed: return std::make_pair(ControlType::FieldOrientedControl, ControlMode::Speed); + case UnifiedModelMode::FocTorque: return std::make_pair(ControlType::FieldOrientedControl, ControlMode::Torque); + } + + Serial.printf("Unknown UnifiedModelMode: %i\r\n", int(mode)); + + return std::make_pair(ControlType::FieldOrientedControl, ControlMode::OpenMode); +} +}