From 3b08c6bfe7448972122d1b41153a02271c0e9683 Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Thu, 9 Jun 2016 16:45:03 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9D2016-06-09=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sensortoy/sensortoy/app/index.html | 4 + sensortoy/sensortoy/app/js/device/fmc/TSL.js | 205 ++++++++++++++++++ .../app/js/standards/deviceInformation.js | 61 ++++++ .../2.2.1/taskArtifacts/cache.properties.lock | Bin 17 -> 17 bytes .../2.2.1/taskArtifacts/fileHashes.bin | Bin 148764 -> 148988 bytes .../2.2.1/taskArtifacts/fileSnapshots.bin | Bin 10918810 -> 10918810 bytes .../2.2.1/taskArtifacts/taskArtifacts.bin | Bin 61031 -> 61031 bytes .../platforms/android/assets/www/index.html | 4 + .../js/device/CC2650/cc2650_accelerometer.js | 2 +- .../android/assets/www/js/device/fmc/TSL.js | 205 ++++++++++++++++++ .../www/js/standards/deviceInformation.js | 61 ++++++ .../SODashServer/SODashServer/app/js/appv2.js | 3 +- 12 files changed, 542 insertions(+), 3 deletions(-) create mode 100644 sensortoy/sensortoy/app/js/device/fmc/TSL.js create mode 100644 sensortoy/sensortoy/app/js/standards/deviceInformation.js create mode 100644 sensortoy/sensortoy/platforms/android/assets/www/js/device/fmc/TSL.js create mode 100644 sensortoy/sensortoy/platforms/android/assets/www/js/standards/deviceInformation.js diff --git a/sensortoy/sensortoy/app/index.html b/sensortoy/sensortoy/app/index.html index 10cc4ad..2126190 100644 --- a/sensortoy/sensortoy/app/index.html +++ b/sensortoy/sensortoy/app/index.html @@ -118,6 +118,10 @@ src="js/device/CC2650/cc2650_humidity.js"> + + + diff --git a/sensortoy/sensortoy/app/js/device/fmc/TSL.js b/sensortoy/sensortoy/app/js/device/fmc/TSL.js new file mode 100644 index 0000000..91b525d --- /dev/null +++ b/sensortoy/sensortoy/app/js/device/fmc/TSL.js @@ -0,0 +1,205 @@ +/** + * + * User: Martin Donnelly + * Date: 2016-05-20 + * Time: 10:13 + * + */ +/* global CAPABILITY, inheritsFrom, capabilityManager */ +/* global ble */ +/* jshint browser: true , devel: true*/ + +var TSL = function(p) { + 'use strict'; + this.name = 'TSL'; + this.deviceID = p.deviceID || null; + this.target = p.target || null; + + // F000BB00-0451-4000-B000-A01D48F70D07 + + this.capabilityID = 'F000BB00-0451-4000-B000-A01D48F70D07'; + this.serviceDef = { + service: 'F000BB00-0451-4000-B000-A01D48F70D07', + enable: 'F000BB01-0451-4000-B000-A01D48F70D07', + control: 'F000BB02-0451-4000-B000-A01D48F70D07', + period: 'F000BB03-0451-4000-B000-A01D48F70D07', + location: 'F000BB04-0451-4000-B000-A01D48F70D07', + historySize: 'F000BB05-0451-4000-B000-A01D48F70D07', + history: 'F000BB06-0451-4000-B000-A01D48F70D07', + historyAck: 'F000BB07-0451-4000-B000-A01D48F70D07', + temp: 'F000BB08-0451-4000-B000-A01D48F70D07', + tempMaximum: 'F000BB09-0451-4000-B000-A01D48F70D07', + tempMinimum: 'F000BB0A-0451-4000-B000-A01D48F70D07', + preValue: 'F000BB0B-0451-4000-B000-A01D48F70D07', + presMaximum: 'F000BB0C-0451-4000-B000-A01D48F70D07', + presMinimum: 'F000BB0D-0451-4000-B000-A01D48F70D07', + humidityValue: 'F000BB0E-0451-4000-B000-A01D48F70D07', + humidityMax: 'F000BB0F-0451-4000-B000-A01D48F70D07', + humidityMin: 'F000BB10-0451-4000-B000-A01D48F70D07', + accelerationMax: 'F000BB11-0451-4000-B000-A01D48F70D07', + velocityMax: 'F000BB12-0451-4000-B000-A01D48F70D07', + loggerId: 'F000BB13-0451-4000-B000-A01D48F70D07', + shockBandwidth: 'F000BB14-0451-4000-B000-A01D48F70D07', + shockThreshold: 'F000BB15-0451-4000-B000-A01D48F70D07', + config: 'F0002902-0451-4000-B000-A01D48F70D07' + + }; + + this.$result = {temp: null, tempMax: null, tempMin: null}; + this.data = []; + this.setFrame(); + + this.arrayToHex = function(a) { + return a.map(function(i) { + return ('00' + i.toString(16)).slice(-2) + ','; + }); + }; + + this.convertToTemp = function(raw) { + return ((raw[1] << 8) + (raw[0])) / 100; + }; + +/* + this.$result.temp = $('#' + tslTemp); + this.$result.tempMax = $('#' + tslTempMax); + this.$result.tempMin = $('#' + tslTempMin); +*/ + + + this.onReadTempState = function(d) { + var raw = new Uint8Array(d); + var temp = this.convertToTemp(raw); + console.log('Temp State:', temp); + this.$result.temp.text(temp.toFixed(2) + '°C'); + + }; + + this.onReadTempMax = function(d) { + var raw = new Uint8Array(d); + var temp = this.convertToTemp(raw); + console.log('Temp Max:', temp); + this.$result.tempMax.text(temp.toFixed(2) + '°C'); + }; + + this.onReadTempMin = function(d) { + var raw = new Uint8Array(d); + var temp = this.convertToTemp(raw); + console.log('Temp Min:', temp); + this.$result.tempMin.text(temp.toFixed(2) + '°C'); + }; + + this.readHistory = function() { + console.log('readTempState'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.history, + this.onReadTempState.bind(this), + this.onError); + }; + + this.readTempState = function() { + console.log('readTempState'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.temp, + this.onReadTempState.bind(this), + this.onError); + }; + + this.readTempMax = function() { + console.log('readTempMax'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.tempMaximum, + this.onReadTempMax.bind(this), + this.onError); + }; + + this.readTempMin = function() { + console.log('readTempMax'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.tempMinimum, + this.onReadTempMin.bind(this), + this.onError); + }; + + this.startService = function() { + + if (this.deviceID !== null) { + + console.log('Starting TSL Service on ', this.deviceID); + console.log(this.serviceDef); + this.insertFrame(); + + + this.readTempState(); + this.readTempMax(); + this.readTempMin(); + + } + + }; + + this.onTslData = function(data) { + + var raw = new Uint16Array(data); + + console.log(raw); + + }; + + this.animateGraph = function() { + return -1; + }; + + this.insertFrame = function() { + + var self = this; + + // Call the parent displayForm first... + this.superClass_.insertFrame.call(self); + + var tslTemp = this.frameID + '-t'; + var tslTempMax = this.frameID + '-tmax'; + var tslTempMin = this.frameID + '-tmin'; + + var row = $('
', {class: 'mui-row'}); + + $('
', + {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo( + row); + + $('
', + {class: 'mui-col-xs-9 mui--text-dark', id: tslTemp}).appendTo(row); + + this.$id.append(row); + + row = $('
', {class: 'mui-row'}); + + $('
', + {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMax:'}).appendTo( + row); + + $('
', + {class: 'mui-col-xs-3 mui--text-dark', id: tslTempMax}).appendTo(row); + + $('
', + {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMin:'}).appendTo( + row); + + $('
', + {class: 'mui-col-xs-3 mui--text-dark', id: tslTempMin}).appendTo(row); + + this.$id.append(row); + + this.$result.temp = $('#' + tslTemp); + this.$result.tempMax = $('#' + tslTempMax); + this.$result.tempMin = $('#' + tslTempMin); + + }; + +}; + +inheritsFrom(TSL, CAPABILITY); +capabilityManager.register({id: 'F000BB00-0451-4000-B000-A01D48F70D07', module: TSL}); diff --git a/sensortoy/sensortoy/app/js/standards/deviceInformation.js b/sensortoy/sensortoy/app/js/standards/deviceInformation.js new file mode 100644 index 0000000..6e3a823 --- /dev/null +++ b/sensortoy/sensortoy/app/js/standards/deviceInformation.js @@ -0,0 +1,61 @@ +/** + * + * User: Martin Donnelly + * Date: 2016-05-20 + * Time: 10:13 + * + */ +/* global CAPABILITY, inheritsFrom, capabilityManager */ +/* global ble */ +/* jshint browser: true , devel: true*/ + +var DEVICEINFO = function() { + this.name = 'Device Information'; + this.capabilityID = '180A'; + this.serviceDef = { + service: '180A', manufacturer_name_string: '2A29', model_number_string: '2A24' + }; + + this.onBatteryLevelChange = function(data) { + console.log(data); + var a = new Uint8Array(data); + this.state = a[0]; + console.log('onBatteryLevelChange', this.state); + }; + this.readBatteryState = function() { + console.log('readBatteryState'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.level, + this.onReadBatteryLevel.bind(this), + this.onError); + }; + + this.onReadBatteryLevel = function(data) { + console.log(data); + var a = new Uint8Array(data); + this.state = a[0]; + console.log('onReadBatteryLevel', this.state); + }; + + this.startService = function() { + 'use strict'; + if (this.deviceID !== null) { + console.log('Starting Battery Service on ', this.deviceID); + console.log(this.serviceDef); + + this.insertFrame(); + + ble.startNotification(this.deviceID, + this.serviceDef.service, + this.serviceDef.level, + this.onBatteryLevelChange.bind(this), + this.onError); + } + + }; + +}; + +inheritsFrom(BATTERY, CAPABILITY); +capabilityManager.register({id: '180F', module: BATTERY}); diff --git a/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties.lock b/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/cache.properties.lock index 992f1acbed736b65c7a93c1ae5601b850a6f91d7..0aa598d2402cd2fe81477996c0e74171bef9e80e 100644 GIT binary patch literal 17 WcmZQx&{6#8*tO}73?RT_cpU&g?gjw> literal 17 WcmZQx&{6#8*tO}73?RV58x8}r2#Ps^3MvLr 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 K=QRAL!+!u{CLbFB delta 15440 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 diff --git a/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin b/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/taskArtifacts.bin index 350fbd97d4aae72c980cd4bbecd867cda0ee176e..d06e3cbe33e57520523409e5a27b3e6970bc52f2 100644 GIT binary patch delta 352 zcmaEUhxz#(<_%Np1orwg=x%&`bj8t=#!6rQbfj)7S7j8)4sI?My|Z9``C*;1jNFi^ zV8KN)Os5_-6)|s>URkW2<-)b8T$7O{tYMPzX1N6?88@@Gvy0|h6t{QsX_ zJ6W;8dGfkhVw2A{7;XMC?X!?TRPD|6A0B#Ka$Q(_dd+^n*PG98iD4C(uKuqzEL`LF z`7JA-Z(7xt01;ikiDSjK4j-?rH~vrGv#-b>D4M{k!fU!{(ivk02JTZpd7 z=3dqm_@tg)$?{;Q?w-jL!xc8i?c2pHSasZAfwwVTZk5qCBMz;L$Wk+2udA;5;$8jW cDgTBo&U4)mx+Y&($-=^{;rwtj_pula062Q09nEo0>V(;As6ir}N`T4la;EXW?1NSK)J_N$dyYtTd zIHLArYGt)@9Pi?~);*IahAV82+qa8ZuyB`QSzsKS3G1SuiH5Uy9wAAc^t*Y^yi;sL dfpN{P!-}fe2&u^zR + + + diff --git a/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_accelerometer.js b/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_accelerometer.js index 9d338f4..8b1cfe8 100644 --- a/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_accelerometer.js +++ b/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_accelerometer.js @@ -338,7 +338,7 @@ CC2650_ACCEL = function(p) { elm.append($('

', { class: 'mui-col-xs-8 mui--text-title mui-ellipsis-2', text: title})); - elm.append($('
', {class: 'mui-col-xs-4 mui--text-right'}).append(button)); + // elm.append($('
', {class: 'mui-col-xs-4 mui--text-right'}).append(button)); frame.append(elm); diff --git a/sensortoy/sensortoy/platforms/android/assets/www/js/device/fmc/TSL.js b/sensortoy/sensortoy/platforms/android/assets/www/js/device/fmc/TSL.js new file mode 100644 index 0000000..91b525d --- /dev/null +++ b/sensortoy/sensortoy/platforms/android/assets/www/js/device/fmc/TSL.js @@ -0,0 +1,205 @@ +/** + * + * User: Martin Donnelly + * Date: 2016-05-20 + * Time: 10:13 + * + */ +/* global CAPABILITY, inheritsFrom, capabilityManager */ +/* global ble */ +/* jshint browser: true , devel: true*/ + +var TSL = function(p) { + 'use strict'; + this.name = 'TSL'; + this.deviceID = p.deviceID || null; + this.target = p.target || null; + + // F000BB00-0451-4000-B000-A01D48F70D07 + + this.capabilityID = 'F000BB00-0451-4000-B000-A01D48F70D07'; + this.serviceDef = { + service: 'F000BB00-0451-4000-B000-A01D48F70D07', + enable: 'F000BB01-0451-4000-B000-A01D48F70D07', + control: 'F000BB02-0451-4000-B000-A01D48F70D07', + period: 'F000BB03-0451-4000-B000-A01D48F70D07', + location: 'F000BB04-0451-4000-B000-A01D48F70D07', + historySize: 'F000BB05-0451-4000-B000-A01D48F70D07', + history: 'F000BB06-0451-4000-B000-A01D48F70D07', + historyAck: 'F000BB07-0451-4000-B000-A01D48F70D07', + temp: 'F000BB08-0451-4000-B000-A01D48F70D07', + tempMaximum: 'F000BB09-0451-4000-B000-A01D48F70D07', + tempMinimum: 'F000BB0A-0451-4000-B000-A01D48F70D07', + preValue: 'F000BB0B-0451-4000-B000-A01D48F70D07', + presMaximum: 'F000BB0C-0451-4000-B000-A01D48F70D07', + presMinimum: 'F000BB0D-0451-4000-B000-A01D48F70D07', + humidityValue: 'F000BB0E-0451-4000-B000-A01D48F70D07', + humidityMax: 'F000BB0F-0451-4000-B000-A01D48F70D07', + humidityMin: 'F000BB10-0451-4000-B000-A01D48F70D07', + accelerationMax: 'F000BB11-0451-4000-B000-A01D48F70D07', + velocityMax: 'F000BB12-0451-4000-B000-A01D48F70D07', + loggerId: 'F000BB13-0451-4000-B000-A01D48F70D07', + shockBandwidth: 'F000BB14-0451-4000-B000-A01D48F70D07', + shockThreshold: 'F000BB15-0451-4000-B000-A01D48F70D07', + config: 'F0002902-0451-4000-B000-A01D48F70D07' + + }; + + this.$result = {temp: null, tempMax: null, tempMin: null}; + this.data = []; + this.setFrame(); + + this.arrayToHex = function(a) { + return a.map(function(i) { + return ('00' + i.toString(16)).slice(-2) + ','; + }); + }; + + this.convertToTemp = function(raw) { + return ((raw[1] << 8) + (raw[0])) / 100; + }; + +/* + this.$result.temp = $('#' + tslTemp); + this.$result.tempMax = $('#' + tslTempMax); + this.$result.tempMin = $('#' + tslTempMin); +*/ + + + this.onReadTempState = function(d) { + var raw = new Uint8Array(d); + var temp = this.convertToTemp(raw); + console.log('Temp State:', temp); + this.$result.temp.text(temp.toFixed(2) + '°C'); + + }; + + this.onReadTempMax = function(d) { + var raw = new Uint8Array(d); + var temp = this.convertToTemp(raw); + console.log('Temp Max:', temp); + this.$result.tempMax.text(temp.toFixed(2) + '°C'); + }; + + this.onReadTempMin = function(d) { + var raw = new Uint8Array(d); + var temp = this.convertToTemp(raw); + console.log('Temp Min:', temp); + this.$result.tempMin.text(temp.toFixed(2) + '°C'); + }; + + this.readHistory = function() { + console.log('readTempState'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.history, + this.onReadTempState.bind(this), + this.onError); + }; + + this.readTempState = function() { + console.log('readTempState'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.temp, + this.onReadTempState.bind(this), + this.onError); + }; + + this.readTempMax = function() { + console.log('readTempMax'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.tempMaximum, + this.onReadTempMax.bind(this), + this.onError); + }; + + this.readTempMin = function() { + console.log('readTempMax'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.tempMinimum, + this.onReadTempMin.bind(this), + this.onError); + }; + + this.startService = function() { + + if (this.deviceID !== null) { + + console.log('Starting TSL Service on ', this.deviceID); + console.log(this.serviceDef); + this.insertFrame(); + + + this.readTempState(); + this.readTempMax(); + this.readTempMin(); + + } + + }; + + this.onTslData = function(data) { + + var raw = new Uint16Array(data); + + console.log(raw); + + }; + + this.animateGraph = function() { + return -1; + }; + + this.insertFrame = function() { + + var self = this; + + // Call the parent displayForm first... + this.superClass_.insertFrame.call(self); + + var tslTemp = this.frameID + '-t'; + var tslTempMax = this.frameID + '-tmax'; + var tslTempMin = this.frameID + '-tmin'; + + var row = $('
', {class: 'mui-row'}); + + $('
', + {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo( + row); + + $('
', + {class: 'mui-col-xs-9 mui--text-dark', id: tslTemp}).appendTo(row); + + this.$id.append(row); + + row = $('
', {class: 'mui-row'}); + + $('
', + {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMax:'}).appendTo( + row); + + $('
', + {class: 'mui-col-xs-3 mui--text-dark', id: tslTempMax}).appendTo(row); + + $('
', + {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMin:'}).appendTo( + row); + + $('
', + {class: 'mui-col-xs-3 mui--text-dark', id: tslTempMin}).appendTo(row); + + this.$id.append(row); + + this.$result.temp = $('#' + tslTemp); + this.$result.tempMax = $('#' + tslTempMax); + this.$result.tempMin = $('#' + tslTempMin); + + }; + +}; + +inheritsFrom(TSL, CAPABILITY); +capabilityManager.register({id: 'F000BB00-0451-4000-B000-A01D48F70D07', module: TSL}); diff --git a/sensortoy/sensortoy/platforms/android/assets/www/js/standards/deviceInformation.js b/sensortoy/sensortoy/platforms/android/assets/www/js/standards/deviceInformation.js new file mode 100644 index 0000000..6e3a823 --- /dev/null +++ b/sensortoy/sensortoy/platforms/android/assets/www/js/standards/deviceInformation.js @@ -0,0 +1,61 @@ +/** + * + * User: Martin Donnelly + * Date: 2016-05-20 + * Time: 10:13 + * + */ +/* global CAPABILITY, inheritsFrom, capabilityManager */ +/* global ble */ +/* jshint browser: true , devel: true*/ + +var DEVICEINFO = function() { + this.name = 'Device Information'; + this.capabilityID = '180A'; + this.serviceDef = { + service: '180A', manufacturer_name_string: '2A29', model_number_string: '2A24' + }; + + this.onBatteryLevelChange = function(data) { + console.log(data); + var a = new Uint8Array(data); + this.state = a[0]; + console.log('onBatteryLevelChange', this.state); + }; + this.readBatteryState = function() { + console.log('readBatteryState'); + ble.read(this.deviceID, + this.serviceDef.service, + this.serviceDef.level, + this.onReadBatteryLevel.bind(this), + this.onError); + }; + + this.onReadBatteryLevel = function(data) { + console.log(data); + var a = new Uint8Array(data); + this.state = a[0]; + console.log('onReadBatteryLevel', this.state); + }; + + this.startService = function() { + 'use strict'; + if (this.deviceID !== null) { + console.log('Starting Battery Service on ', this.deviceID); + console.log(this.serviceDef); + + this.insertFrame(); + + ble.startNotification(this.deviceID, + this.serviceDef.service, + this.serviceDef.level, + this.onBatteryLevelChange.bind(this), + this.onError); + } + + }; + +}; + +inheritsFrom(BATTERY, CAPABILITY); +capabilityManager.register({id: '180F', module: BATTERY}); diff --git a/smartoffice/SODashServer/SODashServer/app/js/appv2.js b/smartoffice/SODashServer/SODashServer/app/js/appv2.js index 8999fd1..102ddc6 100644 --- a/smartoffice/SODashServer/SODashServer/app/js/appv2.js +++ b/smartoffice/SODashServer/SODashServer/app/js/appv2.js @@ -20,8 +20,7 @@ var SOController = (function() { var iosConfig = { badge: true, sound: true, alert: true }; - - + var calendarData; var extendTimer;