Fix charge calculation

This commit is contained in:
Phillip Kühne 2025-02-15 22:41:34 +01:00
parent ca37aa972b
commit 7ed58afea0
Signed by: phillip
GPG Key ID: E4C1C4D2F90902AA
6 changed files with 14 additions and 13 deletions

View File

@ -98,6 +98,6 @@ float ColorDetection::modelCurrentConsumption() {
}; };
float ColorDetection::modelChargeConsumption(uint16_t durationMs) { float ColorDetection::modelChargeConsumption(uint16_t durationMs) {
return PowerParameters::CurrentConsumptions::CURRENT_SENSOR_RGBW * return (PowerParameters::CurrentConsumptions::CURRENT_SENSOR_RGBW *
durationMs * 10e6; durationMs) / 10e6f;
} }

View File

@ -115,10 +115,10 @@ float InfraredLED::modelChargeConsumptionOn(uint16_t durationMs) {
constexpr float resolution = 1 << DUTY_RESOLUTION; constexpr float resolution = 1 << DUTY_RESOLUTION;
if (this->ledPin == IR_BOTTOM_PIN) { if (this->ledPin == IR_BOTTOM_PIN) {
return durationMs * return durationMs *
PowerParameters::CurrentConsumptions::CURRENT_LED_IR_BOTTOM * 10e6; (PowerParameters::CurrentConsumptions::CURRENT_LED_IR_BOTTOM) / 10e6f;
} else if (this->ledPin == IR_FRONT_PIN) { } else if (this->ledPin == IR_FRONT_PIN) {
return durationMs * return durationMs *
PowerParameters::CurrentConsumptions::CURRENT_LED_IR_FRONT * 10e6; (PowerParameters::CurrentConsumptions::CURRENT_LED_IR_FRONT) / 10e6f;
} }
return NAN; return NAN;
} }
@ -126,6 +126,6 @@ float InfraredLED::modelChargeConsumptionOn(uint16_t durationMs) {
float InfraredLED::modelChargeConsumptionSendFrequency(uint16_t durationMs) { float InfraredLED::modelChargeConsumptionSendFrequency(uint16_t durationMs) {
// Float to force float division without casting // Float to force float division without casting
return durationMs * this->modelCurrentConsumption(DUTY_CYCLE_FREQUENCY) * return (durationMs * this->modelCurrentConsumption(DUTY_CYCLE_FREQUENCY)) /
10e6; 10e6f;
} }

View File

@ -145,6 +145,7 @@ float LightDetection::modelCurrentConsumption(photoTransistors sensor){
} }
}; };
float LightDetection::modelChargeConsumptionOn(photoTransistors sensor, uint16_t durationMs) { float LightDetection::modelChargeConsumptionOn(photoTransistors sensor,
return LightDetection::modelCurrentConsumption(sensor) * durationMs * 10e6; uint16_t durationMs) {
return (LightDetection::modelCurrentConsumption(sensor) * durationMs) / 10e6f;
} }

View File

@ -74,5 +74,5 @@ float Motor::modelCurrentConsumption(uint16_t duty) {
} }
float Motor::modelChargeConsumption(uint16_t duty, uint16_t durationMs) { float Motor::modelChargeConsumption(uint16_t duty, uint16_t durationMs) {
return modelCurrentConsumption(duty) * durationMs * 10e6; return (modelCurrentConsumption(duty) * durationMs) / 10e6f;
} }

View File

@ -299,7 +299,6 @@ float MotionDetection::modelCurrentConsumption(){
return PowerParameters::CurrentConsumptions::CURRENT_IMU; return PowerParameters::CurrentConsumptions::CURRENT_IMU;
} }
float MotionDetection::modelChargeConsumption(uint16_t durationMs) { float MotionDetection::modelChargeConsumption(uint16_t durationMs) {
return this->modelCurrentConsumption() * durationMs * 10e6; return (this->modelCurrentConsumption() * durationMs) / 10e6f;
} }

View File

@ -200,7 +200,7 @@ float MultiColorLight::modelChargeConsumption(uint8_t index, uint32_t color,
} }
uint32_t normalizedColor = normalizeColor(color); uint32_t normalizedColor = normalizeColor(color);
float ledConsumption = modelCurrentConsumption(normalizedColor); float ledConsumption = modelCurrentConsumption(normalizedColor);
return ledConsumption * durationMs * 10e6; return (ledConsumption * durationMs) / 10e6f;
}; };
float MultiColorLight::modelChargeConsumption(leds leds, uint32_t color, float MultiColorLight::modelChargeConsumption(leds leds, uint32_t color,
@ -235,6 +235,7 @@ float MultiColorLight::modelChargeConsumption(leds leds, uint32_t color,
// TODO logging // TODO logging
break; break;
} }
return ledsConsumption;
}; };
float MultiColorLight::modelChargeConsumption(leds leds, uint8_t red, float MultiColorLight::modelChargeConsumption(leds leds, uint8_t red,