diff --git a/static/scripts/accChart.js b/static/scripts/accChart.js index b32b9c4..c5196f9 100644 --- a/static/scripts/accChart.js +++ b/static/scripts/accChart.js @@ -76,14 +76,14 @@ let accChart = new Chart(ctx1, { */ function addDistances(data){ //collect all horizontal accuracies from serial source and tcp source. - let serialHAccs = data.map(el => { + let serialHAccs = data.filter(el => el.ser != null).map(el => { return el.ser.HAcc }) - let tcpHAccs = data.map(el => { + let tcpHAccs = data.filter(el => el.tcp != null).map(el => { return el.tcp.HAcc }) //apply vincenty algorithm on coordinates from serial and tcp source. - let distances = data.map((el, i, arr) => { + let distances = data.filter(el => el.ser != null && el.tcp != null).map((el, i, arr) => { // return distVincenty(el.ser.Position, el.tcp.Position) const plaindist = distVincenty(el.ser.Position, el.tcp.Position) arr[i]['distance'] = plaindist @@ -96,12 +96,17 @@ function addDistances(data){ return arr[i].distanceCleanAbs // plaindist - Math.abs(el.ser.Speed / 1000 * el.differenceMs) }) - let tcpTimes = data.map(el => { + let timelabels = data.filter(el => el.tcp != null).map(el => { return el.tcp.Timestamp }) + if (timelabels.length === 0) { + timelabels = data.filter(el => el.ser != null).map(el => { + return el.ser.Timestamp + }) + } //add the data to the chart and update the hart - accChart.data.labels = tcpTimes + accChart.data.labels = timelabels accChart.data.datasets[0].data = serialHAccs accChart.data.datasets[1].data = tcpHAccs accChart.data.datasets[2].data = distances diff --git a/static/scripts/refull.js b/static/scripts/refull.js index 1778c72..a89d701 100644 --- a/static/scripts/refull.js +++ b/static/scripts/refull.js @@ -115,7 +115,7 @@ window.addEventListener("load", function(evt) { }); function prepareForDistanceCalc(data) { - if('SOURCE_TCP' in data && data.SOURCE_TCP.length > 0 && 'SOURCE_SERIAL' in data && data.SOURCE_SERIAL.length > 0) { + if('SOURCE_TCP' in data && data.SOURCE_TCP.length > 0 && 'SOURCE_SERIAL' in data) { let sensorPoints = []; data.SOURCE_TCP.forEach(element => { if (element.Position[0] !== 0 && element.Position[1] !== 0) { @@ -143,6 +143,19 @@ function prepareForDistanceCalc(data) { }) console.log("SENSORPOINTs", newSensorPoints) return newSensorPoints + } else if ('SOURCE_SERIAL' in data && data.SOURCE_SERIAL.length > 0) { + let sensorPoints = []; + data.SOURCE_SERIAL.forEach(element => { + if (element.Position[0] !== 0 && element.Position[1] !== 0) { + sensorPoints.push({ + differenceMs: Number.MAX_VALUE, + tcp: null, + ser: element, + speed: null + }) + } + }) + return sensorPoints } return null -} \ No newline at end of file +}