diff --git a/src/index.h b/src/index.h index c12e002..5d8fb09 100644 --- a/src/index.h +++ b/src/index.h @@ -65,42 +65,54 @@ const char HTML_startrally[] PROGMEM = R"rawliteral( }; ws.onmessage = function(event) { // console.log(event.data); - let data = JSON.parse(event.data); - // if (data.hasOwnProperty("ping")) { - // console.log("with ping key"); - // ping++; - // } else{ - let curTrack=document.getElementById("currenttrack").innerHTML; - let tripSpeed=document.getElementById("tripspeed").innerHTML; - let tripDist=document.getElementById("tripdist").innerHTML; - let tripTime=document.getElementById("triptime").innerHTML; - let tripsTime=document.getElementById("tripstime").innerHTML; - if(curTrack==data.Trip){ - if(tripSpeed!=data.TSpeed || tripDist != data.TDist || tripTime!=data.TTime ||tripsTime!=data.TsTime){ - console.log("Refresh Trip "+data.Trip); - changeTrip(data.Trip); - } - } - ping++; - document.getElementById("counter").innerHTML = data.counter+";"+data.counter2; - document.getElementById("currenttime").innerHTML = data.Time; - document.getElementById("currenttrack").innerHTML = data.Trip; - document.getElementById("tripspeed").innerHTML = data.TSpeed; - document.getElementById("tripdist").innerHTML = data.TDist; - document.getElementById("triptime").innerHTML = data.TTime; - document.getElementById("tripstime").innerHTML = data.TsTime; - document.getElementById("currentspeed").innerHTML = data.curSpeed; - document.getElementById("dir1").innerHTML = data.dir1; - document.getElementById("dir2").innerHTML = data.dir2; - document.getElementById("odo1").innerHTML = data.curDist1; - document.getElementById("odo2").innerHTML = data.curDist2; - document.getElementById("time1").innerHTML = data.time1; - document.getElementById("time2").innerHTML = data.time2; - document.getElementById("tdiff1").innerHTML = data.TDiff; - document.getElementById("tdiff2").innerHTML = data.TDiff; - // } + if(event.data && IsJsonString(event.data)){ + let data = JSON.parse(event.data); + // if (data.hasOwnProperty("ping")) { + // console.log("with ping key"); + // ping++; + // } else{ + let curTrack=document.getElementById("currenttrack").innerHTML; + let tripSpeed=document.getElementById("tripspeed").innerHTML; + let tripDist=document.getElementById("tripdist").innerHTML; + let tripTime=document.getElementById("triptime").innerHTML; + let tripsTime=document.getElementById("tripstime").innerHTML; + if(curTrack==data.Trip){ + if(tripSpeed!=data.TSpeed || tripDist != data.TDist || tripTime!=data.TTime ||tripsTime!=data.TsTime){ + console.log("Refresh Trip "+data.Trip); + changeTrip(data.Trip); + } + } + ping++; + document.getElementById("counter").innerHTML = data.counter+";"+data.counter2; + document.getElementById("currenttime").innerHTML = data.Time; + document.getElementById("currenttrack").innerHTML = data.Trip; + document.getElementById("tripspeed").innerHTML = data.TSpeed; + document.getElementById("tripdist").innerHTML = data.TDist; + document.getElementById("triptime").innerHTML = data.TTime; + document.getElementById("tripstime").innerHTML = data.TsTime; + document.getElementById("currentspeed").innerHTML = data.curSpeed; + document.getElementById("dir1").innerHTML = data.dir1; + document.getElementById("dir2").innerHTML = data.dir2; + document.getElementById("odo1").innerHTML = data.curDist1; + document.getElementById("odo2").innerHTML = data.curDist2; + document.getElementById("time1").innerHTML = data.time1; + document.getElementById("time2").innerHTML = data.time2; + document.getElementById("tdiff1").innerHTML = data.TDiff; + document.getElementById("tdiff2").innerHTML = data.TDiff; + // } + } else console.log(event.data); }; } + + function IsJsonString(str) { + try { + JSON.parse(str); + } catch (e) { + return false; + } + return true; + } + const checkhealt = setInterval(checkPing, 1000); //heartbeat function checkPing(){ @@ -176,7 +188,7 @@ const char HTML_startrally[] PROGMEM = R"rawliteral(
-

OD 1>> 123.456 km

+

OD 1>> 123.456 Km

DIRECT

TDiff:

00:00:00

@@ -203,7 +215,7 @@ const char HTML_startrally[] PROGMEM = R"rawliteral( -->
-

OD 2>> 123.456 km

+

OD 2>> 123.456 Km

DIRECT

TDiff:

00:00:00

@@ -505,20 +517,31 @@ const char HTML_SETTIME[] PROGMEM = R"rawliteral( } }; ws.onmessage = function(event) { - console.log(event.data); - var data = JSON.parse(event.data); - if (data.NTPTime=="N/A") document.getElementById("btnNTP").disabled = true; - else document.getElementById("btnNTP").disabled = false; - document.getElementById("counter").innerHTML = data.counter+";"+data.counter2; - document.getElementById("currenttrack").innerHTML = data.curTrip; - document.getElementById("currenttime").innerHTML = data.curTime; - document.getElementById("speed").innerHTML = data.curTripSpeed; - document.getElementById("ntptime").innerHTML = data.NTPTime; - // document.getElementById("calman").innerHTML = data.calman; - // document.getElementById("calkm").innerHTML = data.calkm; - // document.getElementById("calmeter").innerHTML = data.calmeter; - // document.getElementById("calval").innerHTML = data.calval; + // console.log(event.data); + if (IsJsonString(event.data)){ + var data = JSON.parse(event.data); + if (data.NTPTime=="N/A") document.getElementById("btnNTP").disabled = true; + else document.getElementById("btnNTP").disabled = false; + document.getElementById("counter").innerHTML = data.counter+";"+data.counter2; + document.getElementById("currenttrack").innerHTML = data.curTrip; + document.getElementById("currenttime").innerHTML = data.curTime; + document.getElementById("speed").innerHTML = data.curTripSpeed; + document.getElementById("ntptime").innerHTML = data.NTPTime; + // document.getElementById("calman").innerHTML = data.calman; + // document.getElementById("calkm").innerHTML = data.calkm; + // document.getElementById("calmeter").innerHTML = data.calmeter; + // document.getElementById("calval").innerHTML = data.calval; + } else console.log(event.data); }; + + function IsJsonString(str) { + try { + JSON.parse(str); + } catch (e) { + return false; + } + return true; + }