From 808a29d2152dc96f99ac5de3518dba5f97a8060c Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Fri, 17 Jun 2016 16:45:14 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9D2016-06-17=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sensortoy/sensortoy/app/css/app.css | 2 +- .../js/device/CC2650/cc2650_accelerometer.js | 2 +- .../app/js/device/CC2650/cc2650_thermopile.js | 63 +++++++++++- .../sensortoy/app/js/standards/capability.js | 35 +++++++ .../app/partials/cc2650_thermopile_dial.ejs | 37 +++++-- .../2.2.1/taskArtifacts/cache.properties.lock | Bin 17 -> 17 bytes .../2.2.1/taskArtifacts/fileHashes.bin | Bin 154923 -> 155035 bytes .../2.2.1/taskArtifacts/fileSnapshots.bin | Bin 11360782 -> 11360782 bytes .../2.2.1/taskArtifacts/taskArtifacts.bin | Bin 61031 -> 61031 bytes .../platforms/android/assets/www/css/app.css | 2 +- .../js/device/CC2650/cc2650_accelerometer.js | 8 +- .../www/js/device/CC2650/cc2650_barometer.js | 10 +- .../www/js/device/CC2650/cc2650_thermopile.js | 63 +++++++++++- .../assets/www/js/standards/capability.js | 68 ++++++++++++- .../www/partials/cc2650_thermopile_dial.ejs | 92 ++++++++++++++++++ 15 files changed, 348 insertions(+), 34 deletions(-) create mode 100644 sensortoy/sensortoy/platforms/android/assets/www/partials/cc2650_thermopile_dial.ejs diff --git a/sensortoy/sensortoy/app/css/app.css b/sensortoy/sensortoy/app/css/app.css index d5a2b20..a4231cd 100644 --- a/sensortoy/sensortoy/app/css/app.css +++ b/sensortoy/sensortoy/app/css/app.css @@ -208,6 +208,6 @@ color:#78909C; svg text { font-family:'Ubuntu Condensed',sans-serif; font-size:12; - fill: #004c6d; + fill: #bad649; text-align:right; } diff --git a/sensortoy/sensortoy/app/js/device/CC2650/cc2650_accelerometer.js b/sensortoy/sensortoy/app/js/device/CC2650/cc2650_accelerometer.js index befea5f..38b5d44 100644 --- a/sensortoy/sensortoy/app/js/device/CC2650/cc2650_accelerometer.js +++ b/sensortoy/sensortoy/app/js/device/CC2650/cc2650_accelerometer.js @@ -109,7 +109,7 @@ CC2650_ACCEL = function(p) { this.data.mag.y = this.storeData(calcData.mag.y, this.data.mag.y); this.data.mag.z = this.storeData(calcData.mag.z, this.data.mag.z); - console.log(JSON.stringify(this.data)); + // console.log(JSON.stringify(this.data)); // Console.log(this.state); }; diff --git a/sensortoy/sensortoy/app/js/device/CC2650/cc2650_thermopile.js b/sensortoy/sensortoy/app/js/device/CC2650/cc2650_thermopile.js index 257f5e6..335ed4e 100644 --- a/sensortoy/sensortoy/app/js/device/CC2650/cc2650_thermopile.js +++ b/sensortoy/sensortoy/app/js/device/CC2650/cc2650_thermopile.js @@ -87,10 +87,49 @@ var CC2650_TMP = function(p) { }; this.animateGraph = function() { - this.simpleGraph(this.data.temp, 'temp'); - this.simpleGraph(this.data.ambient, 'ambient'); + // This.simpleGraph(this.data.temp, 'temp'); + // debugger; + var arcTemp = this.frameID + 'temp-arc'; + var arcAmbient = this.frameID + 'ambient-arc'; + this.updateArc(this.data.temp, 'temp' , arcTemp); + + this.updateArc(this.data.ambient, 'ambient' , arcAmbient); + + //This.simpleGraph(this.data.ambient, 'ambient'); }; + this.updateArc = function(data, subID, elmID) { + + + var ceilingLimit; + var _subID; + var _data; + var label; + + _data = data || this.data; + + _subID = subID || ''; + + if (_data.length > 0) { + + ceilingLimit = 50; + + var latest = _data[_data.length - 1]; + var scale = 100 / ceilingLimit; + var arcP = scale * latest; + // Var xstep = (280 - 46) / 100; + + label = this.frameID + subID + '-label'; + document.getElementById(elmID).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(arcP))); + // document.getElementById(label).innerText(latest.toFixed(2) + 'ºc'); + } + + + + }; + + + this.insertFrame = function() { var liSetting; @@ -105,13 +144,27 @@ var CC2650_TMP = function(p) { var temp = this.frameID + '-t'; var amb = this.frameID + '-a'; + + var arcB = this.frameID + 'temp-arcB'; + var arcTemp = this.frameID + 'temp-arc'; + + var ambientArcB = this.frameID + 'ambient-arcB'; + var arcAmbient = this.frameID + 'ambient-arc'; + var settings = {data: {baseID: this.frameID}}; - var html = new EJS({url: './partials/cc2650_thermopile.ejs'}).render(settings); + var html = new EJS({url: './partials/cc2650_thermopile_dial.ejs'}).render(settings); - this.$id.append(html); + this.$id.append(html); + +debugger; + document.getElementById(arcB).setAttribute('d', this.describeArc(150, 150, 100, 0, 240)); + document.getElementById(arcTemp).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(0))); + + document.getElementById(ambientArcB).setAttribute('d', this.describeArc(150, 150, 100, 0, 240)); + document.getElementById(arcAmbient).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(0))); - /*var row = $('
', {class: 'mui-row'}); + /*Var row = $('
', {class: 'mui-row'}); $('
', {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row); diff --git a/sensortoy/sensortoy/app/js/standards/capability.js b/sensortoy/sensortoy/app/js/standards/capability.js index 64a9919..5020b2c 100644 --- a/sensortoy/sensortoy/app/js/standards/capability.js +++ b/sensortoy/sensortoy/app/js/standards/capability.js @@ -271,6 +271,41 @@ CAPABILITY.prototype.setArc = function(percent) { return (240 / 100) * percent; }; +CAPABILITY.prototype.updateArc = function(data, subID, elmID) { + + + var ceilingLimit; + var ceiling; + var _subID; + var _data; + + _data = data || this.data; + + _subID = subID || ''; + + if (_data.length > 0) { + + ceiling = _data.reduce(function(p, v) { + return (Math.abs(p) > Math.abs(v) ? Math.abs(p) : Math.abs(v)); + }); + + ceilingLimit = (Math.ceil((Math.round(ceiling) + 1) / 10) * 10); + if (ceilingLimit > 1000) { + ceilingLimit = (Math.ceil((Math.round(ceiling) + 1) / 50) * 50); + } + + var latest = _data[_data.length-1]; + var scale = 100 / ceilingLimit; + var arcP = scale * latest; + // Var xstep = (280 - 46) / 100; + + document.getElementById(elmID).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(arcP))); + } + + + }; + + CAPABILITY.prototype.simpleGraph = function(data, subID) { var ceilingLimit; diff --git a/sensortoy/sensortoy/app/partials/cc2650_thermopile_dial.ejs b/sensortoy/sensortoy/app/partials/cc2650_thermopile_dial.ejs index cdabd76..0111acb 100644 --- a/sensortoy/sensortoy/app/partials/cc2650_thermopile_dial.ejs +++ b/sensortoy/sensortoy/app/partials/cc2650_thermopile_dial.ejs @@ -17,7 +17,7 @@
- + @@ -28,11 +28,11 @@ - - + + - --ºc + --ºc @@ -52,12 +52,12 @@ -->
- -- + text-anchor="end">-- @@ -65,5 +65,28 @@ - + --> + + + + + + + + + + + + + + + + + + + --ºc + + + +
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 637083f8e78cb7ca5a01758921ef8e370644d718..2e830696d242547484512e3a7ce9f3920a0bbed3 100644 GIT binary patch literal 17 WcmZQx&{6#8*tO}73?RUAZ9V`&00wRV literal 17 WcmZQx&{6#8*tO}73?RTV#TNiTDh1jA diff --git a/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/fileHashes.bin b/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/fileHashes.bin index a18124d6bf41aa6ead10668c4d485874f20726a4..84a400298ba50873c82bb16bfd6ef4847f2ba545 100644 GIT binary patch delta 31167 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 delta 31078 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 F{{x#l4~75$ diff --git a/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin b/sensortoy/sensortoy/platforms/android/.gradle/2.2.1/taskArtifacts/fileSnapshots.bin index 6fe67e3e9be24152aa6f1dbd4862da5c2e3edcd6..fb0510df4a253a8e66c32469aaf149dde2b3e5c4 100644 GIT binary patch delta 7451 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 delta 5218 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 B9&-Qy 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 4f95e30bccd09a04782fe72535d2d9edb60e9843..caf6976fb02ed20e8ae63679c2377d13176d3633 100644 GIT binary patch delta 408 zcmaEUhxz#(<_%Np1d5M+@r--i_|3$~^{EBxug*>7s*D1UY#S=NIx=>4uGqd){pkE4 zu;2#$7p=!DS~D1!#GB(kzrMVwT$7Q-ZgxxNX1N6?88@@Gv_5I=cdz0T$@(>@CcY|q=5ShlQgzJ>a>RUr$%S#LhSWgp{Y_l@e46*sC)ZY`3Z z6s*2kVLLaofVJ6G@e@C~pTE7WlX%VQ{88L0pS=F6cxOFp!mm$K7dLlS>Elqz&#a=_ zAamo4F#`klDIh)s!p!R%-aUGreAC%|=DQok$(%fUCQl4k*c`WS7qj3Q#{U-%-P+H@ w-7M*P>Tzu|l2ozIv4FEzP8?f(Us_tHZKobWYVw7ZEG$8XY`ZpdAB)id0DdCBLjV8( delta 465 zcmaEUhxz#(<_%Np1X670|8TpWf2Q^+!?RD$%{rUPRT%}&7`Mu&W;3pGWfwmXu}|>P zq;luUY5BpExY}=7Mx_<%-Yf_Ah5wW=uo!Q>8=B99Lj})i#jJaPUscrmu{-MJIgdpNauXq zRm%iEu;3wy^4#;ypYFSPJd2W_t?>&eIFV)38<~rf6&sugka=g*&SKEGujR8A?az`Hgg|~(EtFQh}BF0 diff --git a/sensortoy/sensortoy/platforms/android/assets/www/css/app.css b/sensortoy/sensortoy/platforms/android/assets/www/css/app.css index d5a2b20..a4231cd 100644 --- a/sensortoy/sensortoy/platforms/android/assets/www/css/app.css +++ b/sensortoy/sensortoy/platforms/android/assets/www/css/app.css @@ -208,6 +208,6 @@ color:#78909C; svg text { font-family:'Ubuntu Condensed',sans-serif; font-size:12; - fill: #004c6d; + fill: #bad649; text-align:right; } 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 fcf1382..38b5d44 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 @@ -109,7 +109,7 @@ CC2650_ACCEL = function(p) { this.data.mag.y = this.storeData(calcData.mag.y, this.data.mag.y); this.data.mag.z = this.storeData(calcData.mag.z, this.data.mag.z); - console.log(JSON.stringify(this.data)); + // console.log(JSON.stringify(this.data)); // Console.log(this.state); }; @@ -298,9 +298,9 @@ CC2650_ACCEL = function(p) { var svg = this.generateBlankGraphBase(_subID,{width: '700',height: 150}); - svg = this.graphAddLine(svg, xlineID, 'rgba(255,0,0,0.5)'); - svg = this.graphAddLine(svg, ylineID, 'rgba(0,255,0,0.5)'); - svg = this.graphAddLine(svg, zlineID, 'rgba(0,0,255,0.5)'); + svg = this.graphAddLine(svg, xlineID, 'rgba(255,0,99,1)'); + svg = this.graphAddLine(svg, ylineID, 'rgba(46,255,0,1)'); + svg = this.graphAddLine(svg, zlineID, 'rgba(0,191,255,1)'); return svg; diff --git a/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_barometer.js b/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_barometer.js index 2afb6b5..fd37cb6 100644 --- a/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_barometer.js +++ b/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_barometer.js @@ -99,13 +99,7 @@ var CC2650_BAR = function(p) { var temp = this.frameID + '-t'; var pressure = this.frameID + '-p'; - - var settings = {data: {baseID: this.frameID}}; - var html = new EJS({url: './partials/cc2650_barometer.ejs'}).render(settings); - - this.$id.append(html); - - /* var row = $('
', {class: 'mui-row'}); + var row = $('
', {class: 'mui-row'}); $('
', { class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row); @@ -156,7 +150,7 @@ var CC2650_BAR = function(p) { class: 'mui-tabs__pane', id: (pressure + '-pane') }).append(blankChart)); - }*/ + } this.$result.temp = $('#' + temp); this.$result.pressure = $('#' + pressure); diff --git a/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_thermopile.js b/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_thermopile.js index 257f5e6..335ed4e 100644 --- a/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_thermopile.js +++ b/sensortoy/sensortoy/platforms/android/assets/www/js/device/CC2650/cc2650_thermopile.js @@ -87,10 +87,49 @@ var CC2650_TMP = function(p) { }; this.animateGraph = function() { - this.simpleGraph(this.data.temp, 'temp'); - this.simpleGraph(this.data.ambient, 'ambient'); + // This.simpleGraph(this.data.temp, 'temp'); + // debugger; + var arcTemp = this.frameID + 'temp-arc'; + var arcAmbient = this.frameID + 'ambient-arc'; + this.updateArc(this.data.temp, 'temp' , arcTemp); + + this.updateArc(this.data.ambient, 'ambient' , arcAmbient); + + //This.simpleGraph(this.data.ambient, 'ambient'); }; + this.updateArc = function(data, subID, elmID) { + + + var ceilingLimit; + var _subID; + var _data; + var label; + + _data = data || this.data; + + _subID = subID || ''; + + if (_data.length > 0) { + + ceilingLimit = 50; + + var latest = _data[_data.length - 1]; + var scale = 100 / ceilingLimit; + var arcP = scale * latest; + // Var xstep = (280 - 46) / 100; + + label = this.frameID + subID + '-label'; + document.getElementById(elmID).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(arcP))); + // document.getElementById(label).innerText(latest.toFixed(2) + 'ºc'); + } + + + + }; + + + this.insertFrame = function() { var liSetting; @@ -105,13 +144,27 @@ var CC2650_TMP = function(p) { var temp = this.frameID + '-t'; var amb = this.frameID + '-a'; + + var arcB = this.frameID + 'temp-arcB'; + var arcTemp = this.frameID + 'temp-arc'; + + var ambientArcB = this.frameID + 'ambient-arcB'; + var arcAmbient = this.frameID + 'ambient-arc'; + var settings = {data: {baseID: this.frameID}}; - var html = new EJS({url: './partials/cc2650_thermopile.ejs'}).render(settings); + var html = new EJS({url: './partials/cc2650_thermopile_dial.ejs'}).render(settings); - this.$id.append(html); + this.$id.append(html); + +debugger; + document.getElementById(arcB).setAttribute('d', this.describeArc(150, 150, 100, 0, 240)); + document.getElementById(arcTemp).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(0))); + + document.getElementById(ambientArcB).setAttribute('d', this.describeArc(150, 150, 100, 0, 240)); + document.getElementById(arcAmbient).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(0))); - /*var row = $('
', {class: 'mui-row'}); + /*Var row = $('
', {class: 'mui-row'}); $('
', {class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row); diff --git a/sensortoy/sensortoy/platforms/android/assets/www/js/standards/capability.js b/sensortoy/sensortoy/platforms/android/assets/www/js/standards/capability.js index 156d349..5020b2c 100644 --- a/sensortoy/sensortoy/platforms/android/assets/www/js/standards/capability.js +++ b/sensortoy/sensortoy/platforms/android/assets/www/js/standards/capability.js @@ -242,6 +242,70 @@ CAPABILITY.prototype.animateGraph = function() { }; +CAPABILITY.prototype.polarToCartesian = function(centerX, centerY, radius, angleInDegrees) { + var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0; + + return { + x: centerX + (radius * Math.cos(angleInRadians)), + y: centerY + (radius * Math.sin(angleInRadians)) + }; +}; + + +CAPABILITY.prototype.describeArc = function(x, y, radius, startAngle, endAngle) { + + var start = this.polarToCartesian(x, y, radius, endAngle); + var end = this.polarToCartesian(x, y, radius, startAngle); + + var arcSweep = endAngle - startAngle <= 180 ? '0' : '1'; + + var d = [ + 'M', start.x, start.y, + 'A', radius, radius, 0, arcSweep, 0, end.x, end.y + ].join(' '); + + return d; + }; + +CAPABILITY.prototype.setArc = function(percent) { + return (240 / 100) * percent; +}; + +CAPABILITY.prototype.updateArc = function(data, subID, elmID) { + + + var ceilingLimit; + var ceiling; + var _subID; + var _data; + + _data = data || this.data; + + _subID = subID || ''; + + if (_data.length > 0) { + + ceiling = _data.reduce(function(p, v) { + return (Math.abs(p) > Math.abs(v) ? Math.abs(p) : Math.abs(v)); + }); + + ceilingLimit = (Math.ceil((Math.round(ceiling) + 1) / 10) * 10); + if (ceilingLimit > 1000) { + ceilingLimit = (Math.ceil((Math.round(ceiling) + 1) / 50) * 50); + } + + var latest = _data[_data.length-1]; + var scale = 100 / ceilingLimit; + var arcP = scale * latest; + // Var xstep = (280 - 46) / 100; + + document.getElementById(elmID).setAttribute('d', this.describeArc(150, 150, 100, 0, this.setArc(arcP))); + } + + + }; + + CAPABILITY.prototype.simpleGraph = function(data, subID) { var ceilingLimit; @@ -272,8 +336,8 @@ CAPABILITY.prototype.simpleGraph = function(data, subID) { var calcArray = []; -/* - var ceilingLimit = Math.floor(ceiling / 10) * 10; + /* + Var ceilingLimit = Math.floor(ceiling / 10) * 10; if (ceilingLimit < ceiling) { ceilingLimit = Math.floor((ceiling + (ceiling * 0.25)) / 10) * 10; } diff --git a/sensortoy/sensortoy/platforms/android/assets/www/partials/cc2650_thermopile_dial.ejs b/sensortoy/sensortoy/platforms/android/assets/www/partials/cc2650_thermopile_dial.ejs new file mode 100644 index 0000000..0111acb --- /dev/null +++ b/sensortoy/sensortoy/platforms/android/assets/www/partials/cc2650_thermopile_dial.ejs @@ -0,0 +1,92 @@ +
+
Temp:
+
-- +
+
Ambient:
+
-- +
+
+ +
+ + + + + + + + + + + + + + + + + --ºc + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + --ºc + + + + +