Boboter
Loading...
Searching...
No Matches
battery.h
Go to the documentation of this file.
1
7
8#pragma once
9
10#include <esp_adc/adc_oneshot.h>
11#include "include/log_sources.h"
12
13class Robot;
14
15namespace Device {
16 class Battery {
17 private:
18 static constexpr const char* TAG = "Device::Battery";
19 static constexpr log_source LOG_SOURCE = LOG_SOURCE_DEVICE_BATTERY;
20
21 static constexpr adc_channel_t ADC_CHANNEL = ADC_CHANNEL_3; // GPIO 39
22 static constexpr uint8_t NUM_SAMPLES = 50;
23
24 Robot& robot;
25
26 int8_t percentage;
27 uint16_t voltage;
28
29 public:
30 explicit Battery(Robot& robot);
31 ~Battery();
32
36 void initialize();
37
41 void update();
42
49 [[nodiscard]] int8_t get_percentage() const { return percentage; }
50
56 [[nodiscard]] uint16_t get_millivolts() const { return voltage; }
57 };
58}
~Battery()
Definition battery.cpp:23
void initialize()
Configures the needed ADC channel.
Definition battery.cpp:27
void update()
Read and calculate current battery state.
Definition battery.cpp:32
int8_t get_percentage() const
Returns the current battery percentage in percent.
Definition battery.h:49
uint16_t get_millivolts() const
Returns the current battery voltage.
Definition battery.h:56
Battery(Robot &robot)
Definition battery.cpp:15
Class containing all the components of the robot.
Definition robot.h:32
log_source
Definition log_sources.h:12
@ LOG_SOURCE_DEVICE_BATTERY
Definition log_sources.h:19
Definition battery.cpp:14