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": { "battery": {
"sendVoltage": false, "sendVoltage": false,
"voltageAsTelemetry": true, "voltageAsTelemetry": true,
"sendVoltageAlways": false "sendVoltageAlways": false,
"monitorVoltage": false,
"sleepVoltage": 2.9
}, },
"other": { "other": {
"simplifiedTrackerMode": false, "simplifiedTrackerMode": false,

View File

@ -480,7 +480,8 @@
placeholder="0.0" placeholder="0.0"
class="form-control" class="form-control"
step="0.1" step="0.1"
min="0" min="-5.0"
max="5.0"
/> />
<span class="input-group-text" <span class="input-group-text"
>Celsius</span >Celsius</span
@ -616,6 +617,43 @@
> >
</div> </div>
</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> </div>
</div> </div>

View File

@ -216,6 +216,8 @@ function loadSettings(settings) {
document.getElementById("battery.sendVoltage").checked = settings.battery.sendVoltage; document.getElementById("battery.sendVoltage").checked = settings.battery.sendVoltage;
document.getElementById("battery.voltageAsTelemetry").checked = settings.battery.voltageAsTelemetry; 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 // WINLINK
document.getElementById("winlink.password").value = settings.winlink.password; document.getElementById("winlink.password").value = settings.winlink.password;

View File

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

View File

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

View File

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

View File

@ -142,6 +142,8 @@ namespace WEB_Utils {
Config.battery.sendVoltage = request->hasParam("battery.sendVoltage", true); Config.battery.sendVoltage = request->hasParam("battery.sendVoltage", true);
Config.battery.voltageAsTelemetry = request->hasParam("battery.voltageAsTelemetry", true); Config.battery.voltageAsTelemetry = request->hasParam("battery.voltageAsTelemetry", true);
Config.battery.sendVoltageAlways = request->hasParam("battery.sendVoltageAlways", 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 // Winlink
Config.winlink.password = request->getParam("winlink.password", true)->value(); Config.winlink.password = request->getParam("winlink.password", true)->value();
@ -188,7 +190,7 @@ namespace WEB_Utils {
// WiFi AP // WiFi AP
Config.wifiAP.password = request->getParam("wifiAP.password", true)->value(); 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(); Config.writeFile();