Skip to content

Commit 0a684b0

Browse files
committed
[Cleanup] Convert other charging related settings to use FormSelector
1 parent a2bc54a commit 0a684b0

File tree

5 files changed

+179
-177
lines changed

5 files changed

+179
-177
lines changed

lib/AXP2101/src/AXP2101_settings.cpp

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -120,57 +120,6 @@ const __FlashStringHelper* toString(AXP2101_CV_charger_voltage_e voltage) {
120120
return F("");
121121
}
122122

123-
const __FlashStringHelper* toString(AXP2101_Linear_Charger_Vsys_dpm_e vsys) {
124-
switch (vsys) {
125-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_1V: return F("4.1");
126-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_2V: return F("4.2");
127-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_3V: return F("4.3");
128-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_4V: return F("4.4");
129-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_5V: return F("4.5");
130-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_6V: return F("4.6");
131-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_7V: return F("4.7");
132-
case AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_8V: return F("4.8");
133-
}
134-
return F("");
135-
}
136-
137-
138-
const __FlashStringHelper* toString(AXP2101_VINDPM_e voltage) {
139-
switch (voltage) {
140-
case AXP2101_VINDPM_e::Vin_3_88V: return F("3.88");
141-
case AXP2101_VINDPM_e::Vin_3_96V: return F("3.96");
142-
case AXP2101_VINDPM_e::Vin_4_04V: return F("4.04");
143-
case AXP2101_VINDPM_e::Vin_4_12V: return F("4.12");
144-
case AXP2101_VINDPM_e::Vin_4_20V: return F("4.20");
145-
case AXP2101_VINDPM_e::Vin_4_28V: return F("4.28");
146-
case AXP2101_VINDPM_e::Vin_4_36V: return F("4.36");
147-
case AXP2101_VINDPM_e::Vin_4_44V: return F("4.44");
148-
case AXP2101_VINDPM_e::Vin_4_52V: return F("4.52");
149-
case AXP2101_VINDPM_e::Vin_4_60V: return F("4.60");
150-
case AXP2101_VINDPM_e::Vin_4_68V: return F("4.68");
151-
case AXP2101_VINDPM_e::Vin_4_76V: return F("4.76");
152-
case AXP2101_VINDPM_e::Vin_4_84V: return F("4.84");
153-
case AXP2101_VINDPM_e::Vin_4_92V: return F("4.92");
154-
case AXP2101_VINDPM_e::Vin_5_00V: return F("5.00");
155-
case AXP2101_VINDPM_e::Vin_5_08V: return F("5.08");
156-
}
157-
return F("");
158-
}
159-
160-
161-
const __FlashStringHelper* toString(AXP2101_InputCurrentLimit_e current) {
162-
switch (current) {
163-
case AXP2101_InputCurrentLimit_e::limit_100mA: return F("100");
164-
case AXP2101_InputCurrentLimit_e::limit_500mA: return F("500");
165-
case AXP2101_InputCurrentLimit_e::limit_900mA: return F("900");
166-
case AXP2101_InputCurrentLimit_e::limit_1000mA: return F("1000");
167-
case AXP2101_InputCurrentLimit_e::limit_1500mA: return F("1500");
168-
case AXP2101_InputCurrentLimit_e::limit_2000mA: return F("2000");
169-
}
170-
return F("");
171-
}
172-
173-
174123
AXP2101_registers_e AXP2101_intToRegister(int reg) {
175124
switch (reg) {
176125
case 0: return AXP2101_registers_e::dcdc1;

lib/AXP2101/src/AXP2101_settings.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,8 @@ enum class AXP2101_CV_charger_voltage_e : uint8_t {
232232
limit_4_10V = 0b010,
233233
limit_4_20V = 0b011, // default
234234
limit_4_35V = 0b100,
235-
limit_4_40V = 0b101
235+
limit_4_40V = 0b101,
236+
MAX
236237
};
237238

238239
enum class AXP2101_Linear_Charger_Vsys_dpm_e : uint8_t {
@@ -243,7 +244,8 @@ enum class AXP2101_Linear_Charger_Vsys_dpm_e : uint8_t {
243244
vsys_4_5V,
244245
vsys_4_6V,
245246
vsys_4_7V,
246-
vsys_4_8V
247+
vsys_4_8V,
248+
MAX
247249
};
248250

249251
enum class AXP2101_VINDPM_e : uint8_t {
@@ -262,7 +264,8 @@ enum class AXP2101_VINDPM_e : uint8_t {
262264
Vin_4_84V,
263265
Vin_4_92V,
264266
Vin_5_00V,
265-
Vin_5_08V
267+
Vin_5_08V,
268+
MAX
266269
};
267270

268271
enum class AXP2101_InputCurrentLimit_e : uint8_t {
@@ -271,7 +274,8 @@ enum class AXP2101_InputCurrentLimit_e : uint8_t {
271274
limit_900mA,
272275
limit_1000mA,
273276
limit_1500mA,
274-
limit_2000mA
277+
limit_2000mA,
278+
MAX
275279
};
276280

277281

@@ -291,10 +295,6 @@ const __FlashStringHelper* toString(AXP2101_chargingState_e state);
291295
const __FlashStringHelper* toString(AXP2101_chipid_e chip);
292296
const __FlashStringHelper* toString(AXP2101_chargingDetail_e charge);
293297
const __FlashStringHelper* toString(AXP2101_CV_charger_voltage_e voltage);
294-
const __FlashStringHelper* toString(AXP2101_Linear_Charger_Vsys_dpm_e vsys);
295-
const __FlashStringHelper* toString(AXP2101_VINDPM_e voltage);
296-
const __FlashStringHelper* toString(AXP2101_InputCurrentLimit_e current);
297-
298298

299299
class AXP2101_settings { // Voltages in mV, range 0..3700, max. depending on the AXP2101 pin/port used.
300300
public:

src/src/PluginStructs/P139_data_struct.cpp

Lines changed: 4 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -139,23 +139,7 @@ void P139_data_struct::webform_load(struct EventStruct *event) {
139139
const bool isPowerManagerTask = Settings.isPowerManagerTask(event->TaskIndex);
140140

141141
{
142-
const __FlashStringHelper *chargeledNames[] = {
143-
toString(AXP2101_chargeled_d::Off),
144-
toString(AXP2101_chargeled_d::Flash_1Hz),
145-
toString(AXP2101_chargeled_d::Flash_4Hz),
146-
toString(AXP2101_chargeled_d::Steady_On),
147-
};
148-
const int chargeledValues[] = {
149-
static_cast<int>(AXP2101_chargeled_d::Off),
150-
static_cast<int>(AXP2101_chargeled_d::Flash_1Hz),
151-
static_cast<int>(AXP2101_chargeled_d::Flash_4Hz),
152-
static_cast<int>(AXP2101_chargeled_d::Steady_On),
153-
};
154-
constexpr uint8_t valueCount = NR_ELEMENTS(chargeledValues);
155-
addFormSelector(F("Charge LED"), F("led"),
156-
valueCount,
157-
chargeledNames, chargeledValues,
158-
static_cast<int>(_settings.getChargeLed()));
142+
AXP2101_ChargeLED_FormSelector selector(_settings.getChargeLed());
159143
}
160144
{
161145
// Reg 61: Iprechg Charger Settings
@@ -180,104 +164,17 @@ void P139_data_struct::webform_load(struct EventStruct *event) {
180164
}
181165
{
182166
// Reg 14: Minimum System Voltage Control
183-
const __FlashStringHelper *names[] = {
184-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_1V),
185-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_2V),
186-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_3V),
187-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_4V),
188-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_5V),
189-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_6V),
190-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_7V),
191-
toString(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_8V),
192-
};
193-
const int values[] = {
194-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_1V),
195-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_2V),
196-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_3V),
197-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_4V),
198-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_5V),
199-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_6V),
200-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_7V),
201-
static_cast<int>(AXP2101_Linear_Charger_Vsys_dpm_e::vsys_4_8V),
202-
};
203-
constexpr uint8_t valueCount = NR_ELEMENTS(values);
204-
addFormSelector(F("Minimum System Voltage"), F("min_vsys"),
205-
valueCount,
206-
names, values,
207-
static_cast<int>(_settings.getLinear_Charger_Vsys_dpm()));
208-
addUnit(F("V"));
167+
AXP2101_Linear_Charger_Vsys_dpm_FormSelector selector(_settings.getLinear_Charger_Vsys_dpm());
209168
}
210169

