This commit is contained in:
richonguzman 2024-06-26 18:13:02 -04:00
parent 5d9493314d
commit 601b72da9f
4 changed files with 56 additions and 37 deletions

View file

@ -107,7 +107,7 @@
Station
</h5>
<small
>>Add your ham callsign and SSID. Optionally,
>Add your ham callsign and SSID. Optionally,
you can leave a comment describing your
station. In the bottom there is a field for
personal note that can only be seen in WEB GUI.</small
@ -249,7 +249,7 @@
name="personalNote"
id="personalNote"
class="form-control"
placeholder="iGate/Digirepeater description"
placeholder="A Couple of words."
/>
</div>
</div>
@ -940,13 +940,9 @@
</svg>
Battery
</h5>
<small>Battery Monitor & Health
<br>
<br>
Max Voltage on input pin is 3.3V.
<br>
Calculate voltage divider accordingly.
</small>
<small>Battery Monitor & Health <br>
Max Voltage on input pin is 3.3V.
Calculate voltage divider accordingly.</small>
</div>
<div class="col-9 mt-2">
<div class="row mt-2">
@ -1010,6 +1006,15 @@
>
</div>
</div>
<div class="col">
<label for="battery.voltageDividerR1" class="form-label">External Voltage divider R1</label>
<div class="input-group">
<input type="number" name="battery.voltageDividerR1"
id="battery.voltageDividerR1" placeholder="R1" class="form-control"
step="0.1" min="1" max="1000" />
<span class="input-group-text">kOhm</span>
</div>
</div>
</div>
<div class="col-6">
<div class="form-floating col-7">
@ -1058,6 +1063,13 @@
>volts</span
>
</div>
<div class="col">
<label for="battery.voltageDividerR2" class="form-label">External Voltage divider R2</label>
<div class="input-group">
<input type="number" name="battery.voltageDividerR2" id="battery.voltageDividerR2" placeholder="R2" class="form-control" step="0.1" min="1" max="1000" />
<span class="input-group-text">kOhm</span>
</div>
</div>
</div>
</div>
</div>
@ -1723,4 +1735,4 @@
</body>
<script src="/bootstrap.js"></script>
<script src="/script.js"></script>
</html>
</html>

View file

