// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include #include #include #include namespace sys { class Service; } // namespace sys class BatteryBrownoutDetector { public: BatteryBrownoutDetector(sys::Service *service, std::shared_ptr charger); void startDetection(); private: void checkBrownout(); sys::Service *parentService; std::shared_ptr charger; bool detectionOngoing = false; unsigned measurementCount = 0; sys::TimerHandle measurementTick; };