211170
{
212171
// Reg 15: Input Voltage Limit
213-
const __FlashStringHelper *names[] = {
214-
toString(AXP2101_VINDPM_e::Vin_3_88V),
215-
toString(AXP2101_VINDPM_e::Vin_3_96V),
216-
toString(AXP2101_VINDPM_e::Vin_4_04V),
217-
toString(AXP2101_VINDPM_e::Vin_4_12V),
218-
toString(AXP2101_VINDPM_e::Vin_4_20V),
219-
toString(AXP2101_VINDPM_e::Vin_4_28V),
220-
toString(AXP2101_VINDPM_e::Vin_4_36V),
221-
toString(AXP2101_VINDPM_e::Vin_4_44V),
222-
toString(AXP2101_VINDPM_e::Vin_4_52V),
223-
toString(AXP2101_VINDPM_e::Vin_4_60V),
224-
toString(AXP2101_VINDPM_e::Vin_4_68V),
225-
toString(AXP2101_VINDPM_e::Vin_4_76V),
226-
toString(AXP2101_VINDPM_e::Vin_4_84V),
227-
toString(AXP2101_VINDPM_e::Vin_4_92V),
228-
toString(AXP2101_VINDPM_e::Vin_5_00V),
229-
toString(AXP2101_VINDPM_e::Vin_5_08V),
230-
};
231-
const int values[] = {
232-
static_cast<int>(AXP2101_VINDPM_e::Vin_3_88V),
233-
static_cast<int>(AXP2101_VINDPM_e::Vin_3_96V),
234-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_04V),
235-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_12V),
236-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_20V),
237-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_28V),
238-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_36V),
239-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_44V),
240-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_52V),
241-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_60V),
242-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_68V),
243-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_76V),
244-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_84V),
245-
static_cast<int>(AXP2101_VINDPM_e::Vin_4_92V),
246-
static_cast<int>(AXP2101_VINDPM_e::Vin_5_00V),
247-
static_cast<int>(AXP2101_VINDPM_e::Vin_5_08V),
248-
};
249-
constexpr uint8_t valueCount = NR_ELEMENTS(values);
250-
addFormSelector(F("Min Vin DPM Voltage"), F("vin_dpm"),
251-
valueCount,
252-
names, values,
253-
static_cast<int>(_settings.getVin_DPM()));
254-
addUnit(F("V"));
172+
AXP2101_Vin_DPM_FormSelector selector(_settings.getVin_DPM());
255173
}
256174

