battery5-1

This commit is contained in:
richonguzman
2024-05-24 10:43:06 -04:00
parent b06b91d258
commit c6888adca8
7 changed files with 160 additions and 94 deletions
+2 -2
View File
@@ -48,11 +48,11 @@
"battery": {
"sendInternalVoltage": false,
"monitorInternalVoltage": false,
"internalSleepVoltage": 0.0,
"internalSleepVoltage": 3.0,
"sendExternalVoltage": false,
"externalVoltagePin": 34,
"monitorExternalVoltage": false,
"externalSleepVoltage": 0.0
"externalSleepVoltage": 3.0
},
"bme": {
"active": false,
+84 -18
View File
@@ -928,7 +928,7 @@
<small>Battery Monitor & Health</small>
</div>
<div class="col-9 mt-2">
<div class="row mt-3">
<div class="row mt-2">
<div class="col-6">
<div class="form-check form-switch">
<input
@@ -943,9 +943,7 @@
>Send Internal Voltage</label
>
</div>
<div
class="form-check form-switch mt-1"
>
<div class="form-check form-switch">
<input
type="checkbox"
name="battery.sendExternalVoltage"
@@ -958,20 +956,88 @@
>Send External Voltage</label
>
</div>
<div class="form-check form-switch mt-3">
<input
type="checkbox"
name="battery.monitorInternalVoltage"
id="battery.monitorInternalVoltage"
class="form-check-input"
/>
<label
for="battery.monitorInternalVoltage"
class="form-label"
>Monitor Internal Voltage Health</label
>
</div>
<div class="col">
<label for="battery.internalSleepVoltage" class="form-label"
>Internal Sleep Voltage</label
>
<div class="input-group">
<input
type="number"
name="battery.internalSleepVoltage"
id="battery.internalSleepVoltage"
placeholder="3.0"
class="form-control"
step="0.1"
min="3.0"
max="4.2"
/>
<span class="input-group-text"
>volts</span
>
</div>
</div>
</div>
<div class="form-floating col-6 p-1">
<input
type="text"
name="battery.externalVoltagePin"
id="battery.externalVoltagePin"
value="34"
class="form-control"
/>
<label
for="battery.externalVoltagePin"
class="form-label"
>External Voltage Pin</label
>
<div class="col-6">
<div class="form-floating col-7">
<input
type="text"
name="battery.externalVoltagePin"
id="battery.externalVoltagePin"
value="34"
class="form-control"
/>
<label
for="battery.externalVoltagePin"
class="form-label"
>External Voltage Pin</label
>
</div>
<div class="form-check form-switch mt-4">
<input
type="checkbox"
name="battery.monitorExternalVoltage"
id="battery.monitorExternalVoltage"
class="form-check-input"
/>
<label
for="battery.monitorExternalVoltage"
class="form-label"
>Monitor External Voltage Health</label
>
</div>
<div class="col">
<label for="battery.externalSleepVoltage" class="form-label"
>External Sleep Voltage</label
>
<div class="input-group">
<input
type="number"
name="battery.externalSleepVoltage"
id="battery.externalSleepVoltage"
placeholder="3.0"
class="form-control"
step="0.1"
min="3.0"
max="24.0"
/>
<span class="input-group-text"
>volts</span
>
</div>
</div>
</div>
</div>
</div>
@@ -1273,7 +1339,7 @@
placeholder="0"
class="form-control"
step="6"
min="0"
min="6"
max="168"
/>
<span class="input-group-text"
+12 -13
View File
@@ -75,7 +75,7 @@ function loadSettings(settings) {
currentSettings = settings;
// General
document.getElementById("callsign").value = settings.callsign;
// document.getElementById("stationMode").value = settings.stationMode;
document.getElementById("bme.active").checked = settings.bme.active;
document.getElementById("bme.heightCorrection").value = settings.bme.heightCorrection;
document.getElementById("bme.temperatureCorrection").value = settings.bme.temperatureCorrection.toFixed(1);
@@ -125,7 +125,6 @@ function loadSettings(settings) {
document.getElementById("aprs_is.active").checked = settings.aprs_is.active;
document.getElementById("aprs_is.messagesToRF").checked = settings.aprs_is.messagesToRF;
document.getElementById("aprs_is.objectsToRF").checked = settings.aprs_is.objectsToRF;
//document.getElementById("aprs_is.toRF").checked = settings.aprs_is.toRF;
document.getElementById("aprs_is.server").value = settings.aprs_is.server;
document.getElementById("aprs_is.port").value = settings.aprs_is.port;
document.getElementById("aprs_is.filter").value = settings.aprs_is.filter;
@@ -140,14 +139,22 @@ function loadSettings(settings) {
timeoutInput.disabled = true;
}
// BATTERY
document.getElementById("battery.sendInternalVoltage").checked = settings.battery.sendInternalVoltage;
document.getElementById("battery.monitorInternalVoltage").checked = settings.battery.monitorInternalVoltage;
document.getElementById("battery.internalSleepVoltage").value = settings.battery.internalSleepVoltage.toFixed(1);
document.getElementById("battery.sendExternalVoltage").checked = settings.battery.sendExternalVoltage;
document.getElementById("battery.externalVoltagePin").value = settings.battery.externalVoltagePin;
document.getElementById("battery.monitorExternalVoltage").checked = settings.battery.monitorExternalVoltage;
document.getElementById("battery.externalSleepVoltage").value = settings.battery.externalSleepVoltage.toFixed(1);
// WiFi Auto AP
document.getElementById("wifi.autoAP.password").value = settings.wifi.autoAP.password;
document.getElementById("wifi.autoAP.powerOff").value = settings.wifi.autoAP.powerOff;
// Digi
// document.getElementById("digi.comment").value = settings.digi.comment;
// document.getElementById("digi.latitude").value = settings.digi.latitude;
// document.getElementById("digi.longitude").value = settings.digi.longitude;
document.getElementById("digi.mode").value = settings.digi.mode;
// TNC
@@ -164,11 +171,6 @@ function loadSettings(settings) {
// Beacon
document.getElementById("beacon.interval").value = settings.beacon.interval;
document.getElementById("other.rememberStationTime").value = settings.other.rememberStationTime;
document.getElementById("battery.sendInternalVoltage").checked = settings.battery.sendInternalVoltage;
document.getElementById("battery.sendExternalVoltage").checked = settings.battery.sendExternalVoltage;
document.getElementById("battery.externalVoltagePin").value = settings.battery.externalVoltagePin;
// document.getElementById("beacon.igateSendsLoRaBeacon").value = settings.beacon.igateSendsLoRaBeacon;
// document.getElementById("beacon.igateRepeatLoRaPackets").value = settings.beacon.igateRepeatLoRaPackets;
document.getElementById("beacon.path").value = settings.beacon.path;
document.getElementById("beacon.latitude").value = settings.beacon.latitude;
document.getElementById("beacon.longitude").value = settings.beacon.longitude;
@@ -186,9 +188,6 @@ function loadSettings(settings) {
}
// LoRa
// document.getElementById("lora.digirepeaterTxFreq").value = settings.lora.digirepeaterTxFreq;
// document.getElementById("lora.iGateFreq").value = settings.lora.iGateFreq;
// document.getElementById("lora.digirepeaterRxFreq").value = settings.lora.digirepeaterRxFreq;
document.getElementById("lora.txFreq").value = settings.lora.txFreq;
document.getElementById("lora.rxFreq").value = settings.lora.rxFreq;
document.getElementById("lora.txActive").checked = settings.lora.txActive;
+1 -1
View File
@@ -37,7 +37,7 @@ ________________________________________________________________________________
#include "A7670_utils.h"
#endif
String versionDate = "2024.05.23";
String versionDate = "2024.05.24";
Configuration Config;
WiFiClient espClient;
+46 -57
View File
@@ -24,8 +24,6 @@ void Configuration::writeFile() {
for (int i = 0; i < wifiAPs.size(); i++) {
data["wifi"]["AP"][i]["ssid"] = wifiAPs[i].ssid;
data["wifi"]["AP"][i]["password"] = wifiAPs[i].password;
// data["wifi"]["AP"][i]["latitude"] = wifiAPs[i].latitude;
// data["wifi"]["AP"][i]["longitude"] = wifiAPs[i].longitude;
}
}
@@ -34,18 +32,6 @@ void Configuration::writeFile() {
data["callsign"] = callsign;
data["other"]["rememberStationTime"] = rememberStationTime;
data["battery"]["sendInternalVoltage"] = battery.sendInternalVoltage;
data["battery"]["sendExternalVoltage"] = battery.sendExternalVoltage;
data["battery"]["externalVoltagePin"] = battery.externalVoltagePin;
data["digi"]["mode"] = digi.mode;
data["tnc"]["enableServer"] = tnc.enableServer;
data["tnc"]["enableSerial"] = tnc.enableSerial;
data["tnc"]["acceptOwn"] = tnc.acceptOwn;
data["aprs_is"]["active"] = aprs_is.active;
data["aprs_is"]["passcode"] = aprs_is.passcode;
data["aprs_is"]["server"] = aprs_is.server;
@@ -53,11 +39,8 @@ void Configuration::writeFile() {
data["aprs_is"]["filter"] = aprs_is.filter;
data["aprs_is"]["messagesToRF"] = aprs_is.messagesToRF;
data["aprs_is"]["objectsToRF"] = aprs_is.objectsToRF;
data["beacon"]["comment"] = beacon.comment;
// data["beacon"]["igateRepeatsLoRaPackets"] = beacon.igateRepeatsLoRaPackets;
// data["beacon"]["igateSendsLoRaBeacons"] = beacon.igateSendsLoRaBeacons;
data["beacon"]["interval"] = beacon.interval;
data["beacon"]["latitude"] = beacon.latitude;
data["beacon"]["longitude"] = beacon.longitude;
@@ -67,9 +50,8 @@ void Configuration::writeFile() {
data["beacon"]["sendViaRF"] = beacon.sendViaRF;
data["beacon"]["path"] = beacon.path;
// data["lora"]["iGateFreq"] = loramodule.iGateFreq;
// data["lora"]["digirepeaterTxFreq"] = loramodule.digirepeaterTxFreq;
// data["lora"]["digirepeaterRxFreq"] = loramodule.digirepeaterRxFreq;
data["digi"]["mode"] = digi.mode;
data["lora"]["rxFreq"] = loramodule.rxFreq;
data["lora"]["txFreq"] = loramodule.txFreq;
data["lora"]["spreadingFactor"] = loramodule.spreadingFactor;
@@ -83,25 +65,40 @@ void Configuration::writeFile() {
data["display"]["timeout"] = display.timeout;
data["display"]["turn180"] = display.turn180;
data["syslog"]["active"] = syslog.active;
data["syslog"]["server"] = syslog.server;
data["syslog"]["port"] = syslog.port;
data["battery"]["sendInternalVoltage"] = battery.sendInternalVoltage;
data["battery"]["monitorInternalVoltage"] = battery.monitorInternalVoltage;
data["battery"]["internalSleepVoltage"] = battery.internalSleepVoltage;
data["battery"]["sendExternalVoltage"] = battery.sendExternalVoltage;
data["battery"]["externalVoltagePin"] = battery.externalVoltagePin;
data["battery"]["monitorExternalVoltage"] = battery.monitorExternalVoltage;
data["battery"]["externalSleepVoltage"] = battery.externalSleepVoltage;
data["bme"]["active"] = bme.active;
data["bme"]["heightCorrection"] = bme.heightCorrection;
data["bme"]["temperatureCorrection"] = bme.temperatureCorrection;
data["ota"]["username"] = ota.username;
data["ota"]["password"] = ota.password;
data["syslog"]["active"] = syslog.active;
data["syslog"]["server"] = syslog.server;
data["syslog"]["port"] = syslog.port;
data["other"]["lowPowerMode"] = lowPowerMode;
data["other"]["lowVoltageCutOff"] = lowVoltageCutOff;
data["other"]["backupDigiMode"] = backupDigiMode;
data["tnc"]["enableServer"] = tnc.enableServer;
data["tnc"]["enableSerial"] = tnc.enableSerial;
data["tnc"]["acceptOwn"] = tnc.acceptOwn;
data["other"]["rebootMode"] = rebootMode;
data["other"]["rebootModeTime"] = rebootModeTime;
data["ota"]["username"] = ota.username;
data["ota"]["password"] = ota.password;
data["other"]["rememberStationTime"] = rememberStationTime;
data["other"]["backupDigiMode"] = backupDigiMode;
data["other"]["lowPowerMode"] = lowPowerMode;
data["other"]["lowVoltageCutOff"] = lowVoltageCutOff;
serializeJson(data, configFile);
configFile.close();
@@ -137,9 +134,14 @@ bool Configuration::readFile() {
callsign = data["callsign"].as<String>();
rememberStationTime = data["other"]["rememberStationTime"].as<int>();
battery.sendInternalVoltage = data["battery"]["sendInternalVoltage"].as<bool>();
battery.sendExternalVoltage = data["battery"]["sendExternalVoltage"].as<bool>();
battery.externalVoltagePin = data["battery"]["externalVoltagePin"].as<int>();
battery.sendInternalVoltage = data["battery"]["sendInternalVoltage"].as<bool>();
battery.monitorInternalVoltage = data["battery"]["monitorInternalVoltage"].as<bool>();
battery.internalSleepVoltage = data["battery"]["internalSleepVoltage"].as<float>();
battery.sendExternalVoltage = data["battery"]["sendExternalVoltage"].as<bool>();
battery.externalVoltagePin = data["battery"]["externalVoltagePin"].as<int>();
battery.monitorExternalVoltage = data["battery"]["monitorExternalVoltage"].as<bool>();
battery.externalSleepVoltage = data["battery"]["externalSleepVoltage"].as<float>();
aprs_is.passcode = data["aprs_is"]["passcode"].as<String>();
aprs_is.server = data["aprs_is"]["server"].as<String>();
@@ -188,8 +190,6 @@ bool Configuration::readFile() {
beacon.overlay = data["beacon"]["overlay"].as<String>();
beacon.symbol = data["beacon"]["symbol"].as<String>();
beacon.interval = data["beacon"]["interval"].as<int>();
// beacon.igateSendsLoRaBeacons = data["beacon"]["igateSendsLoRaBeacons"].as<bool>();
// beacon.igateRepeatsLoRaPackets = data["beacon"]["igateRepeatsLoRaPackets"].as<bool>();
beacon.sendViaAPRSIS = data["beacon"]["sendViaAPRSIS"].as<bool>();
beacon.sendViaRF = data["beacon"]["sendViaRF"].as<bool>();
beacon.path = data["beacon"]["path"].as<String>();
@@ -198,7 +198,6 @@ bool Configuration::readFile() {
aprs_is.active = data["aprs_is"]["active"].as<bool>();
aprs_is.filter = data["aprs_is"]["filter"].as<String>();
//aprs_is.toRF = data["aprs_is"]["toRF"].as<bool>();
aprs_is.messagesToRF = data["aprs_is"]["messagesToRF"].as<bool>();
aprs_is.objectsToRF = data["aprs_is"]["objectsToRF"].as<bool>();
@@ -211,8 +210,6 @@ bool Configuration::readFile() {
String iGateComment = data["iGateComment"].as<String>();
int beaconInterval = data["other"]["beaconInterval"].as<int>();
// bool igateSendsLoRaBeacons = data["other"]["igateSendsLoRaBeacons"].as<bool>();
// bool igateRepeatsLoRaPackets = data["other"]["igateRepeatsLoRaPackets"].as<bool>();
long iGateFreq = data["lora"]["iGateFreq"].as<long>();
long digirepeaterTxFreq = data["lora"]["digirepeaterTxFreq"].as<long>();
@@ -225,8 +222,7 @@ bool Configuration::readFile() {
beacon.latitude = digiLatitude;
beacon.longitude = digiLongitude;
beacon.interval = beaconInterval;
// beacon.igateSendsLoRaBeacons = igateSendsLoRaBeacons;
// beacon.igateRepeatsLoRaPackets = igateRepeatsLoRaPackets;
loramodule.txFreq = digirepeaterTxFreq;
loramodule.rxFreq = digirepeaterRxFreq;
loramodule.rxActive = true;
@@ -278,33 +274,25 @@ void Configuration::init() {
WiFi_AP wifiap;
wifiap.ssid = "";
wifiap.password = "";
// wifiap.latitude = 0.0; // deprecated
// wifiap.longitude = 0.0; // deprecated
wifiAPs.push_back(wifiap);
wifiAutoAP.password = "1234567890";
wifiAutoAP.powerOff = 15;
callsign = "N0CALL";
// stationMode = 1; // deprecated
// iGateComment = "LoRa_APRS_iGate Development"; // deprecated
beacon.comment = "LoRa APRS"; // new
beacon.latitude = 0.0; // new
beacon.longitude = 0.0; // new
beacon.interval = 15; // new
// beacon.igateRepeatsLoRaPackets = false; // new
// beacon.igateSendsLoRaBeacons = false; // new
beacon.overlay = "L"; // new
beacon.symbol = "#"; // new
beacon.sendViaAPRSIS = true; // new
beacon.sendViaRF = false; // new
beacon.path = "WIDE1-1"; // new
digi.mode = 0; // new
// digi.comment = "LoRa_APRS_iGate Development"; // deprecated
// digi.latitude = 0.0; // deprecated
// digi.longitude = 0.0; // deprecated
digi.mode = 0;
tnc.enableServer = false;
tnc.enableSerial = false;
@@ -315,13 +303,9 @@ void Configuration::init() {
aprs_is.server = "rotate.aprs2.net";
aprs_is.port = 14580;
aprs_is.filter = "m/10"; // new
//aprs_is.toRF = false; // new
aprs_is.messagesToRF = false;
aprs_is.objectsToRF = false;
// loramodule.iGateFreq = 433775000; // deprecated
// loramodule.digirepeaterTxFreq = 433775000; // deprecated
// loramodule.digirepeaterRxFreq = 433900000; // deprecated
loramodule.txFreq = 433775000; // new
loramodule.rxFreq = 433775000; // new
loramodule.spreadingFactor = 12;
@@ -348,10 +332,15 @@ void Configuration::init() {
rememberStationTime = 30;
battery.sendInternalVoltage = false;
battery.sendExternalVoltage = false;
battery.externalVoltagePin = 34;
battery.sendInternalVoltage = false;
battery.monitorInternalVoltage = false;
battery.internalSleepVoltage = 3.0;
battery.sendExternalVoltage = false;
battery.externalVoltagePin = 34;
battery.monitorExternalVoltage = false;
battery.externalSleepVoltage = 3.0;
lowPowerMode = false;
lowVoltageCutOff = 0;
+4 -3
View File
@@ -69,8 +69,12 @@ public:
class BATTERY {
public:
bool sendInternalVoltage;
bool monitorInternalVoltage;
float internalSleepVoltage;
bool sendExternalVoltage;
int externalVoltagePin;
bool monitorExternalVoltage;
float externalSleepVoltage;
};
class BME {
@@ -105,9 +109,6 @@ public:
bool reload; // ?
String callsign;
int rememberStationTime;
/*bool sendBatteryVoltage;
bool externalVoltageMeasurement;
int externalVoltagePin;*/
bool lowPowerMode;
double lowVoltageCutOff;
bool backupDigiMode;
+11
View File
@@ -157,11 +157,22 @@ namespace WEB_Utils {
Config.ota.password = request->getParam("ota.password", true)->value();
Config.rememberStationTime = request->getParam("other.rememberStationTime", true)->value().toInt();
Config.battery.sendInternalVoltage = request->hasParam("battery.sendInternalVoltage", true);
Config.battery.monitorInternalVoltage = request->hasParam("battery.monitorInternalVoltage", true);
if (Config.battery.monitorInternalVoltage) {
Config.battery.internalSleepVoltage = request->getParam("battery.internalSleepVoltage", true)->value().toFloat();
}
Config.battery.sendExternalVoltage = request->hasParam("battery.sendExternalVoltage", true);
if (Config.battery.sendExternalVoltage) {
Config.battery.externalVoltagePin = request->getParam("battery.externalVoltagePin", true)->value().toInt();
}
Config.battery.monitorExternalVoltage = request->hasParam("battery.monitorExternalVoltage", true);
if (Config.battery.monitorExternalVoltage) {
Config.battery.externalSleepVoltage = request->getParam("battery.externalSleepVoltage", true)->value().toFloat();
}
Config.backupDigiMode = request->hasParam("other.backupDigiMode", true);