diff --git a/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js b/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js
index b26524d..2ce4190 100644
--- a/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js
+++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/mdot.js
@@ -17,16 +17,6 @@
|_| |_|\___/|___/|___|____|___/
*/
- var SocketManager = Backbone.Model.extend({
- initialize: function() {
- // _.bindAll(this, 'processAdded');
- this.webSocket = new WEBSOCKET(this);
-
- this.on('message', function(o) {
- console.log('Message', o);
- });
- }
- });
var MainModel = Backbone.Model.extend({
@@ -239,7 +229,7 @@
}
}, initialize: function() {
- _.bindAll(this, 'render', 'changeDevice', 'updateDevice');
+ _.bindAll(this, 'render', 'changeDevice', 'updateDevice','setSocket');
this.model.on('change', this.updateDevice);
this.render();
}, render: function() {
@@ -248,9 +238,21 @@
}, changeDevice: function() {
var newDevice;
newDevice = this.$el.find('#device')[0].value;
+ console.log('NewDevice', newDevice);
+
this.model.set('device', newDevice);
+
+ if (this.socketHandler) {
+ this.socketHandler.listenFor(newDevice);
+ }
}, updateDevice: function() {
var fetchObj = {beforeSend: sendAuthentication};
+ console.log('this:',this);
+
+ if (this.socketHandler) {
+ this.socketHandler.turnOff();
+ }
+
notification.clearAll();
if (this.model.has('device')) {
this.collection.url = '/apiv2/mdot/' + this.model.get('device');
@@ -261,6 +263,9 @@
console.error('Nothing to get!');
}
+ },
+ setSocket: function(newSocket) {
+ this.socketHandler = newSocket;
}
});
@@ -283,6 +288,11 @@
this.collection.on('update', function() {
// Trigger the redraw
this.updateGraphV2();
+ console.log(this);
+ if (typeof this.socketHandler === 'object') {
+ this.socketHandler.turnOn();
+ }
+
}, this);
}, events: {
@@ -457,14 +467,18 @@
self.doChartV2(chartData);
console.timeEnd('updateGraphV2');
- }
+ },
+ setSocket: function(newSocket) {
+ this.socketHandler = newSocket;
+ }
});
notification.configProfile('global', {
stacking: false
});
- var webSocketModel = new SocketManager();
+ //Var webSocketModel = new SocketManager();
+ var webSocketModel = new SOCKETMANAGER();
var DeviceCollection = new Backbone.Collection;
var mdotCollection = new mDotCollection();
@@ -475,8 +489,12 @@
collection: mdotCollection, model: mainSettings
});
+
+
views.mdot = new MDOT({collection: mdotCollection});
views.grapher = new GraphView({collection: DeviceCollection});
+ views.mainview.setSocket(webSocketModel);
+ views.grapher.setSocket(webSocketModel);
})(jQuery);
diff --git a/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js b/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js
new file mode 100644
index 0000000..1ac163e
--- /dev/null
+++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/socketmanager.js
@@ -0,0 +1,54 @@
+/**
+ *
+ * User: Martin Donnelly
+ * Date: 2016-09-09
+ * Time: 11:38
+ *
+ */
+/* global Backbone, _, $, AmCharts, notification, WEBSOCKET */
+/* global mainview */
+/* jshint browser: true , devel: true*/
+
+'use strict';
+
+
+var SOCKETMANAGER = (function() {
+
+ var SocketManager = Backbone.Model.extend({
+ deviceId : ['CENSIS-LoRa-1','CENSIS-LoRa-2','CENSIS-LoRa-3','CENSIS-LoRa-4','HIE-mobile-1----','HIE-mobile-2----','HIE-smart-campus-1','HIE-smart-campus-2','HIE-smart-campus-3','HIE-smart-campus-4','HIE-smart-campus-5','HIE-smart-campus-6','HIE-smart-campus-7','HIE-mDot-1'],
+
+ initialize: function() {
+ _.bindAll(this, 'turnOn', 'turnOff');
+ this.listeningID = null;
+ this.listening = false;
+ this.webSocket = new WEBSOCKET(this);
+
+ this.on('message', function(o) {
+ if (this.listening)
+ {
+ console.log('Message', o);
+ }
+
+ });
+ },
+ turnOn: function() {
+ console.log('SocketManager:turnOn');
+
+ this.listening = true;
+
+ },
+ turnOff: function() {
+ console.log('SocketManager:turnOff');
+ this.listening = false;
+ },
+ listenFor: function(id) {
+
+ console.log('index of', this.deviceId.indexOf(id));
+ this.listeningID = id;
+ }
+ });
+
+ 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 040421f..6dbb31d 100644
--- a/mdot/mDotServer.censis/mDotServer.censis/app/js/websocket.js
+++ b/mdot/mDotServer.censis/mDotServer.censis/app/js/websocket.js
@@ -3,77 +3,70 @@ var WEBSOCKET = function(model) {
var wsUrl = 'ws://localhost:3001';
this.socket = null;
+ this.retry = 0;
+ this.timer = 0;
+
+ this.startWebSocket = function() {
+ 'use strict';
+ console.log('Starting socket?');
+
+ var url = wsUrl;
+
+ var wsCtor = window['MozWebSocket'] ? MozWebSocket : WebSocket;
+ this.socket = new wsCtor(url, 'stream');
+
+ this.socket.onopen = this.handleWebsocketOnOpen.bind(this);
+ this.socket.onmessage = this.handleWebsocketMessage.bind(this);
+ this.socket.onclose = this.handleWebsocketClose.bind(this);
+ this.socket.onerror = function(e) {
+ console.error(e);
+ };
+
+ };
+
+
+ this.handleData = function(d) {
+
+
+ model.trigger('message',d);
+ switch (d.id) {
+ default:
+ console.log('Default:',d);
+ break;
+ }
+ };
+
+ this.handleWebsocketOnOpen = function() {
+ 'use strict';
this.retry = 0;
- this.timer = 0;
- this.startWebSocket = function() {
- 'use strict';
- console.log('Starting socket?');
+ console.log('**** Websocket Connected ****');
+ };
- var url = wsUrl;
+ this.handleWebsocketMessage = function(message) {
- var wsCtor = window['MozWebSocket'] ? MozWebSocket : WebSocket;
- this.socket = new wsCtor(url, 'stream');
-
- this.socket.onopen = this.handleWebsocketOnOpen.bind(this);
- this.socket.onmessage = this.handleWebsocketMessage.bind(this);
- this.socket.onclose = this.handleWebsocketClose.bind(this);
- this.socket.onerror = function(e) {
- console.error(e);
- };
-
- };
+ console.log('handleWebsocketMessage:',message);
+ var command;
+ try {
+ command = JSON.parse(message.data);
+ }
+ catch (e) { /* Do nothing */
+ }
- this.handleData = function(d) {
+ if (command) {
+ //This.dispatchCommand(command);
+ this.handleData.call(this,command);
+ }
+ };
+ this.handleWebsocketClose = function() {
+ console.error('WebSocket Connection Closed.');
+ var self = this;
+ console.log('Waiting ', 5000);
+ this.timer = setTimeout(function() {self.startWebSocket();},5000);
+ };
- model.trigger('message',d);
- switch (d.id) {
-/*
- case 'LightingDataReceived':
-
- // This.updateLighting(d.sensorData.d);
- break;
-*/
-
- default:
- console.log('Default:',d);
- break;
- }
- };
-
- this.handleWebsocketOnOpen = function() {
- 'use strict';
- this.retry = 0;
-
- console.log('**** Websocket Connected ****');
- };
-
- this.handleWebsocketMessage = function(message) {
-
- console.log('handleWebsocketMessage:',message);
- var command;
- try {
- command = JSON.parse(message.data);
- }
- catch (e) { /* Do nothing */
- }
-
-
- if (command) {
- //This.dispatchCommand(command);
- this.handleData.call(this,command);
- }
- };
-
- this.handleWebsocketClose = function() {
- console.error('WebSocket Connection Closed.');
- var self = this;
- console.log('Waiting ', 5000);
- this.timer = setTimeout(function() {self.startWebSocket();},5000);
- };
-
- this.startWebSocket();
+ this.startWebSocket();
};
diff --git a/mdot/mDotServer.censis/mDotServer.censis/views/test.ejs b/mdot/mDotServer.censis/mDotServer.censis/views/test.ejs
index 5b16e26..7bc5ac5 100644
--- a/mdot/mDotServer.censis/mDotServer.censis/views/test.ejs
+++ b/mdot/mDotServer.censis/mDotServer.censis/views/test.ejs
@@ -228,6 +228,7 @@
+