mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-02-18 19:03:16 +00:00
- Add app path get() functions to `TactilityC` - Improved `Dispatcher` and `DispatcherThread` - Improved `PubSub` (type safety) - Created test for `DispatcherThread` and `PubSub` - Save properties files on app exit (various apps) by posting it to the main dispatcher (fixes UI hanging briefly on app exit) - Fixed bug with `SystemSettings` being read from the wrong file path. - `loadPropertiesFile()` now uses `file::readLines()` instead of doing that manually - Increased timer task stack size (required due to issues when reading a properties file for the very first time) - General cleanup - Created `EstimatedPower` driver that uses an ADC pin to measure voltage and estimate the battery charge that is left. - Cleanup of T-Deck board (updated to new style)
28 lines
891 B
C++
28 lines
891 B
C++
#pragma once
|
|
|
|
#include <ChargeFromAdcVoltage.h>
|
|
#include <Tactility/hal/power/PowerDevice.h>
|
|
|
|
using tt::hal::power::PowerDevice;
|
|
|
|
/**
|
|
* Uses Voltage measurements to estimate charge.
|
|
* Supports voltage and charge level metrics.
|
|
* Can be overridden to further extend supported metrics.
|
|
*/
|
|
class EstimatedPower final : public PowerDevice {
|
|
|
|
std::unique_ptr<ChargeFromAdcVoltage> chargeFromAdcVoltage;
|
|
|
|
public:
|
|
|
|
EstimatedPower(ChargeFromAdcVoltage::Configuration configuration) :
|
|
chargeFromAdcVoltage(std::make_unique<ChargeFromAdcVoltage>(std::move(configuration))) {}
|
|
|
|
std::string getName() const override { return "ADC Power Measurement"; }
|
|
std::string getDescription() const override { return "Power measurement interface via ADC pin"; }
|
|
|
|
bool supportsMetric(MetricType type) const override;
|
|
bool getMetric(MetricType type, MetricData& data) override;
|
|
};
|