mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-16 01:48:42 -05:00
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
namespace bluetooth
|
|
{
|
|
|
|
class BatteryLevel
|
|
{
|
|
static constexpr auto batteryLowValue = 0;
|
|
static constexpr auto batteryMaxValue = 100;
|
|
|
|
public:
|
|
explicit BatteryLevel(unsigned int level) : level(level){};
|
|
BatteryLevel() = default;
|
|
auto getBatteryLevel() const -> unsigned int
|
|
{
|
|
return std::clamp<unsigned int>(level, batteryLowValue, batteryMaxValue);
|
|
}
|
|
auto getBatteryLevelBars() const -> unsigned int
|
|
{
|
|
constexpr auto level1Threshold = 15;
|
|
constexpr auto level2Threshold = 35;
|
|
constexpr auto level3Threshold = 55;
|
|
constexpr auto level4Threshold = 75;
|
|
constexpr auto level5Threshold = 95;
|
|
|
|
if (level < level1Threshold) {
|
|
return 0;
|
|
}
|
|
else if (level < level2Threshold) {
|
|
return 1;
|
|
}
|
|
else if (level < level3Threshold) {
|
|
return 2;
|
|
}
|
|
else if (level < level4Threshold) {
|
|
return 3;
|
|
}
|
|
else if (level < level5Threshold) {
|
|
return 4;
|
|
}
|
|
else {
|
|
return 5;
|
|
}
|
|
}
|
|
|
|
private:
|
|
unsigned int level = 0;
|
|
};
|
|
} // namespace bluetooth
|