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(