@ -162,6 +162,8 @@ function loadSettings(settings) {
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.voltageDividerR1").value = settings.battery.voltageDividerR1;
document.getElementById("battery.voltageDividerR2").value = settings.battery.voltageDividerR2;
document.getElementById("battery.monitorExternalVoltage").checked = settings.battery.monitorExternalVoltage;
document.getElementById("battery.externalSleepVoltage").value = settings.battery.externalSleepVoltage.toFixed(1);
@ -271,8 +273,9 @@ function toggleFields() {
'input[name="battery.externalVoltagePin"]'
);
externalVoltagePinInput.disabled =
!sendExternalVoltageCheckbox.checked;
externalVoltagePinInput.disabled = !sendExternalVoltageCheckbox.checked;
voltageDividerR1.disabled = !sendExternalVoltageCheckbox.checked;
voltageDividerR2.disabled = !sendExternalVoltageCheckbox.checked;
}
const sendExternalVoltageCheckbox = document.querySelector(
@ -282,8 +285,18 @@ const externalVoltagePinInput = document.querySelector(
'input[name="battery.externalVoltagePin"]'
);
const voltageDividerR1 = document.querySelector(
'input[name="battery.voltageDividerR1"]'
);
const voltageDividerR2 = document.querySelector(
'input[name="battery.voltageDividerR2"]'
);
sendExternalVoltageCheckbox.addEventListener("change", function () {
externalVoltagePinInput.disabled = !this.checked;
voltageDividerR1.disabled = !this.checked;
voltageDividerR2.disabled = !this.checked;
});
document.querySelector(".new button").addEventListener("click", function () {

View file

@ -73,8 +73,9 @@ void Configuration::writeFile() {
data["battery"]["externalVoltagePin"] = battery.externalVoltagePin;
data["battery"]["monitorExternalVoltage"] = battery.monitorExternalVoltage;
data["battery"]["externalSleepVoltage"] = battery.externalSleepVoltage;
data["battery"]["voltageDividerR1"] = battery.voltageDividerR1;
data["battery"]["voltageDividerR2"] = battery.voltageDividerR2;
data["battery"]["voltageDividerR1"] = battery.voltageDividerR1;
data["battery"]["voltageDividerR2"] = battery.voltageDividerR2;
data["bme"]["active"] = bme.active;
data["bme"]["heightCorrection"] = bme.heightCorrection;
@ -101,7 +102,7 @@ void Configuration::writeFile() {
data["other"]["lowPowerMode"] = lowPowerMode;
data["other"]["lowVoltageCutOff"] = lowVoltageCutOff;
data["personalNote"] = personalNote;
data["personalNote"] = personalNote;
serializeJson(data, configFile);
@ -146,8 +147,8 @@ bool Configuration::readFile() {
battery.externalVoltagePin = data["battery"]["externalVoltagePin"].as<int>();
battery.monitorExternalVoltage = data["battery"]["monitorExternalVoltage"].as<bool>();
battery.externalSleepVoltage = data["battery"]["externalSleepVoltage"].as<float>();
battery.voltageDividerR1 = data["battery"]["voltageDividerR1"].as<float>();
battery.voltageDividerR2 = data["battery"]["voltageDividerR2"].as<float>();
battery.voltageDividerR1 = data["battery"]["voltageDividerR1"].as<float>();
battery.voltageDividerR2 = data["battery"]["voltageDividerR2"].as<float>();
aprs_is.passcode = data["aprs_is"]["passcode"].as<String>();
aprs_is.server = data["aprs_is"]["server"].as<String>();
@ -185,7 +186,7 @@ bool Configuration::readFile() {
rebootMode = data["other"]["rebootMode"].as<bool>();
rebootModeTime = data["other"]["rebootModeTime"].as<int>();
personalNote = data["personalNote"].as<String>();
personalNote = data["personalNote"].as<String>();
int stationMode = data["stationMode"].as<int>(); // deprecated but need to specify config version
@ -338,7 +339,6 @@ void Configuration::init() {
ota.username = "";
ota.password = "";
rememberStationTime = 30;
battery.sendInternalVoltage = false;
@ -349,8 +349,8 @@ void Configuration::init() {
battery.externalVoltagePin = 34;
battery.monitorExternalVoltage = false;
battery.externalSleepVoltage = 3.0;
battery.voltageDividerR1 = 100.0;
battery.voltageDividerR2 = 27.0;
battery.voltageDividerR1 = 100.0;
battery.voltageDividerR2 = 27.0;
lowPowerMode = false;
lowVoltageCutOff = 0;

View file

@ -29,7 +29,6 @@ extern const char web_bootstrap_js[] asm("_binary_data_embed_bootstrap_js_gz_sta
extern const char web_bootstrap_js_end[] asm("_binary_data_embed_bootstrap_js_gz_end");
extern const size_t web_bootstrap_js_len = web_bootstrap_js_end - web_bootstrap_js;
namespace WEB_Utils {
AsyncWebServer server(80);
@ -141,16 +140,17 @@ namespace WEB_Utils {
Config.battery.sendInternalVoltage = request->hasParam("battery.sendInternalVoltage", true);
Config.battery.monitorInternalVoltage = request->hasParam("battery.monitorInternalVoltage", true);
Config.battery.internalSleepVoltage = request->getParam("battery.internalSleepVoltage", true)->value().toFloat();
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.voltageDividerR1 = request->getParam("battery.voltageDividerR1", true)->value().toFloat();
Config.battery.voltageDividerR2 = request->getParam("battery.voltageDividerR2", true)->value().toFloat();
}
Config.battery.monitorExternalVoltage = request->hasParam("battery.monitorExternalVoltage", true);
Config.battery.externalSleepVoltage = request->getParam("battery.externalSleepVoltage", true)->value().toFloat();
Config.battery.externalSleepVoltage = request->getParam("battery.externalSleepVoltage", true)->value().toFloat();
Config.bme.active = request->hasParam("bme.active", true);
Config.bme.heightCorrection = request->getParam("bme.heightCorrection", true)->value().toInt();
Config.bme.temperatureCorrection = request->getParam("bme.temperatureCorrection", true)->value().toFloat();
@ -158,31 +158,25 @@ namespace WEB_Utils {
Config.beacon.symbol = "_";
}
Config.syslog.active = request->hasParam("syslog.active", true);
if (Config.syslog.active) {
Config.syslog.server = request->getParam("syslog.server", true)->value();
Config.syslog.port = request->getParam("syslog.port", true)->value().toInt();
Config.syslog.server = request->getParam("syslog.server", true)->value();
Config.syslog.port = request->getParam("syslog.port", true)->value().toInt();
}
Config.tnc.enableServer = request->hasParam("tnc.enableServer", true);
Config.tnc.enableSerial = request->hasParam("tnc.enableSerial", true);
Config.tnc.acceptOwn = request->hasParam("tnc.acceptOwn", true);
Config.tnc.enableServer = request->hasParam("tnc.enableServer", true);
Config.tnc.enableSerial = request->hasParam("tnc.enableSerial", true);
Config.tnc.acceptOwn = request->hasParam("tnc.acceptOwn", true);
Config.rebootMode = request->hasParam("other.rebootMode", true);
Config.rebootModeTime = request->getParam("other.rebootModeTime", true)->value().toInt();
Config.ota.username = request->getParam("ota.username", true)->value();
Config.ota.password = request->getParam("ota.password", true)->value();
Config.rememberStationTime = request->getParam("other.rememberStationTime", true)->value().toInt();
Config.backupDigiMode = request->hasParam("other.backupDigiMode", true);
Config.lowPowerMode = request->hasParam("other.lowPowerMode", true);
Config.lowVoltageCutOff = request->getParam("other.lowVoltageCutOff", true)->value().toDouble();