Skip to content

Commit c29e363

Browse files
committed
nicla-system: Replace defines with enum for battery level.
1 parent 1c55bb5 commit c29e363

File tree

3 files changed

+18
-25
lines changed

3 files changed

+18
-25
lines changed

libraries/Nicla_System/examples/NiclaSenseME_BatteryStatus/NiclaSenseME_BatteryStatus.ino

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ bool updateBatteryLevel(bool enforceNewReading = false) {
3333
if (batteryPercentage != percentage) {
3434
batteryPercentage = percentage;
3535
batteryVoltage = nicla::getCurrentBatteryVoltage();
36-
batteryChargeLevel = nicla::getBatteryChargeLevel();
36+
batteryChargeLevel = static_cast<int8_t>(nicla::getBatteryChargeLevel());
3737

3838
Serial.print("New battery level: ");
3939
Serial.println(batteryPercentage);
@@ -60,17 +60,17 @@ String getBatteryTemperatureDescription(int status) {
6060
}
6161
}
6262

63-
String getBatteryChargeLevelDescription(int status) {
63+
String getBatteryChargeLevelDescription(BatteryChargeLevel status) {
6464
switch (status) {
65-
case BATTERY_EMPTY:
65+
case BatteryChargeLevel::Empty:
6666
return "Empty";
67-
case BATTERY_ALMOST_EMPTY:
67+
case BatteryChargeLevel::AlmostEmpty:
6868
return "Almost Empty";
69-
case BATTERY_HALF:
69+
case BatteryChargeLevel::HalfFull:
7070
return "Half Full";
71-
case BATTERY_ALMOST_FULL:
71+
case BatteryChargeLevel::AlmostFull:
7272
return "Almost Full";
73-
case BATTERY_FULL:
73+
case BatteryChargeLevel::Full:
7474
return "Full";
7575
default:
7676
return "Unknown";

libraries/Nicla_System/src/Nicla_System.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -264,23 +264,23 @@ int8_t nicla::getBatteryPercentage(bool useLatchedValue) {
264264
return percentageTens + percentageOnes;
265265
}
266266

267-
uint8_t nicla::getBatteryChargeLevel() {
267+
BatteryChargeLevel nicla::getBatteryChargeLevel() {
268268
auto percent = getBatteryPercentage();
269269

270270
if (percent >= 98) {
271-
return BATTERY_FULL;
271+
return BatteryChargeLevel::Full;
272272
} else if (percent >= 94){
273-
return BATTERY_ALMOST_FULL;
273+
return BatteryChargeLevel::AlmostFull;
274274
} else if (percent >= 90){
275-
return BATTERY_HALF;
275+
return BatteryChargeLevel::HalfFull;
276276
} else if (percent >= 86){
277-
return BATTERY_ALMOST_EMPTY;
277+
return BatteryChargeLevel::AlmostEmpty;
278278
} else if(percent < 86 && percent > 0) {
279279
// < 84% is considered empty
280-
return BATTERY_EMPTY;
280+
return BatteryChargeLevel::Empty;
281281
} else {
282282
// Battery status could not be read
283-
return BATTERY_UNKNOWN;
283+
return BatteryChargeLevel::Unknown;
284284
}
285285
}
286286

libraries/Nicla_System/src/Nicla_System.h

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,6 @@ enum class OperatingStatus {
1818
};
1919

2020
// 3 bits are used to indicate the battery charge level
21-
#define BATTERY_CHARGE_MASK 0b00000111
22-
#define BATTERY_FULL 5 // Bit pattern: 101
23-
#define BATTERY_ALMOST_FULL 4 // Bit pattern: 100
24-
#define BATTERY_HALF 3 // Bit pattern: 011
25-
#define BATTERY_ALMOST_EMPTY 2 // Bit pattern: 010
26-
#define BATTERY_EMPTY 1 // Bit pattern: 001
27-
#define BATTERY_UNKNOWN 0 // Bit pattern: 000
28-
2921
enum class BatteryChargeLevel {
3022
Unknown = 0b000,
3123
Empty = 0b001,
@@ -104,10 +96,11 @@ class nicla {
10496
* @brief Get the Battery Charge level encoded as a number (0-5). The following values are possible:
10597
* "Unknown", "Empty", "Almost Empty", "Half Full", "Almost Full", "Full"
10698
*
107-
* @return uint8_t The battery charge level represented by one of the following constants:
108-
* BATTERY_UNKNOWN, BATTERY_FULL, BATTERY_ALMOST_FULL, BATTERY_HALF, BATTERY_ALMOST_EMPTY, BATTERY_EMPTY
99+
* @return BatteryChargeLevel The battery charge level represented by one of the following values:
100+
* BatteryChargeLevel::Unknown, BatteryChargeLevel::Empty, BatteryChargeLevel::AlmostEmpty,
101+
* BatteryChargeLevel::HalfFull, BatteryChargeLevel::AlmostFull, BatteryChargeLevel::Full
109102
*/
110-
static uint8_t getBatteryChargeLevel();
103+
static BatteryChargeLevel getBatteryChargeLevel();
111104

112105
/**
113106
* @brief Get the Battery Temperature. The following values are possible:

0 commit comments

Comments
 (0)