reworked DTC-notification and clearing
This commit is contained in:
parent
d994fd25a0
commit
e913ce6e1b
@ -3,80 +3,48 @@ const jsonFilePath = "static/dtc_table.json";
|
|||||||
var dtcState = {};
|
var dtcState = {};
|
||||||
|
|
||||||
function processDTCNotifications(dtcArray) {
|
function processDTCNotifications(dtcArray) {
|
||||||
|
if (dtcArray.length === 0 || dtcArray[0] == "0") {
|
||||||
|
dtcState = {};
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for (var i = 0; i < dtcArray.length; i++) {
|
for (var i = 0; i < dtcArray.length; i++) {
|
||||||
var dtcInfo = dtcArray[i].split(",");
|
var dtcInfo = dtcArray[i].split(",");
|
||||||
var errorCode = dtcInfo[1];
|
var errorCode = parseInt(dtcInfo[1]);
|
||||||
var activity = parseInt(dtcInfo[3]);
|
var activity = parseInt(dtcInfo[3]);
|
||||||
|
var severity = parseInt(dtcInfo[2]);
|
||||||
|
var dtctext;
|
||||||
|
|
||||||
|
getDescriptionForDTCNumber(errorCode, function (error, title, description) {
|
||||||
|
dtctext = description;
|
||||||
|
});
|
||||||
|
|
||||||
|
switch (severity) {
|
||||||
|
case 1:
|
||||||
|
severity = "info";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
severity = "warning";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
severity = "error";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (dtcState[errorCode]) {
|
if (dtcState[errorCode]) {
|
||||||
// Überprüfen, ob sich der Zustand von "previous" auf "active" geändert hat
|
// Überprüfen, ob sich der Zustand von "previous" auf "active" geändert hat
|
||||||
if (activity !== dtcState[errorCode]) {
|
if (activity !== dtcState[errorCode]) {
|
||||||
dtcState[errorCode] = activity;
|
dtcState[errorCode] = activity;
|
||||||
if (activity === 1) showDTCNotification(errorCode);
|
if (activity === 1) showNotification(dtctext, severity);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// DTC ist neu, Zustand speichern und Benachrichtigung anzeigen
|
// DTC ist neu, Zustand speichern und Benachrichtigung anzeigen
|
||||||
dtcState[errorCode] = activity;
|
dtcState[errorCode] = activity;
|
||||||
showDTCNotification(errorCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function showDTCNotification(dtctext, severity) {
|
|
||||||
// Überprüfen, ob der Browser die Notification API unterstützt
|
|
||||||
if ("Notification" in window) {
|
|
||||||
// Überprüfen, ob der Benutzer bereits Berechtigungen erteilt hat
|
|
||||||
if (Notification.permission === "granted") {
|
|
||||||
// Benachrichtigung anzeigen
|
|
||||||
showNotification(dtctext, severity);
|
showNotification(dtctext, severity);
|
||||||
} else if (Notification.permission !== "denied") {
|
|
||||||
// Aufforderung zur Erlaubnis einholen
|
|
||||||
Notification.requestPermission().then(function (permission) {
|
|
||||||
if (permission === "granted") {
|
|
||||||
// Benachrichtigung anzeigen
|
|
||||||
showNotification(dtctext, severity);
|
|
||||||
} else {
|
|
||||||
// Der Benutzer hat die Berechtigung abgelehnt oder das Dialogfeld geschlossen
|
|
||||||
console.log("Benachrichtigungsberechtigung wurde verweigert.");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
// Der Benutzer hat die Berechtigung bereits verweigert
|
|
||||||
console.log("Benachrichtigungsberechtigung wurde bereits verweigert.");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Funktion zum Anzeigen der Benachrichtigung
|
|
||||||
function showNotification(dtctext, severity) {
|
|
||||||
var severityIcon;
|
|
||||||
switch (severity) {
|
|
||||||
case 1:
|
|
||||||
severityIcon = "static/img/info.png";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
severityIcon = "static/img/warn.png";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
severityIcon = "static/img/critical.png";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
severityIcon = "static/img/none.png";
|
|
||||||
}
|
|
||||||
|
|
||||||
var options = {
|
|
||||||
body: dtctext,
|
|
||||||
icon: severityIcon,
|
|
||||||
};
|
|
||||||
|
|
||||||
var notification = new Notification("KTM Chain Oiler DTC", options);
|
|
||||||
|
|
||||||
// Optional: Handle Click-Event
|
|
||||||
notification.onclick = function () {
|
|
||||||
console.log("Benachrichtigung wurde angeklickt.");
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function getDescriptionForDTCNumber(number, callback) {
|
function getDescriptionForDTCNumber(number, callback) {
|
||||||
fetch(jsonFilePath)
|
fetch(jsonFilePath)
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
@ -135,9 +103,10 @@ function fillDTCTable(dtcArray) {
|
|||||||
var tablediv = document.getElementById("dtc_container");
|
var tablediv = document.getElementById("dtc_container");
|
||||||
|
|
||||||
// Prüfen, ob DTC vorhanden sind
|
// Prüfen, ob DTC vorhanden sind
|
||||||
if (dtcArray.length === 0) {
|
if (dtcArray.length === 0 || dtcArray[0] == "0") {
|
||||||
// Verstecke das Tabellen-Div, wenn keine DTC vorhanden sind
|
// Verstecke das Tabellen-Div, wenn keine DTC vorhanden sind
|
||||||
tablediv.hidden = true;
|
tablediv.hidden = true;
|
||||||
|
table.innerHTML = "";
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
// Zeige das Tabellen-Div, wenn DTC vorhanden sind
|
// Zeige das Tabellen-Div, wenn DTC vorhanden sind
|
||||||
|
Loading…
x
Reference in New Issue
Block a user