57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
/**
|
|
*
|
|
* User: Martin Donnelly
|
|
* Date: 2016-09-09
|
|
* Time: 11:38
|
|
*
|
|
*/
|
|
/* global Backbone, _, WEBSOCKET */
|
|
/* 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) {
|
|
this.checkItem(o);
|
|
}
|
|
|
|
});
|
|
},
|
|
turnOn: function() {
|
|
this.listening = true;
|
|
},
|
|
turnOff: function() {
|
|
this.listening = false;
|
|
},
|
|
listenFor: function(id) {
|
|
this.listeningID = this.deviceId.indexOf(id);
|
|
},
|
|
checkItem: function(item) {
|
|
if (item.hasOwnProperty('tick')) {
|
|
// Ticks are ignored
|
|
} else {
|
|
if (item.data.deviceid === this.listeningID) {
|
|
console.log('Updated', item.data);
|
|
this.set({data: item.data});
|
|
}
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
return SocketManager;
|
|
}());
|
|
|
|
|