diff --git a/data_embed/bootstrap.css.gz b/data_embed/bootstrap.css.gz
index a9b1e73..9ed1a08 100644
Binary files a/data_embed/bootstrap.css.gz and b/data_embed/bootstrap.css.gz differ
diff --git a/data_embed/bootstrap.js.gz b/data_embed/bootstrap.js.gz
index ff4f7be..30df0fc 100644
Binary files a/data_embed/bootstrap.js.gz and b/data_embed/bootstrap.js.gz differ
diff --git a/data_embed/favicon.png.gz b/data_embed/favicon.png.gz
index b66abcf..de4ba93 100644
Binary files a/data_embed/favicon.png.gz and b/data_embed/favicon.png.gz differ
diff --git a/data_embed/index.html b/data_embed/index.html
index 7d40db0..5cdb31d 100644
--- a/data_embed/index.html
+++ b/data_embed/index.html
@@ -360,6 +360,32 @@
+
+
+
+
+ LoRa
+
+
Remember to macht your boards posible Frequencies, SF, CR4.
+
+
+
+
+
+
diff --git a/data_embed/index.html.gz b/data_embed/index.html.gz
index 6064360..52fc4b5 100644
Binary files a/data_embed/index.html.gz and b/data_embed/index.html.gz differ
diff --git a/data_embed/script.js b/data_embed/script.js
index 1d109ae..ff70d5d 100644
--- a/data_embed/script.js
+++ b/data_embed/script.js
@@ -65,6 +65,53 @@ function loadSettings(settings) {
document.getElementById("sendAltitude").checked = settings.other.sendAltitude ;
document.getElementById("disableGPS").checked = settings.other.disableGPS;
+ // LORA
+ const loraContainer = document.getElementById("lora-settings");
+ loraContainer.innerHTML = ""; // Clear previous content
+
+ settings.lora.forEach((lora, index) => {
+ const loraElement = document.createElement("div");
+ loraElement.classList.add("row", "lora", "border-bottom", "py-2");
+
+ loraElement.innerHTML = `
+
+ ${index + 1})
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+ loraContainer.appendChild(loraElement);
+ });
+
// DISPLAY
document.getElementById("display.showSymbol").checked = settings.display.showSymbol;
document.getElementById("display.ecoMode").checked = settings.display.ecoMode;
@@ -104,8 +151,6 @@ function loadSettings(settings) {
document.getElementById("notification.lowBatteryBeep").checked = settings.notification.lowBatteryBeep;
document.getElementById("notification.shutDownBeep").checked = settings.notification.shutDownBeep;
- // LORA
-
// BLUETOOTH
document.getElementById("bluetooth.active").checked = settings.bluetooth.active;
document.getElementById("bluetooth.type").value = settings.bluetooth.type;
@@ -339,6 +384,16 @@ document.getElementById("action.speed").addEventListener("change", function () {
}
});*/
+
+
+
+
+
+
+
+
+
+
const form = document.querySelector("form");
const saveModal = new bootstrap.Modal(document.getElementById("saveModal"), {
diff --git a/data_embed/script.js.gz b/data_embed/script.js.gz
index 304a209..956be91 100644
Binary files a/data_embed/script.js.gz and b/data_embed/script.js.gz differ
diff --git a/data_embed/style.css.gz b/data_embed/style.css.gz
index 97d769f..a9e850e 100644
Binary files a/data_embed/style.css.gz and b/data_embed/style.css.gz differ
diff --git a/src/web_utils.cpp b/src/web_utils.cpp
index 5cb210c..4725915 100644
--- a/src/web_utils.cpp
+++ b/src/web_utils.cpp
@@ -145,6 +145,18 @@ namespace WEB_Utils {
Config.wifiAP.password = request->getParam("wifiAP.password", true)->value();
//Config.wifiAP.active = false; // when Configuration is finished Tracker returns to normal mode.
+ Config.loraTypes[0].frequency = request->getParam("lora.0.frequency", true)->value().toDouble();
+ Config.loraTypes[0].spreadingFactor = request->getParam("lora.0.spreadingFactor", true)->value().toInt();
+ Config.loraTypes[0].codingRate4 = request->getParam("lora.0.codingRate4", true)->value().toInt();
+
+ Config.loraTypes[1].frequency = request->getParam("lora.1.frequency", true)->value().toDouble();
+ Config.loraTypes[1].spreadingFactor = request->getParam("lora.1.spreadingFactor", true)->value().toInt();
+ Config.loraTypes[1].codingRate4 = request->getParam("lora.1.codingRate4", true)->value().toInt();
+
+ Config.loraTypes[2].frequency = request->getParam("lora.2.frequency", true)->value().toDouble();
+ Config.loraTypes[2].spreadingFactor = request->getParam("lora.2.spreadingFactor", true)->value().toInt();
+ Config.loraTypes[2].codingRate4 = request->getParam("lora.2.codingRate4", true)->value().toInt();
+
Config.writeFile();
AsyncWebServerResponse *response = request->beginResponse(302, "text/html", "");