diff options
author | Avamander <avamander@gmail.com> | 2021-04-18 20:28:14 +0300 |
---|---|---|
committer | Avamander <avamander@gmail.com> | 2021-04-24 11:39:53 +0300 |
commit | 40d45d923b033363ff1304b47eac238dd4495a57 (patch) | |
tree | 9e7b668fdf23a7be892b8e2bf8b4d62b884cee06 /src/components/battery | |
parent | e56ebb8bd621cc8838e86fa032d680a6e7a35ffc (diff) |
Reformatted all the files according to clang-format style
Diffstat (limited to 'src/components/battery')
-rw-r--r-- | src/components/battery/BatteryController.cpp | 78 | ||||
-rw-r--r-- | src/components/battery/BatteryController.h | 89 |
2 files changed, 85 insertions, 82 deletions
diff --git a/src/components/battery/BatteryController.cpp b/src/components/battery/BatteryController.cpp index 99afa55c..b39efefb 100644 --- a/src/components/battery/BatteryController.cpp +++ b/src/components/battery/BatteryController.cpp @@ -7,33 +7,33 @@ using namespace Pinetime::Controllers; -Battery *Battery::instance = nullptr; +Battery* Battery::instance = nullptr; Battery::Battery() { instance = this; } void Battery::Init() { - nrf_gpio_cfg_input(chargingPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup); - nrf_gpio_cfg_input(powerPresentPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup); + nrf_gpio_cfg_input(chargingPin, (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pullup); + nrf_gpio_cfg_input(powerPresentPin, (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pullup); } void Battery::Update() { isCharging = !nrf_gpio_pin_read(chargingPin); isPowerPresent = !nrf_gpio_pin_read(powerPresentPin); - - if ( isReading ) return; + + if (isReading) + return; // Non blocking read samples = 0; isReading = true; - SaadcInit(); + SaadcInit(); - nrfx_saadc_sample(); - + nrfx_saadc_sample(); } -void Battery::adcCallbackStatic(nrfx_saadc_evt_t const *event) { +void Battery::adcCallbackStatic(nrfx_saadc_evt_t const* event) { instance->SaadcEventHandler(event); } @@ -41,48 +41,44 @@ void Battery::SaadcInit() { nrfx_saadc_config_t adcConfig = NRFX_SAADC_DEFAULT_CONFIG; APP_ERROR_CHECK(nrfx_saadc_init(&adcConfig, adcCallbackStatic)); - nrf_saadc_channel_config_t adcChannelConfig = { - .resistor_p = NRF_SAADC_RESISTOR_DISABLED, - .resistor_n = NRF_SAADC_RESISTOR_DISABLED, - .gain = NRF_SAADC_GAIN1_5, - .reference = NRF_SAADC_REFERENCE_INTERNAL, - .acq_time = NRF_SAADC_ACQTIME_3US, - .mode = NRF_SAADC_MODE_SINGLE_ENDED, - .burst = NRF_SAADC_BURST_ENABLED, - .pin_p = batteryVoltageAdcInput, - .pin_n = NRF_SAADC_INPUT_DISABLED - }; + nrf_saadc_channel_config_t adcChannelConfig = {.resistor_p = NRF_SAADC_RESISTOR_DISABLED, + .resistor_n = NRF_SAADC_RESISTOR_DISABLED, + .gain = NRF_SAADC_GAIN1_5, + .reference = NRF_SAADC_REFERENCE_INTERNAL, + .acq_time = NRF_SAADC_ACQTIME_3US, + .mode = NRF_SAADC_MODE_SINGLE_ENDED, + .burst = NRF_SAADC_BURST_ENABLED, + .pin_p = batteryVoltageAdcInput, + .pin_n = NRF_SAADC_INPUT_DISABLED}; APP_ERROR_CHECK(nrfx_saadc_channel_init(0, &adcChannelConfig)); APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1)); - } -void Battery::SaadcEventHandler(nrfx_saadc_evt_t const * p_event) { +void Battery::SaadcEventHandler(nrfx_saadc_evt_t const* p_event) { + + const float battery_max = 4.18; // maximum voltage of battery ( max charging voltage is 4.21 ) + const float battery_min = 3.20; // minimum voltage of battery before shutdown ( depends on the battery ) - const float battery_max = 4.18; // maximum voltage of battery ( max charging voltage is 4.21 ) - const float battery_min = 3.20; // minimum voltage of battery before shutdown ( depends on the battery ) + if (p_event->type == NRFX_SAADC_EVT_DONE) { - if (p_event->type == NRFX_SAADC_EVT_DONE) { - - APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1)); + APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1)); - voltage = (static_cast<float>(p_event->data.done.p_buffer[0]) * 2.04f) / (1024 / 3.0f); - voltage = roundf(voltage * 100) / 100; + voltage = (static_cast<float>(p_event->data.done.p_buffer[0]) * 2.04f) / (1024 / 3.0f); + voltage = roundf(voltage * 100) / 100; - percentRemaining = static_cast<int>(((voltage - battery_min) / (battery_max - battery_min)) * 100); + percentRemaining = static_cast<int>(((voltage - battery_min) / (battery_max - battery_min)) * 100); - percentRemaining = std::max(percentRemaining, 0); - percentRemaining = std::min(percentRemaining, 100); + percentRemaining = std::max(percentRemaining, 0); + percentRemaining = std::min(percentRemaining, 100); - percentRemainingBuffer.insert(percentRemaining); + percentRemainingBuffer.insert(percentRemaining); - samples++; - if ( samples > percentRemainingSamples ) { - nrfx_saadc_uninit(); - isReading = false; - } else { - nrfx_saadc_sample(); - } + samples++; + if (samples > percentRemainingSamples) { + nrfx_saadc_uninit(); + isReading = false; + } else { + nrfx_saadc_sample(); } } - +} diff --git a/src/components/battery/BatteryController.h b/src/components/battery/BatteryController.h index 47d7a6d1..e5c734d2 100644 --- a/src/components/battery/BatteryController.h +++ b/src/components/battery/BatteryController.h @@ -7,18 +7,18 @@ namespace Pinetime { namespace Controllers { - /** A simple circular buffer that can be used to average - out the sensor values. The total capacity of the CircBuffer + /** A simple circular buffer that can be used to average + out the sensor values. The total capacity of the CircBuffer is given as the template parameter N. - */ - template <int N> - class CircBuffer { - public: - CircBuffer() : arr{}, sz{}, cap{N}, head{} {} + */ + template <int N> class CircBuffer { + public: + CircBuffer() : arr {}, sz {}, cap {N}, head {} { + } /** - insert member function overwrites the next data to the current + insert member function overwrites the next data to the current HEAD and moves the HEAD to the newly inserted value. - */ + */ void insert(const int num) { head %= cap; arr[head++] = num; @@ -32,51 +32,58 @@ namespace Pinetime { return (sum / sz); } - private: + private: std::array<int, N> arr; /**< internal array used to store the values*/ - uint8_t sz; /**< The current size of the array.*/ - uint8_t cap; /**< Total capacity of the CircBuffer.*/ - uint8_t head; /**< The current head of the CircBuffer*/ + uint8_t sz; /**< The current size of the array.*/ + uint8_t cap; /**< Total capacity of the CircBuffer.*/ + uint8_t head; /**< The current head of the CircBuffer*/ }; class Battery { - public: + public: + Battery(); + + void Init(); + void Update(); - Battery(); + int PercentRemaining() const { + return percentRemainingBuffer.GetAverage(); + } - void Init(); - void Update(); - - int PercentRemaining() const { return percentRemainingBuffer.GetAverage(); } + float Voltage() const { + return voltage; + } + + bool IsCharging() const { + return isCharging; + } + bool IsPowerPresent() const { + return isPowerPresent; + } - float Voltage() const { return voltage; } + private: + static Battery* instance; + nrf_saadc_value_t saadc_value; - bool IsCharging() const { return isCharging; } - bool IsPowerPresent() const { return isPowerPresent; } + static constexpr uint8_t percentRemainingSamples = 5; + CircBuffer<percentRemainingSamples> percentRemainingBuffer {}; - private: - static Battery *instance; - nrf_saadc_value_t saadc_value; - - static constexpr uint8_t percentRemainingSamples = 5; - CircBuffer<percentRemainingSamples> percentRemainingBuffer {}; + static constexpr uint32_t chargingPin = 12; + static constexpr uint32_t powerPresentPin = 19; + static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7; + float voltage = 0.0f; + int percentRemaining = -1; - static constexpr uint32_t chargingPin = 12; - static constexpr uint32_t powerPresentPin = 19; - static constexpr nrf_saadc_input_t batteryVoltageAdcInput = NRF_SAADC_INPUT_AIN7; - float voltage = 0.0f; - int percentRemaining = -1; + bool isCharging = false; + bool isPowerPresent = false; - bool isCharging = false; - bool isPowerPresent = false; - - void SaadcInit(); + void SaadcInit(); - void SaadcEventHandler(nrfx_saadc_evt_t const * p_event); - static void adcCallbackStatic(nrfx_saadc_evt_t const *event); + void SaadcEventHandler(nrfx_saadc_evt_t const* p_event); + static void adcCallbackStatic(nrfx_saadc_evt_t const* event); - bool isReading = false; - uint8_t samples = 0; + bool isReading = false; + uint8_t samples = 0; }; } }
\ No newline at end of file |