257175
{
258176
// Reg 16: Input Current Limit
259-
const __FlashStringHelper *names[] = {
260-
toString(AXP2101_InputCurrentLimit_e::limit_100mA),
261-
toString(AXP2101_InputCurrentLimit_e::limit_500mA),
262-
toString(AXP2101_InputCurrentLimit_e::limit_900mA),
263-
toString(AXP2101_InputCurrentLimit_e::limit_1000mA),
264-
toString(AXP2101_InputCurrentLimit_e::limit_1500mA),
265-
toString(AXP2101_InputCurrentLimit_e::limit_2000mA),
266-
};
267-
const int values[] = {
268-
static_cast<int>(AXP2101_InputCurrentLimit_e::limit_100mA),
269-
static_cast<int>(AXP2101_InputCurrentLimit_e::limit_500mA),
270-
static_cast<int>(AXP2101_InputCurrentLimit_e::limit_900mA),
271-
static_cast<int>(AXP2101_InputCurrentLimit_e::limit_1000mA),
272-
static_cast<int>(AXP2101_InputCurrentLimit_e::limit_1500mA),
273-
static_cast<int>(AXP2101_InputCurrentLimit_e::limit_2000mA),
274-
};
275-
constexpr uint8_t valueCount = NR_ELEMENTS(values);
276-
addFormSelector(F("Input Current Limit"), F("cur_lim_in"),
277-
valueCount,
278-
names, values,
279-
static_cast<int>(_settings.getInputCurrentLimit()));
280-
addUnit(F("mA"));
177+
AXP2101_InputCurrentLimit_FormSelector selector(_settings.getInputCurrentLimit());
281178
}
282179

283180
addFormCheckBox(F("Disable TS pin"), F("dis_TS"), _settings.getTS_disabled());

0 commit comments

Comments
 (0)