From cdc2a407dca4f37f7dd2759bb020a84d3c1ed44d Mon Sep 17 00:00:00 2001 From: Andrew Henry Date: Thu, 22 Oct 2015 21:30:13 -0700 Subject: [PATCH] Fixed erroneous data --- example/msl/src/RemsTelemetryModelProvider.js | 4 +-- example/msl/src/RemsTelemetryServerAdapter.js | 28 ++++++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/example/msl/src/RemsTelemetryModelProvider.js b/example/msl/src/RemsTelemetryModelProvider.js index b4aaf7f7e6..1c1fbf23cc 100644 --- a/example/msl/src/RemsTelemetryModelProvider.js +++ b/example/msl/src/RemsTelemetryModelProvider.js @@ -30,7 +30,7 @@ define( float: "number", integer: "number", string: "string" - }; + } function RemsTelemetryModelProvider(adapter){ @@ -54,7 +54,7 @@ define( key: measurement.identifier, ranges: [{ key: "value", - name: "Value", + name: measurement.units, units: measurement.units, format: format }] diff --git a/example/msl/src/RemsTelemetryServerAdapter.js b/example/msl/src/RemsTelemetryServerAdapter.js index 9aa11bfb07..b0d8beb347 100644 --- a/example/msl/src/RemsTelemetryServerAdapter.js +++ b/example/msl/src/RemsTelemetryServerAdapter.js @@ -37,21 +37,41 @@ define( function RemsTelemetryServerAdapter($q, $http, REMS_WS_URL){ var histories = {}, deferreds = {}; + + function statisticalRejection(values){ + //First, calculate mean + var mean = values.reduce(function(accumulator, value){ + return accumulator += parseInt(value.value); + }, 0) / values.length; + var variance = values.reduce(function(accumulator, value){ + return accumulator+= Math.pow(parseInt(value.value) - mean, 2); + }, 0) / values.length; + var stddev = Math.sqrt(variance); + return values.filter(function(value){ + return mean - stddev < parseInt(value.value) && parseInt(value.value) < mean + stddev; + }) + } + function requestHistory (id) { $http.get(REMS_WS_URL).then( function(response){ + histories = {}; /** * All history is fetched in one go, cache it all to save round trips to the server on subsequent requests */ - var lastGoodValue=0; response.data.soles.forEach(function(solData){ for (var prop in solData){ histories[prop] = histories[prop] || []; - var value = isNaN(solData[prop]) ? lastGoodValue : (lastGoodValue = solData[prop]); - histories[prop].unshift({date: Date.parse(solData[TERRESTRIAL_DATE]), value: value}); + if (!isNaN(solData[prop])) { + //var value = isNaN(solData[prop]) ? lastGoodValue : (lastGoodValue = solData[prop]); + histories[prop].unshift({ + date: Date.parse(solData[TERRESTRIAL_DATE]), + value: solData[prop] + }); + } } }); - + //deferreds[id].resolve({id: id, values: statisticalRejection(histories[id])}); deferreds[id].resolve({id: id, values: histories[id]}); }, function (error){ deferreds[id].reject(error);