diff --git a/main/utils.cpp b/main/utils.cpp index b148e7a..4acf525 100644 --- a/main/utils.cpp +++ b/main/utils.cpp @@ -306,3 +306,14 @@ void readPotis() gametrakDist = cpputils::mapValueClamped(raw_gametrakDist, settings.boardcomputerHardware.gametrakDistMin, settings.boardcomputerHardware.gametrakDistMax, 0., 1000.); #endif } + +float wattToAmpere(float watt) { + float voltage = std::max(controllers.front.feedback.batVoltage, controllers.back.feedback.batVoltage); + if (voltage > 50) voltage = 50; + if (voltage < 30) voltage = 30; + return watt / voltage; +} + +float wattToMotorCurrent(float watt) { + return wattToAmpere(watt) / 4; +} diff --git a/main/utils.h b/main/utils.h index fe15667..433ef2a 100644 --- a/main/utils.h +++ b/main/utils.h @@ -56,3 +56,5 @@ bool loadSettings(); bool saveSettings(); void updateAccumulators(); void readPotis(); +float wattToAmpere(float watt); +float wattToMotorCurrent(float watt);