From d635c4179e86288046fb82f94baab2b088babbee Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Mon, 12 Sep 2016 16:45:05 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9D2016-09-12=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mDotServer.censis/app/js/mdot.js | 54 +++++++++++++++---- .../mDotServer.censis/app/js/socketmanager.js | 19 ++++++- .../mDotServer.censis/app/js/websocket.js | 2 +- .../mDotServer.censis/app/js/widgets.js | 15 ++++++ .../lib/server/db-connector.js | 6 ++- 5 files changed, 80 insertions(+), 16 deletions(-) create mode 100644 mdot/mDotServer.censis/mDotServer.censis/app/js/widgets.js diff --git a/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js b/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js index 2ce4190..23e53d0 100644 --- a/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js +++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js @@ -243,7 +243,7 @@ this.model.set('device', newDevice); if (this.socketHandler) { - this.socketHandler.listenFor(newDevice); + this.socketHandler.listenFor(newDevice); } }, updateDevice: function() { var fetchObj = {beforeSend: sendAuthentication}; @@ -295,6 +295,7 @@ }, this); + }, events: { 'change select#displaymode': 'changeMode' }, setupChart: function() { @@ -408,7 +409,15 @@ title: 'Humidity', valueField: 'humid', fillAlphas: 0 - } + }, + + { + valueAxis: 'co2', + lineColor: 'rgba(255,0,255,1)', + title: 'sub100', + valueField: 'sub100', + fillAlphas: 0 + } ], chartScrollbar: { graph: 'occ',oppositeAxis: false, @@ -451,17 +460,36 @@ console.time('updateGraphV2'); var self = this; var chartData = []; + var filter = []; console.time('chartData'); + var step = 0; + const max = 20; _(this.collection.models).each(function(i) { - chartData.push({ - date: i.get('dt'), - co2: i.get('co2'), - humid: i.get('humid'), - lux: i.get('lux'), - noise: i.get('noise'), - temp: i.get('temp'), - occupancy: i.get('occupancy') - }); + const co2 = i.get('co2'); + let chunk = { + date: i.get('dt'), + co2: co2, + humid: i.get('humid'), + lux: i.get('lux'), + noise: i.get('noise'), + temp: i.get('temp'), + occupancy: i.get('occupancy') + }; + + if (filter.length >= max) { + filter.shift(); + } + filter.push(co2); + + + //if (step % 100 === 0) { + if (filter.length >= max) { + let sub100 = filter.reduce((prev, cur) => prev + cur); + chunk.sub100 = sub100 / max; + } + + chartData.push(chunk); + step++; }); console.timeEnd('chartData'); @@ -470,6 +498,10 @@ }, setSocket: function(newSocket) { this.socketHandler = newSocket; + this.socketHandler.on('update', function() { + console.log('Model updated:', this.get('data')); + }); + } }); diff --git a/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js b/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js index 1ac163e..a94e7cc 100644 --- a/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js +++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js @@ -26,7 +26,8 @@ var SOCKETMANAGER = (function() { this.on('message', function(o) { if (this.listening) { - console.log('Message', o); + //console.log('Message', o); + this.checkItem(o); } }); @@ -44,8 +45,22 @@ var SOCKETMANAGER = (function() { listenFor: function(id) { console.log('index of', this.deviceId.indexOf(id)); - this.listeningID = id; + this.listeningID = this.deviceId.indexOf(id); + }, + checkItem : function(item) { + //console.log('Checking Item:', item); + if (item.hasOwnProperty('tick')) { + //console.log('Reject heartbeat'); + } else { + console.log('Wanted deviceid', this.listeningID, item.data.deviceid); + //console.log('Data packet!!!'); + if (item.data.deviceid === this.listeningID) { + console.log(item.data); + this.set({data:item.data}); + } } + + } }); return SocketManager; diff --git a/mdot/mDotServer.censis/mDotServer.censis/app/js/websocket.js b/mdot/mDotServer.censis/mDotServer.censis/app/js/websocket.js index 6dbb31d..490c731 100644 --- a/mdot/mDotServer.censis/mDotServer.censis/app/js/websocket.js +++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/websocket.js @@ -31,7 +31,7 @@ var WEBSOCKET = function(model) { model.trigger('message',d); switch (d.id) { default: - console.log('Default:',d); + // console.log('Default:',d); break; } }; diff --git a/mdot/mDotServer.censis/mDotServer.censis/app/js/widgets.js b/mdot/mDotServer.censis/mDotServer.censis/app/js/widgets.js new file mode 100644 index 0000000..315ba71 --- /dev/null +++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/widgets.js @@ -0,0 +1,15 @@ +/** + * + * User: Martin Donnelly + * Date: 2016-09-12 + * Time: 16:19 + * + */ +var WIDGET = (function() { + 'use strict'; + + var Widget = Backbone.View.extend({ + + }); + +}()); diff --git a/mdot/mDotServer.censis/mDotServer.censis/lib/server/db-connector.js b/mdot/mDotServer.censis/mDotServer.censis/lib/server/db-connector.js index e219a2e..3184e50 100644 --- a/mdot/mDotServer.censis/mDotServer.censis/lib/server/db-connector.js +++ b/mdot/mDotServer.censis/mDotServer.censis/lib/server/db-connector.js @@ -19,13 +19,15 @@ var cn = { // ElephantSql settings -/*var cn = { +/* +var cn = { host: 'jumbo.db.elephantsql.com', port: 5432, database: 'amlrxqev', user: 'amlrxqev', password: 'K11cvCplk0--oNafsYj4ISN-rVQmVS3y' -};*/ +}; +*/ exports.dbConnection = pgp(cn);