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); +} +}