diff --git a/src/controller.h b/src/controller.h index a2cd0f4..3dde118 100644 --- a/src/controller.h +++ b/src/controller.h @@ -35,13 +35,14 @@ struct Controller { #ifdef VESC_CONTROLLER struct VescController { - VescController(HardwareSerial &serial, bool &enable) : - serial{serial}, enable{enable} + VescController(HardwareSerial &serial, bool &enable, bool &invert) : + serial{serial}, enable{enable}, invert{invert} { } std::reference_wrapper serial; bool &enable; + bool &invert; bldcMeasure values; diff --git a/src/displays/menus/settingsmenu.h b/src/displays/menus/settingsmenu.h index d081184..34dab16 100644 --- a/src/displays/menus/settingsmenu.h +++ b/src/displays/menus/settingsmenu.h @@ -56,6 +56,7 @@ class SettingsMenu : makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::bluetooth>>, #ifdef GLUMP_CONTROLLER makeComponent, SwitchScreenAction>, +#endif makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::hardware>>, makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::hardware>>, #endif diff --git a/src/globals.h b/src/globals.h index 489b8cf..a24a4f2 100644 --- a/src/globals.h +++ b/src/globals.h @@ -35,8 +35,8 @@ Controller back{Serial2, settings.controllerHardware.enableBackLeft, settings.co #endif #ifdef VESC_CONTROLLER -VescController one{Serial1, settings.controllerHardware.enableOne}; -VescController two{Serial2, settings.controllerHardware.enableTwo}; +VescController one{Serial1, settings.controllerHardware.enableOne, settings.controllerHardware.invertOne}; +VescController two{Serial2, settings.controllerHardware.enableTwo, settings.controllerHardware.invertTwo}; #endif struct { diff --git a/src/screens.h b/src/screens.h index 53386c6..8a28a08 100644 --- a/src/screens.h +++ b/src/screens.h @@ -103,8 +103,8 @@ union X { FrontRightMotorFeedbackDebugMenu frontRightMotorFeedbackDebugMenu; BackLeftMotorFeedbackDebugMenu backLeftMotorFeedbackDebugMenu; BackRightMotorFeedbackDebugMenu backRightMotorFeedbackDebugMenu; - BoardcomputerHardwareSettingsMenu boardcomputerHardwareSettingsMenu; #endif + BoardcomputerHardwareSettingsMenu boardcomputerHardwareSettingsMenu; PresetsMenu presetsMenu; #ifdef GLUMP_CONTROLLER @@ -232,8 +232,10 @@ template<> decltype(displays.bmsMenu) & #endif #ifdef GLUMP_CONTROLLER template<> decltype(displays.buzzerMenu) &getRefByType() { return displays.buzzerMenu; } +#endif template<> decltype(displays.boardcomputerHardwareSettingsMenu) &getRefByType() { return displays.boardcomputerHardwareSettingsMenu; } template<> decltype(displays.controllerHardwareSettingsMenu) &getRefByType() { return displays.controllerHardwareSettingsMenu; } +#ifdef GLUMP_CONTROLLER template<> decltype(displays.frontCommandDebugMenu) &getRefByType() { return displays.frontCommandDebugMenu; } template<> decltype(displays.backCommandDebugMenu) &getRefByType() { return displays.backCommandDebugMenu; } #endif diff --git a/src/utils.h b/src/utils.h index 33ba5e8..e573df7 100644 --- a/src/utils.h +++ b/src/utils.h @@ -279,7 +279,7 @@ void sendCommands() SetSerialPort(&controller.serial.get()); SetDebugSerialPort(NULL); - float current = mapfloat(controller.pwm, -1000, 1000, -settings.limits.iMotMax, settings.limits.iMotMax); + float current = mapfloat(controller.pwm * (controller.invert ? -1. : 1.), -1000, 1000, -settings.limits.iMotMax, settings.limits.iMotMax); Serial.println(String{"New current "} + current);