-
-
-
Systeminfo
-
-
-
-
Gerät
-
-
-
- Parameter
- | Value
- |
-
- Hostname |
- %HOSTNAME% |
-
-
-
-
-
-
-
-
Einstellungen
-
-
-
- Parameter
- | Value
- |
-
- DistancePerLube_Default |
- %LUBE_DISTANCE_NORMAL% |
-
-
- DistancePerLube_Rain |
- %LUBE_DISTANCE_RAIN% |
-
-
- tankCapacity_ml |
- %TANK_CAPACITY% |
-
-
- amountPerDose_µl |
- %AMOUNT_PER_DOSE% |
-
-
- TankRemindAtPercentage |
- %TANK_REMIND% |
-
-
- PulsePerRevolution |
- %PULSE_PER_REV% |
-
-
- TireWidth_mm |
- %TIRE_WIDTH_MM% |
-
-
- TireWidthHeight_Ratio |
- %TIRE_RATIO% |
-
-
- RimDiameter_Inch |
- %RIM_DIAMETER% |
-
-
- DistancePerRevolution_mm |
- %DISTANCE_PER_REV% |
-
-
- BleedingPulses |
- %BLEEDING_PULSES% |
-
-
- SpeedSource |
- %SPEED_SOURCE% |
-
-
- GPSBaudRate |
- %GPS_BAUD% |
-
-
- CANSource |
- %CAN_SOURCE% |
-
-
- LED Mode Flash |
- %LED_MODE_FLASH% |
-
-
- LED Max Brightness |
- %LED_MAX_BRIGHTNESS% |
-
-
- LED Min Brightness |
- %LED_MIN_BRIGHTNESS% |
-
-
- EEPROM Version |
- %EEPROM_VERSION% |
-
-
- Checksum |
- %CONFIG_CHECKSUM% |
-
-
-
-
-
-
-
-
-
Betriebsdaten
-
-
-
- Parameter
- | Value
- |
-
- writeCycleCounter |
- %WRITE_CYCLE_COUNT% |
-
-
- PersistenceMarker |
- %PERSISTENCE_MARKER% |
-
-
- tankRemain_µl |
- %TANK_REMAIN_UL% |
-
-
- TravelDistance_highRes |
- %TRAVEL_DISTANCE_HIGHRES% |
-
-
- Odometer |
- %ODOMETER%,%ODOMETER_M% |
-
-
- checksum |
- %PERSISTANCE_CHECKSUM% |
-
-
-
-
-
-
-
-
Live Debug
-
-
-
-
-
-
-
-
-
Firmware
diff --git a/Software/data_src/static/js/websocket.js b/Software/data_src/static/js/websocket.js
index 1efe75f..b716116 100644
--- a/Software/data_src/static/js/websocket.js
+++ b/Software/data_src/static/js/websocket.js
@@ -71,7 +71,7 @@ function onMessage(event) {
const result = processDataString(data_sliced, statusMapping);
console.log("STATUS:");
console.log(JSON.stringify(result, null, 2));
- fillValuestoHTML(result);
+ fillValuesToHTML(result);
return;
}
@@ -80,7 +80,7 @@ function onMessage(event) {
const result = processDataString(data_sliced, staticMapping);
console.log("STATIC:");
console.log(JSON.stringify(result, null, 2));
- fillValuestoHTML(result);
+ fillValuesToHTML(result);
return;
}
}
@@ -139,11 +139,47 @@ function do_resize(textbox) {
else textbox.rows = rows;
}
-function fillValuestoHTML(dataset) {
+function fillValuesToHTML(dataset) {
for (var key in dataset) {
- var inputElement = document.getElementById(key);
- if (inputElement) {
- inputElement.value = dataset[key];
+ var element = document.getElementById(key);
+
+ if (element) {
+ if (element.type === "checkbox") {
+ // Wenn das Element ein Kontrollkästchen ist
+ element.checked = dataset[key] == 1 ? true : false;
+ } else if (element.tagName === "SELECT") {
+ // Wenn das Element ein Dropdown ist
+ setDropdownValue(element, dataset[key]);
+ } else if (element.classList.contains("progress-bar")) {
+ // Wenn das Element eine Fortschrittsleiste ist
+ updateProgressBar(element, dataset[key]);
+ } else if (element.classList.contains("removeable")) {
+ // Wenn das Element ein Settingsabschnitt-div ist
+ if (dataset[key] == 0) element.remove();
+ } else {
+ // Standardmäßig für Textfelder und andere Elemente
+ element.value = dataset[key];
+ }
}
}
}
+
+// Funktion zum Setzen des ausgewählten Werts für Dropdowns
+function setDropdownValue(selectElement, value) {
+ for (var i = 0; i < selectElement.options.length; i++) {
+ if (selectElement.options[i].value === value) {
+ selectElement.selectedIndex = i;
+ break;
+ }
+ }
+}
+
+// Funktion zum Aktualisieren der Fortschrittsleiste
+function updateProgressBar(progressBar, value) {
+ // Wert in das aria-valuenow-Attribut einfügen
+ progressBar.setAttribute("aria-valuenow", value);
+
+ // Breite des Fortschrittsbalkens und inneren Text aktualisieren
+ progressBar.style.width = value + "%";
+ progressBar.textContent = value + "%";
+}
diff --git a/Software/src/webui.cpp b/Software/src/webui.cpp
index 5d4068f..25fe640 100644
--- a/Software/src/webui.cpp
+++ b/Software/src/webui.cpp
@@ -7,7 +7,6 @@ const char *PARAM_MESSAGE = "message";
String processor(const String &var);
void WebserverPOST_Callback(AsyncWebServerRequest *request);
void WebserverNotFound_Callback(AsyncWebServerRequest *request);
-void Webserver_Callback(AsyncWebServerRequest *request);
void WebserverFirmwareUpdate_Callback(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final);
void WebserverEERestore_Callback(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final);
void WebServerEEJSON_Callback(AsyncWebServerRequest *request);
@@ -46,11 +45,10 @@ void initWebUI()
webServer.addHandler(&webSocket);
webServer.serveStatic("/static/", LittleFS, "/static/").setCacheControl("max-age=360000");
+ webServer.serveStatic("/index.htm", LittleFS, "/index.htm").setCacheControl("max-age=360000");
webServer.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
{ request->redirect("/index.htm"); });
webServer.onNotFound(WebserverNotFound_Callback);
- webServer.on("/index.htm", HTTP_GET, Webserver_Callback);
- webServer.on("/post.htm", HTTP_POST, WebserverPOST_Callback);
webServer.on("/eejson", HTTP_GET, WebServerEEJSON_Callback);
webServer.on(
"/doUpdate", HTTP_POST, [](AsyncWebServerRequest *request) {}, WebserverFirmwareUpdate_Callback);
@@ -74,147 +72,6 @@ void Webserver_Process()
}
}
-String processor(const String &var)
-{
- if (var == "HOSTNAME")
- return String(globals.DeviceName);
- if (var == "TANK_REMAIN_CAPACITY")
- return String((PersistenceData.tankRemain_microL / 10) / LubeConfig.tankCapacity_ml);
- if (var == "LUBE_DISTANCE_NORMAL")
- return String(LubeConfig.DistancePerLube_Default);
- if (var == "LUBE_DISTANCE_RAIN")
- return String(LubeConfig.DistancePerLube_Rain);
- if (var == "TANK_CAPACITY")
- return String(LubeConfig.tankCapacity_ml);
- if (var == "AMOUNT_PER_DOSE")
- return String(LubeConfig.amountPerDose_microL);
- if (var == "TANK_REMIND")
- return String(LubeConfig.TankRemindAtPercentage);
- if (var == "PULSE_PER_REV")
- return String(LubeConfig.PulsePerRevolution);
- if (var == "TIRE_WIDTH_MM")
- return String(LubeConfig.TireWidth_mm);
- if (var == "TIRE_RATIO")
- return String(LubeConfig.TireWidthHeight_Ratio);
- if (var == "RIM_DIAMETER")
- return String(LubeConfig.RimDiameter_Inch);
- if (var == "DISTANCE_PER_REV")
- return String(LubeConfig.DistancePerRevolution_mm);
- if (var == "BLEEDING_PULSES")
- return String(LubeConfig.BleedingPulses);
- if (var == "SPEED_SOURCE")
- return String(SpeedSourceString[LubeConfig.SpeedSource]);
- if (var == "GPS_BAUD")
- return String(GPSBaudRateString[LubeConfig.GPSBaudRate]);
- if (var == "CAN_SOURCE")
- return String(CANSourceString[LubeConfig.CANSource]);
- if (var == "LED_MODE_FLASH")
- return String(LubeConfig.LED_Mode_Flash);
- if (var == "LEDFLASHCHECKED")
- return String(LubeConfig.LED_Mode_Flash == true ? "checked" : "");
- if (var == "LED_MAX_BRIGHTNESS")
- return String(LubeConfig.LED_Max_Brightness);
- if (var == "LED_MIN_BRIGHTNESS")
- return String(LubeConfig.LED_Min_Brightness);
- if (var == "EEPROM_VERSION")
- return String(LubeConfig.EEPROM_Version);
- if (var == "CONFIG_CHECKSUM")
- {
- char buffer[7];
- sprintf(buffer, "0x%04X", LubeConfig.checksum);
- return String(buffer);
- }
- if (var == "WRITE_CYCLE_COUNT")
- return String(PersistenceData.writeCycleCounter);
- if (var == "PERSISTENCE_MARKER")
- return String(globals.eePersistanceAdress);
- if (var == "TANK_REMAIN_UL")
- return String(PersistenceData.tankRemain_microL);
- if (var == "TRAVEL_DISTANCE_HIGHRES")
- return String(PersistenceData.TravelDistance_highRes_mm);
- if (var == "ODOMETER")
- return String(PersistenceData.odometer);
- if (var == "ODOMETER_M")
- return String(PersistenceData.odometer_mm / 1000);
- if (var == "PERSISTANCE_CHECKSUM")
- {
- char buffer[7];
- sprintf(buffer, "0x%04X", PersistenceData.checksum);
- return String(buffer);
- }
- if (var == "SHOW_IMPULSE_SETTINGS")
- return LubeConfig.SpeedSource == SOURCE_IMPULSE ? "" : "hidden";
- if (var == "SHOW_CAN_SETTINGS")
- return LubeConfig.SpeedSource == SOURCE_CAN ? "" : "hidden";
- if (var == "SHOW_GPS_SETTINGS")
- return LubeConfig.SpeedSource == SOURCE_GPS ? "" : "hidden";
-
- if (var == "SOURCE_SELECT_OPTIONS")
- {
- String temp;
- for (uint32_t i = 0; i < SpeedSourceString_Elements; i++)
- {
- String selected = LubeConfig.SpeedSource == i ? " selected " : "";
- temp = temp + "";
- }
- return temp;
- }
-
- if (var == "CANSOURCE_SELECT_OPTIONS")
- {
- String temp;
- for (uint32_t i = 0; i < CANSourceString_Elements; i++)
- {
- String selected = LubeConfig.CANSource == i ? " selected " : "";
- temp = temp + "";
- }
- return temp;
- }
-
- if (var == "GPSBAUD_SELECT_OPTIONS")
- {
- String temp;
- for (uint32_t i = 0; i < GPSBaudRateString_Elements; i++)
- {
- String selected = LubeConfig.GPSBaudRate == i ? " selected " : "";
- temp = temp + "";
- }
- return temp;
- }
-
- if (var == "SYSTEM_STATUS")
- return String(globals.systemStatustxt);
-
- if (var == "SW_VERSION")
- {
- char buffer[6];
- snprintf(buffer, sizeof(buffer), "%d.%02d", constants.FW_Version_major, constants.FW_Version_minor);
- return String(buffer);
- }
-
- if (var == "FS_VERSION")
- return String(globals.FlashVersion);
-
- if (var == "GIT_REV")
- return String(constants.GitHash);
-
- if (var == "MEASURED_PULSES")
- return String(globals.measuredPulses);
-
- if (var == "MEASURE_BTN")
- return String(globals.measurementActive == true ? "Stop" : "Start");
-
- if (var == "PLACEHOLDER")
- return "placeholder";
-
- return String();
-}
-
-void Webserver_Callback(AsyncWebServerRequest *request)
-{
- request->send(LittleFS, "/index.htm", "text/html", false, processor);
-}
-
void WebserverPOST_Callback(AsyncWebServerRequest *request)
{
request->send(LittleFS, "/post.htm", "text/html", false, processor);
@@ -647,13 +504,8 @@ void Websocket_RefreshClientData_Status(uint32_t client_id, bool send_mapping)
{
const char mapping[] = "MAPPING_STATUS:"
"SystemStatus;"
- "TankRemain;"
- "TravelDistance_hr;"
- "Odometer;"
- "Odometer_mm;"
- "writeCycleCounter;"
- "BleedingPulses;"
- "TankPercent;";
+ "tankremain;"
+ "Odometer;";
if (client_id > 0)
webSocket.text(client_id, mapping);
@@ -664,13 +516,8 @@ void Websocket_RefreshClientData_Status(uint32_t client_id, bool send_mapping)
String temp = "STATUS:";
temp.concat(String(globals.systemStatustxt) + ";");
- temp.concat(String(PersistenceData.tankRemain_microL) + ";");
- temp.concat(String(PersistenceData.TravelDistance_highRes_mm) + ";");
- temp.concat(String(PersistenceData.odometer) + ";");
- temp.concat(String(PersistenceData.odometer_mm / 1000) + ";");
- temp.concat(String(PersistenceData.writeCycleCounter) + ";");
- temp.concat(String(LubeConfig.BleedingPulses) + ";");
temp.concat(String((PersistenceData.tankRemain_microL / 10) / LubeConfig.tankCapacity_ml) + ";");
+ temp.concat(String(PersistenceData.odometer + (PersistenceData.odometer_mm / 1000)) + ";");
if (client_id > 0)
{
@@ -688,27 +535,26 @@ void Websocket_RefreshClientData_Static(uint32_t client_id, bool send_mapping)
if (send_mapping)
{
const char mapping[] = "MAPPING_STATIC:"
- "DeviceName;"
- "EEPROM_Version;"
- "ConfigChecksum;"
- "DistanceDefault;"
- "DistanceRain;"
- "tankCapacity;"
- "amountPerDose;"
- "TankRemindAtPercentage;"
- "PulsePerRevolution;"
- "TireWidth_mm;"
- "TireWidthHeight_Ratio;"
- "RimDiameter_Inch;"
+ "lubedistancenormal;"
+ "lubedistancerain;"
+ "tankcap;"
+ "pumppulse;"
+ "tankwarn;"
+ "pulserev;"
+ "tirewidth;"
+ "tireratio;"
+ "tiredia;"
"DistancePerRevolution_mm;"
- "SpeedSourceString;"
- "GPSBaudRateString;"
- "CANSourceString;"
- "LED_Mode_Flash;"
- "LED_Max;"
- "LED_Min;"
- "eePersistanceAdress;"
- "PersisChecksum";
+ "sourceselect;"
+ "gpsbaud;"
+ "cansource;"
+ "ledmodeflash;"
+ "ledmaxbrightness;"
+ "ledminbrightness;"
+ "showimpulse;"
+ "showgps;"
+ "showcan;"
+ "BleedingPulses;";
if (client_id > 0)
webSocket.text(client_id, mapping);
@@ -718,9 +564,6 @@ void Websocket_RefreshClientData_Static(uint32_t client_id, bool send_mapping)
String temp = "STATIC:";
- temp.concat(String(globals.DeviceName) + ";");
- temp.concat(String(LubeConfig.EEPROM_Version) + ";");
- temp.concat(String(LubeConfig.checksum) + ";");
temp.concat(String(LubeConfig.DistancePerLube_Default) + ";");
temp.concat(String(LubeConfig.DistancePerLube_Rain) + ";");
temp.concat(String(LubeConfig.tankCapacity_ml) + ";");
@@ -734,11 +577,13 @@ void Websocket_RefreshClientData_Static(uint32_t client_id, bool send_mapping)
temp.concat(String(SpeedSourceString[LubeConfig.SpeedSource]) + ";");
temp.concat(String(GPSBaudRateString[LubeConfig.GPSBaudRate]) + ";");
temp.concat(String(CANSourceString[LubeConfig.CANSource]) + ";");
- temp.concat(String(LubeConfig.LED_Mode_Flash) + ";");
+ temp.concat(String(LubeConfig.LED_Mode_Flash == true ? "1" : "0") + ";");
temp.concat(String(LubeConfig.LED_Max_Brightness) + ";");
temp.concat(String(LubeConfig.LED_Min_Brightness) + ";");
- temp.concat(String(globals.eePersistanceAdress) + ";");
- temp.concat(String(PersistenceData.checksum) + ";");
+ temp.concat(String(LubeConfig.SpeedSource == SOURCE_IMPULSE ? "1" : "0") + ";");
+ temp.concat(String(LubeConfig.SpeedSource == SOURCE_GPS ? "1" : "0") + ";");
+ temp.concat(String(LubeConfig.SpeedSource == SOURCE_CAN ? "1" : "0") + ";");
+ temp.concat(String(LubeConfig.BleedingPulses) + ";");
for (uint32_t i = 0; i < SpeedSourceString_Elements; i++)
{