batteryMonitor in WebUI and saved correctly

This commit is contained in:
richonguzman 2024-10-07 10:17:25 -03:00
parent 0e7fd0a024
commit cd8d288ccc
7 changed files with 57 additions and 5 deletions

View File

@ -40,7 +40,9 @@
"battery": {
"sendVoltage": false,
"voltageAsTelemetry": true,
"sendVoltageAlways": false
"sendVoltageAlways": false,
"monitorVoltage": false,
"sleepVoltage": 2.9
},
"other": {
"simplifiedTrackerMode": false,

View File

@ -480,7 +480,8 @@
placeholder="0.0"
class="form-control"
step="0.1"
min="0"
min="-5.0"
max="5.0"
/>
<span class="input-group-text"
>Celsius</span
@ -616,6 +617,43 @@
>
</div>
</div>
<div class="col-12 mt-3">
<div class="form-check form-switch">
<input
type="checkbox"
name="battery.monitorVoltage"
id="battery.monitorVoltage"
class="form-check-input"
/>
<label
for="battery.monitorVoltage"
class="form-label"
>Monitor Battery Voltage and power-off/sleep if low</label
>
</div>
</div>
<div class="col-6">
<label
for="battery.sleepVoltage"
class="form-label"
>Voltage readings to power-off/sleep to protect Battery</label
>
<div class="input-group">
<input
type="number"
name="battery.sleepVoltage"
id="battery.sleepVoltage"
class="form-control"
value="2.9"
step="0.1"
min="2.5"
max="4.5"
/>
<span class="input-group-text"
>Volts</span
>
</div>
</div>
</div>
</div>
</div>

View File

@ -215,7 +215,9 @@ function loadSettings(settings) {
// BATTERY
document.getElementById("battery.sendVoltage").checked = settings.battery.sendVoltage;
document.getElementById("battery.voltageAsTelemetry").checked = settings.battery.voltageAsTelemetry;
document.getElementById("battery.sendVoltageAlways").checked = settings.battery.sendVoltageAlways;
document.getElementById("battery.sendVoltageAlways").checked = settings.battery.sendVoltageAlways;
document.getElementById("battery.monitorVoltage").checked = settings.battery.monitorVoltage;
document.getElementById("battery.sleepVoltage").value = settings.battery.sleepVoltage.toFixed(1);
// WINLINK
document.getElementById("winlink.password").value = settings.winlink.password;

View File

@ -49,7 +49,7 @@ TinyGPSPlus gps;
OneButton userButton = OneButton(BUTTON_PIN, true, true);
#endif
String versionDate = "2024.10.04";
String versionDate = "2024.10.07";
uint8_t myBeaconsIndex = 0;
int myBeaconsSize = Config.beacons.size();

View File

@ -36,6 +36,8 @@ void Configuration::writeFile() {
data["battery"]["sendVoltage"] = battery.sendVoltage;
data["battery"]["voltageAsTelemetry"] = battery.voltageAsTelemetry;
data["battery"]["sendVoltageAlways"] = battery.sendVoltageAlways;
data["battery"]["monitorVoltage"] = battery.monitorVoltage;
data["battery"]["sleepVoltage"] = battery.sleepVoltage;
data["winlink"]["password"] = winlink.password;
@ -129,6 +131,8 @@ bool Configuration::readFile() {
battery.sendVoltage = data["battery"]["sendVoltage"] | false;
battery.voltageAsTelemetry = data["battery"]["voltageAsTelemetry"] | false;
battery.sendVoltageAlways = data["battery"]["sendVoltageAlways"] | false;
battery.monitorVoltage = data["battery"]["monitorVoltage"] | false;
battery.sleepVoltage = data["battery"]["sleepVoltage"] | 2.9;
winlink.password = data["winlink"]["password"] | "NOPASS";
@ -238,6 +242,8 @@ void Configuration::init() {
battery.sendVoltage = false;
battery.voltageAsTelemetry = false;
battery.sendVoltageAlways = false;
battery.monitorVoltage = false;
battery.sleepVoltage = 2.9;
winlink.password = "NOPASS";

View File

@ -36,6 +36,8 @@ public:
bool sendVoltage;
bool voltageAsTelemetry;
bool sendVoltageAlways;
bool monitorVoltage;
float sleepVoltage;
};
class Winlink {

View File

@ -142,6 +142,8 @@ namespace WEB_Utils {
Config.battery.sendVoltage = request->hasParam("battery.sendVoltage", true);
Config.battery.voltageAsTelemetry = request->hasParam("battery.voltageAsTelemetry", true);
Config.battery.sendVoltageAlways = request->hasParam("battery.sendVoltageAlways", true);
Config.battery.monitorVoltage = request->hasParam("battery.monitorVoltage", true);
Config.battery.sleepVoltage = request->getParam("battery.sleepVoltage", true)->value().toFloat();
// Winlink
Config.winlink.password = request->getParam("winlink.password", true)->value();
@ -188,7 +190,7 @@ namespace WEB_Utils {
// WiFi AP
Config.wifiAP.password = request->getParam("wifiAP.password", true)->value();
Config.wifiAP.active = false; // when Configuration is finished Tracker returns to normal mode.
Config.wifiAP.active = true;//false; // when Configuration is finished Tracker returns to normal mode.
Config.writeFile();