summaryrefslogtreecommitdiff
path: root/src/battery/battery.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-30 16:48:10 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-30 16:48:10 +1000
commit320fdeb9d8355d3c361d5c6d60de8afc64501af9 (patch)
treef0d5a2ab82199c78ad6768c6b18ba1239a0b7ee4 /src/battery/battery.cpp
parent4247c9fe7d25c921fbfc73fc50e849c8780e7ad6 (diff)
downloadtangara-fw-320fdeb9d8355d3c361d5c6d60de8afc64501af9.tar.gz
Use a service locator instead of passing around subsets of drivers between FSMs
Diffstat (limited to 'src/battery/battery.cpp')
-rw-r--r--src/battery/battery.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/battery/battery.cpp b/src/battery/battery.cpp
index d73f4f29..9ac6ebf1 100644
--- a/src/battery/battery.cpp
+++ b/src/battery/battery.cpp
@@ -40,8 +40,8 @@ void check_voltage_cb(TimerHandle_t timer) {
instance->Update();
}
-Battery::Battery(drivers::Samd* samd, drivers::AdcBattery* adc)
- : samd_(samd), adc_(adc) {
+Battery::Battery(drivers::Samd& samd, std::unique_ptr<drivers::AdcBattery> adc)
+ : samd_(samd), adc_(std::move(adc)) {
timer_ = xTimerCreate("BATTERY", kBatteryCheckPeriod, true, this,
check_voltage_cb);
xTimerStart(timer_, portMAX_DELAY);
@@ -56,7 +56,7 @@ Battery::~Battery() {
auto Battery::Update() -> void {
std::lock_guard<std::mutex> lock{state_mutex_};
- auto charge_state = samd_->GetChargeStatus();
+ auto charge_state = samd_.GetChargeStatus();
if (!charge_state || *charge_state == ChargeStatus::kNoBattery) {
if (state_) {
EmitEvent();