diff --git a/static/scripts/accuracy.js b/static/scripts/accuracy.js index 26f71e2..df903fa 100644 --- a/static/scripts/accuracy.js +++ b/static/scripts/accuracy.js @@ -2,15 +2,15 @@ var ctx = document.getElementById("accuracy").getContext('2d'); var barChart = new Chart(ctx, { type: 'horizontalBar', data: { - labels: ["Horizontal Acc.", "Vertical Acc."], + labels: ["Meters"], datasets: [{ - label: 'Ublox', + label: 'Ublox Horizontal acc.', data: [0, 0], backgroundColor: "rgba(214, 69, 65, 1)" }, { - label: 'Smartphone', + label: 'Dist. Ublox-Smartphone', data: [0, 0], - backgroundColor: "rgba(30, 139, 195, 1)" + backgroundColor: "rgba(30, 139, 0, 1)" }] }, options: { @@ -33,14 +33,19 @@ var barChart = new Chart(ctx, { } }); -function addSerialAccuracy(hacc, vacc){ - barChart.data.datasets[0].data = [hacc, vacc]; +function addSerialAccuracy(hacc){ + barChart.data.datasets[0].data = [hacc]; barChart.update(); } -function addTCPAccuracy(hacc, vacc){ +/*function addTCPAccuracy(hacc, vacc){ barChart.data.datasets[1].data = [hacc, vacc]; barChart.update(); +}*/ + +function addDistanceToBarChart(dist){ + barChart.data.datasets[1].data = [dist]; + barChart.update(); } //Farbe der Lampen ändern // AN: document.getElementById("greenlamp").style.backgroundColor = 'rgba(0, 230, 64, 1)' diff --git a/static/scripts/websocket.js b/static/scripts/websocket.js index 5868447..69e02a4 100644 --- a/static/scripts/websocket.js +++ b/static/scripts/websocket.js @@ -1,6 +1,8 @@ const GRAPH_RES = 100; var dataSmartphone = []; - +var tempTCPCoords = null; +var tempSERIALCoords = null; +var tempDist = 0; window.addEventListener("load", function(evt) { var output = document.getElementById("output"); @@ -50,6 +52,7 @@ window.addEventListener("load", function(evt) { document.getElementById("TCPlat").innerHTML = "Smartphone lat: " + dat.SOURCE_TCP.Position[0] updateMapTCP(dat.SOURCE_TCP.Position[1], dat.SOURCE_TCP.Position[0]) map.panTo([dat.SOURCE_TCP.Position[1], dat.SOURCE_TCP.Position[0]]) + tempTCPCoords = [dat.SOURCE_TCP.Position[1], dat.SOURCE_TCP.Position[0]] } if(!(dat.SOURCE_TCP.Speed === 0)){ addSpeedTcp(dat.SOURCE_TCP.Speed); @@ -75,6 +78,45 @@ window.addEventListener("load", function(evt) { document.getElementById("SERIALlat").innerHTML = "Ublox lat: " + dat.SOURCE_SERIAL.Position[0] updateMapSERIAL(dat.SOURCE_SERIAL.Position[1], dat.SOURCE_SERIAL.Position[0]) map.panTo([dat.SOURCE_SERIAL.Position[1], dat.SOURCE_SERIAL.Position[0]]) + tempSERIALCoords = [dat.SOURCE_SERIAL.Position[1], dat.SOURCE_SERIAL.Position[0]] + if (!(tempTCPCoords == null)) { + console.log("tcp: " + tempTCPCoords) + console.log("serial: " + tempSERIALCoords) + + var long1 = tempTCPCoords[0] + var lat1 = tempTCPCoords[1] + var long2 = tempSERIALCoords[0] + var lat2 = tempSERIALCoords[1] + + var earthRadiusM = 6371000 + + var phi1 = lat1 * Math.PI / 180 + var phi2 = lat2 * Math.PI / 180 + + var dlat = (lat2-lat1) * Math.PI / 180 + var dlong = (long2 - long1) * Math.PI / 180 + + var a = Math.sin(dlat/2) * Math.sin(dlat/2) + + Math.cos(phi1) * Math.cos(phi2) * + Math.sin(dlong/2) * Math.sin(dlong/2) + var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)) + tempDist = (earthRadiusM * c).toFixed(3) + console.log("Dist: " + tempDist) + addDistanceToBarChart(tempDist) + document.getElementById("distance").innerHTML = "Distance: " + tempDist + + if(tempDist <= dat.SOURCE_SERIAL.HAcc){ + document.getElementById("greenlamp").style.backgroundColor = 'rgba(0, 230, 64, 1)' + document.getElementById("redlamp").style.backgroundColor = 'rgba(139, 0, 0, 1)' + } + else{ + document.getElementById("greenlamp").style.backgroundColor = 'rgba(0, 100, 0, 1)' + document.getElementById("redlamp").style.backgroundColor = 'rgba(242, 38, 19, 1)' + } + + } + tempTCPCoords = null + } if(!(dat.SOURCE_SERIAL.Speed === 0)){ addSpeedSerial(dat.SOURCE_SERIAL.Speed); @@ -87,28 +129,32 @@ window.addEventListener("load", function(evt) { // console.log("no serial data") } + + try{ if(!(dat.SOURCE_SERIAL.HAcc === 0) && !(dat.SOURCE_SERIAL.VAcc === 0)){ - addSerialAccuracy(dat.SOURCE_SERIAL.HAcc, dat.SOURCE_SERIAL.VAcc) - document.getElementById("serialHAcc").innerHTML = "Ublox HAcc: " + dat.SOURCE_SERIAL.HAcc.toFixed(2) + " m" - document.getElementById("serialVAcc").innerHTML = "Ublox VAcc: " + dat.SOURCE_SERIAL.VAcc.toFixed(2) + " m" + addSerialAccuracy(dat.SOURCE_SERIAL.HAcc) + document.getElementById("serialHAcc").innerHTML = "Ublox HAcc: " + dat.SOURCE_SERIAL.HAcc.toFixed(3) + " m" + //document.getElementById("serialVAcc").innerHTML = "Ublox VAcc: " + dat.SOURCE_SERIAL.VAcc.toFixed(2) + " m" console.log("acc: " + dat.SOURCE_SERIAL.HAcc, dat.SOURCE_SERIAL.VAcc) } } catch{ console.log("no Serial acc") } - try{ + + /*try{ if(!(dat.SOURCE_TCP.HAcc === 0) && !(dat.SOURCE_TCP.VAcc === 0)){ addTCPAccuracy(dat.SOURCE_TCP.HAcc, dat.SOURCE_TCP.VAcc) - document.getElementById("tcpHAcc").innerHTML = "Smartphone HAcc: " + dat.SOURCE_TCP.HAcc.toFixed(2) + " m" - document.getElementById("tcpVAcc").innerHTML = "Smartphone VAcc: " + dat.SOURCE_TCP.VAcc.toFixed(2) + " m" + document.getElementById("tcpHAcc").innerHTML = "Phone HAcc: " + dat.SOURCE_TCP.HAcc.toFixed(2) + " m" + document.getElementById("tcpVAcc").innerHTML = "Phone VAcc: " + dat.SOURCE_TCP.VAcc.toFixed(2) + " m" console.log("acc: " + dat.SOURCE_TCP.HAcc, dat.SOURCE_TCP.VAcc) } } catch{ console.log("no TCP acc") - } + }*/ + } const wsOnOpenF = function (evt) { print2("OPEN"); diff --git a/templates/index.html b/templates/index.html index 9d8c1cb..00ffb62 100644 --- a/templates/index.html +++ b/templates/index.html @@ -103,18 +103,21 @@
- + -
+