diff --git a/src/lightDetection/LightDetection.cpp b/src/lightDetection/LightDetection.cpp index 2d07cff..3bbf253 100644 --- a/src/lightDetection/LightDetection.cpp +++ b/src/lightDetection/LightDetection.cpp @@ -135,4 +135,16 @@ uint16_t LightDetection::readDLPT(photoTransistors sensor){ Power::releaseCurrent(PowerParameters::PowerConsumers::PT_DL); digitalWrite(DL_PT_ENABLE,LOW); return result; -}; \ No newline at end of file +}; + +float LightDetection::modelCurrentConsumption(photoTransistors sensor){ + if(sensor == DL_FRONT || sensor == DL_BOTTOM){ + return PowerParameters::CurrentConsumptions::CURRENT_PT * 2; + } else { + return PowerParameters::CurrentConsumptions::CURRENT_PT * 4; + } +}; + +float LightDetection::modelChargeConsumptionOn(photoTransistors sensor, uint16_t durationMs) { + return LightDetection::modelCurrentConsumption(sensor) * durationMs * 10e6; +} \ No newline at end of file diff --git a/src/lightDetection/LightDetection.h b/src/lightDetection/LightDetection.h index 49f02bc..b79fdac 100644 --- a/src/lightDetection/LightDetection.h +++ b/src/lightDetection/LightDetection.h @@ -84,15 +84,16 @@ public: * * @return float the current consumption of the PTs */ - static float modelCurrentConsumption(void); + static float modelCurrentConsumption(photoTransistors sensor); /** - * @brief Estimate the energy consumption of setting the specified led to - * the passed color + * @brief Estimate the energy consumption of enabling the selected PT for + * the given duration * @param durationMs time the led will be on * @return consumed energy in coloumbs */ - float modelChargeConsumptionOn(uint16_t durationMs); + static float modelChargeConsumptionOn(photoTransistors sensor, + uint16_t durationMs); protected: static const uint8_t IR_PT_FRONT_ADC = 3; diff --git a/src/motion/Motion.h b/src/motion/Motion.h index 33650b5..195c077 100644 --- a/src/motion/Motion.h +++ b/src/motion/Motion.h @@ -71,7 +71,7 @@ class Motor{ * @param durationMs time the display will be on * @return consumed energy in coloumbs */ - float modelChargeConsumptionOn(uint16_t duty, uint16_t durationMs); + float modelChargeConsumption(uint16_t duty, uint16_t durationMs); protected: diff --git a/src/motion/Motor.cpp b/src/motion/Motor.cpp index e58ca95..825620c 100644 --- a/src/motion/Motor.cpp +++ b/src/motion/Motor.cpp @@ -68,11 +68,11 @@ bool Motor::setSpeed(uint16_t duty) { uint16_t Motor::getSpeed(void) { return this->duty; }; -float modelCurrentConsumption(uint16_t duty) { +float Motor::modelCurrentConsumption(uint16_t duty) { const float dutyFactor = duty / static_cast(1 << DUTY_RES); return PowerParameters::CurrentConsumptions::CURRENT_MOTOR_T_ON * dutyFactor; } -float modelChargeConsumptionOn(uint16_t duty, uint16_t durationMs) { +float Motor::modelChargeConsumption(uint16_t duty, uint16_t durationMs) { return modelCurrentConsumption(duty) * durationMs * 10e6; }