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) {
return PowerParameters::CurrentConsumptions::CURRENT_SENSOR_RGBW *
durationMs * 10e6;
return (PowerParameters::CurrentConsumptions::CURRENT_SENSOR_RGBW *
durationMs) / 10e6f;
}

View File

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

View File

@ -145,6 +145,7 @@ float LightDetection::modelCurrentConsumption(photoTransistors sensor){
}
};
float LightDetection::modelChargeConsumptionOn(photoTransistors sensor, uint16_t durationMs) {
return LightDetection::modelCurrentConsumption(sensor) * durationMs * 10e6;
float LightDetection::modelChargeConsumptionOn(photoTransistors sensor,
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) {
return modelCurrentConsumption(duty) * durationMs * 10e6;
return (modelCurrentConsumption(duty) * durationMs) / 10e6f;
}

View File

@ -299,7 +299,6 @@ float MotionDetection::modelCurrentConsumption(){
return PowerParameters::CurrentConsumptions::CURRENT_IMU;
}
float MotionDetection::modelChargeConsumption(uint16_t durationMs){
return this->modelCurrentConsumption() * durationMs * 10e6;
float MotionDetection::modelChargeConsumption(uint16_t durationMs) {
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);
float ledConsumption = modelCurrentConsumption(normalizedColor);
return ledConsumption * durationMs * 10e6;
return (ledConsumption * durationMs) / 10e6f;
};
float MultiColorLight::modelChargeConsumption(leds leds, uint32_t color,
@ -235,6 +235,7 @@ float MultiColorLight::modelChargeConsumption(leds leds, uint32_t color,
// TODO logging
break;
}
return ledsConsumption;
};
float MultiColorLight::modelChargeConsumption(leds leds, uint8_t red,