mirror of
https://gitlab.silvrtree.co.uk/martind2000/censis-archive.git
synced 2025-01-26 21:06:16 +00:00
”2016-06-14”
This commit is contained in:
parent
3b08c6bfe7
commit
b90759f36f
@ -1,8 +1,3 @@
|
||||
body {
|
||||
font-family: Ubuntu, "Helvetica Neue", Helvetica, arial, sans-serif;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#lightR, #projR { color: red !important; }
|
||||
|
||||
@ -17,7 +12,6 @@ body {
|
||||
}
|
||||
|
||||
|
||||
|
||||
.h105 {
|
||||
height: 100px;
|
||||
}
|
||||
@ -82,57 +76,6 @@ body {
|
||||
/* Smartphones (portrait and landscape) ----------- */
|
||||
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
|
||||
/* Styles */
|
||||
.time, .date, .temp {
|
||||
font-family: 'Ubuntu Condensed', sans-serif;
|
||||
font-size: 33px;
|
||||
/*color: #ff0000;*/
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 50px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.time span.hour:after {
|
||||
content: "\a";
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.temp {
|
||||
font-size: 70px;
|
||||
}
|
||||
|
||||
.temp::after {
|
||||
content: "°";
|
||||
}
|
||||
|
||||
.wd-we {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.mo {
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
.mo.mo-1, .mo.mo-10 {
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
.mo.mo-2 {
|
||||
font-size: 65%;
|
||||
}
|
||||
|
||||
.mo.mo-8 {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.mo.mo-9 {
|
||||
font-size: 55%;
|
||||
}
|
||||
|
||||
.mo.mo-11, .mo.mo-12 {
|
||||
font-size: 60%;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -258,3 +201,13 @@ color:#78909C;
|
||||
{
|
||||
color:#2196F3;
|
||||
}
|
||||
|
||||
|
||||
/* svg classes */
|
||||
|
||||
svg text {
|
||||
font-family:'Ubuntu Condensed',sans-serif;
|
||||
font-size:12;
|
||||
fill: #004c6d;
|
||||
text-align:right;
|
||||
}
|
||||
|
@ -1,9 +1,14 @@
|
||||
@import "app/libs/mui/src/sass/mui/colors";
|
||||
|
||||
|
||||
$mui-body-bg-color: mui-color('grey', '100');
|
||||
$mui-body-bg-color: /*#003F5a*/ mui-color('grey', '800');
|
||||
$mui-base-font-color: rgba(#FFF, 0.87) !default;
|
||||
$mui-base-font-family: Ubuntu, "Helvetica Neue", Helvetica, Arial, Verdana, Tahoma !default;
|
||||
|
||||
$mui-panel-bg-color : /*#004c6d*/ mui-color('grey', '900');
|
||||
|
||||
//$mui-accent-color: #bad649;
|
||||
$mui-accent-color: #004c6d;
|
||||
$mui-accent-color: #00aeef;
|
||||
$mui-btn-accent-font-color: #004c6d;
|
||||
//$mui-accent-color-dark: mui-color('green', 'A100');
|
||||
$mui-accent-color-dark: #004c6d;
|
||||
|
File diff suppressed because one or more lines are too long
@ -92,6 +92,7 @@
|
||||
<!-- build:vendor -->
|
||||
<script type="text/javascript" src="libs/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="libs/mui/packages/cdn/js/mui.js"></script>
|
||||
<script type="text/javascript" src="libs/ejs/ejs.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="libs/bluebird/js/browser/bluebird.js"></script>
|
||||
<!-- endbuild -->
|
||||
|
@ -99,7 +99,13 @@ var CC2650_BAR = function(p) {
|
||||
|
||||
var temp = this.frameID + '-t';
|
||||
var pressure = this.frameID + '-p';
|
||||
var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
var settings = {data: {baseID: this.frameID}};
|
||||
var html = new EJS({url: './partials/cc2650_barometer.ejs'}).render(settings);
|
||||
|
||||
this.$id.append(html);
|
||||
|
||||
/* var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
$('<div />', { class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row);
|
||||
|
||||
@ -150,7 +156,7 @@ var CC2650_BAR = function(p) {
|
||||
class: 'mui-tabs__pane',
|
||||
id: (pressure + '-pane')
|
||||
}).append(blankChart));
|
||||
}
|
||||
}*/
|
||||
this.$result.temp = $('#' + temp);
|
||||
this.$result.pressure = $('#' + pressure);
|
||||
|
||||
|
@ -104,7 +104,14 @@ var CC2650_TMP = function(p) {
|
||||
|
||||
var temp = this.frameID + '-t';
|
||||
var amb = this.frameID + '-a';
|
||||
var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
var settings = {data: {baseID: this.frameID}};
|
||||
var html = new EJS({url: './partials/cc2650_thermopile.ejs'}).render(settings);
|
||||
|
||||
this.$id.append(html);
|
||||
|
||||
|
||||
/*var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row);
|
||||
@ -152,7 +159,7 @@ var CC2650_TMP = function(p) {
|
||||
this.$id.append($('<div>',{class: 'mui-tabs__pane',id: (amb + '-pane')}).append(blankChart));
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
this.$result.temp = $('#' + temp);
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Time: 10:13
|
||||
*
|
||||
*/
|
||||
/* global CAPABILITY, inheritsFrom, capabilityManager */
|
||||
/* global CAPABILITY, inheritsFrom, capabilityManager, EJS, ejs */
|
||||
/* global ble */
|
||||
/* jshint browser: true , devel: true*/
|
||||
|
||||
@ -48,6 +48,13 @@ var TSL = function(p) {
|
||||
this.$result = {temp: null, tempMax: null, tempMin: null};
|
||||
this.data = [];
|
||||
this.setFrame();
|
||||
this.read = {};
|
||||
|
||||
this.html = {};
|
||||
|
||||
this.history = null;
|
||||
|
||||
this.historyloops = 0;
|
||||
|
||||
this.arrayToHex = function(a) {
|
||||
return a.map(function(i) {
|
||||
@ -55,20 +62,122 @@ var TSL = function(p) {
|
||||
});
|
||||
};
|
||||
|
||||
this.convertToTemp = function(raw) {
|
||||
this.convertToPercent = function(raw) {
|
||||
return ((raw[1] << 8) + (raw[0])) / 100;
|
||||
};
|
||||
|
||||
/*
|
||||
this.$result.temp = $('#' + tslTemp);
|
||||
this.convertToPressure = function(raw) {
|
||||
return ((raw[1] << 8) + (raw[0])) ;
|
||||
};
|
||||
|
||||
this.convertToHumidity = function(raw) {
|
||||
return ((raw[1] << 8) + (raw[0])) ;
|
||||
};
|
||||
|
||||
/*
|
||||
This.$result.temp = $('#' + tslTemp);
|
||||
this.$result.tempMax = $('#' + tslTempMax);
|
||||
this.$result.tempMin = $('#' + tslTempMin);
|
||||
*/
|
||||
this.onReadVelState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var output = [], signedOutput = new Int16Array(9);
|
||||
// Var humidity = this.convertToPercent(raw);
|
||||
console.log('Vel State:', raw);
|
||||
// This.$result.h.text(humidity.toFixed(2) + '%');
|
||||
|
||||
/* output.push(((raw[1] << 8) + (raw[0])));
|
||||
output.push(((raw[3] << 8) + (raw[2])));
|
||||
output.push(((raw[5] << 8) + (raw[4])));
|
||||
output.push(((raw[7] << 8) + (raw[6])));
|
||||
output.push(((raw[9] << 8) + (raw[8])));
|
||||
output.push(((raw[11] << 8) + (raw[10])));
|
||||
output.push(((raw[13] << 8) + (raw[12])));
|
||||
output.push(((raw[15] << 8) + (raw[14])));
|
||||
output.push(((raw[17] << 8) + (raw[16])));
|
||||
|
||||
|
||||
for (var t = 0;t < output.length;t++) {
|
||||
signedOutput[t] = (output[t] * 1.0) / (32768/ 2);
|
||||
}
|
||||
console.log(output);
|
||||
console.log(signedOutput);*/
|
||||
};
|
||||
|
||||
|
||||
this.onReadAccelState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var output = [], signedOutput = new Int16Array(9);
|
||||
// Var humidity = this.convertToPercent(raw);
|
||||
console.log('Accel State:', raw);
|
||||
// This.$result.h.text(humidity.toFixed(2) + '%');
|
||||
|
||||
output.push(((raw[1] << 8) + (raw[0])));
|
||||
output.push(((raw[3] << 8) + (raw[2])));
|
||||
output.push(((raw[5] << 8) + (raw[4])));
|
||||
output.push(((raw[7] << 8) + (raw[6])));
|
||||
output.push(((raw[9] << 8) + (raw[8])));
|
||||
output.push(((raw[11] << 8) + (raw[10])));
|
||||
output.push(((raw[13] << 8) + (raw[12])));
|
||||
output.push(((raw[15] << 8) + (raw[14])));
|
||||
output.push(((raw[17] << 8) + (raw[16])));
|
||||
|
||||
|
||||
for (var t = 0;t < output.length;t++) {
|
||||
signedOutput[t] = (output[t] * 1.0) / (32768/ 2);
|
||||
}
|
||||
console.log(output);
|
||||
console.log(signedOutput);
|
||||
};
|
||||
|
||||
|
||||
this.onReadHumidityState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var humidity = this.convertToPercent(raw);
|
||||
console.log('Humidity State:', humidity);
|
||||
this.$result.h.text(humidity.toFixed(2) + '%');
|
||||
};
|
||||
|
||||
this.onReadHumidityMaxState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var humidity = this.convertToPercent(raw);
|
||||
console.log('Humidity Max State:', humidity);
|
||||
this.$result.hMax.text(humidity.toFixed(2) + '%');
|
||||
};
|
||||
|
||||
|
||||
this.onReadHumidityMinState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var humidity = this.convertToPercent(raw);
|
||||
console.log('Humidity Min State:', humidity);
|
||||
this.$result.hMin.text(humidity.toFixed(2) + '%');
|
||||
};
|
||||
|
||||
this.onReadPressureState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var pressure = this.convertToPressure(raw);
|
||||
console.log('Pressure State:', pressure);
|
||||
this.$result.p.text(pressure + 'Pa');
|
||||
};
|
||||
|
||||
this.onReadPressureMaxState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var pressure = this.convertToPressure(raw);
|
||||
console.log('Pressure Max State:', pressure);
|
||||
this.$result.pMax.text(pressure + 'Pa');
|
||||
};
|
||||
|
||||
this.onReadPressureMinState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var pressure = this.convertToPressure(raw);
|
||||
console.log('Pressure Min State:', pressure);
|
||||
this.$result.pMin.text(pressure + 'Pa');
|
||||
};
|
||||
|
||||
|
||||
this.onReadTempState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var temp = this.convertToTemp(raw);
|
||||
var temp = this.convertToPercent(raw);
|
||||
console.log('Temp State:', temp);
|
||||
this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
|
||||
@ -76,27 +185,152 @@ var TSL = function(p) {
|
||||
|
||||
this.onReadTempMax = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var temp = this.convertToTemp(raw);
|
||||
var temp = this.convertToPercent(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);
|
||||
var temp = this.convertToPercent(raw);
|
||||
console.log('Temp Min:', temp);
|
||||
this.$result.tempMin.text(temp.toFixed(2) + '°C');
|
||||
};
|
||||
|
||||
this.onHistoryAck = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var raw16 = new Uint16Array(d);
|
||||
console.log('History Ack:', raw, raw16);
|
||||
//this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
|
||||
};
|
||||
|
||||
this.onReadHistory = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
|
||||
console.log('History:', raw);
|
||||
//this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
this.historyloops++;
|
||||
this.historyAck();
|
||||
|
||||
};
|
||||
|
||||
this.onHistorySize = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var raw16 = new Uint16Array(d);
|
||||
|
||||
console.log('History Size:', raw, raw16);
|
||||
//this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
|
||||
this.history = new Uint8Array(raw16[0]);
|
||||
this.readHistory();
|
||||
};
|
||||
|
||||
this.historySize = function() {
|
||||
console.log('historySize');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.historySize,
|
||||
this.onHistorySize.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.historyAck = function() {
|
||||
console.log('historyAck');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.historyAck,
|
||||
this.onHistoryAck.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readHistory = function() {
|
||||
console.log('readTempState');
|
||||
console.log('readHistory');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.history,
|
||||
this.onReadTempState.bind(this),
|
||||
this.onReadHistory.bind(this),
|
||||
this.onError);
|
||||
|
||||
};
|
||||
|
||||
this.readAccelState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.accelerationMax,
|
||||
this.onReadAccelState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readVelState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.velocityMax,
|
||||
this.onReadVelState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readHumidityState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.humidityValue,
|
||||
this.onReadHumidityState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readHumidityMaxState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.humidityMax,
|
||||
this.onReadHumidityMaxState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readHumidityMinState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.humidityMin,
|
||||
this.onReadHumidityMinState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readPressureState = function() {
|
||||
console.log('readPressureState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.preValue,
|
||||
this.onReadPressureState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readPressureMaxState = function() {
|
||||
console.log('readPressureMaxState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.presMaximum,
|
||||
this.onReadPressureMaxState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readPressureMinState = function() {
|
||||
console.log('readPressureMinState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.presMinimum,
|
||||
this.onReadPressureMinState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readTempState = function() {
|
||||
console.log('readTempState');
|
||||
ble.read(this.deviceID,
|
||||
@ -124,6 +358,27 @@ var TSL = function(p) {
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readServices = function() {
|
||||
this.readTempState();
|
||||
this.readTempMax();
|
||||
this.readTempMin();
|
||||
this.readPressureState();
|
||||
this.readPressureMaxState();
|
||||
this.readPressureMinState();
|
||||
|
||||
this.readHumidityState();
|
||||
this.readHumidityMaxState();
|
||||
this.readHumidityMinState();
|
||||
|
||||
this.readAccelState();
|
||||
this.readVelState();
|
||||
|
||||
this.historySize();
|
||||
// this.readHistory();
|
||||
|
||||
// setTimeout(this.readServices.bind(this),20000);
|
||||
};
|
||||
|
||||
this.startService = function() {
|
||||
|
||||
if (this.deviceID !== null) {
|
||||
@ -132,10 +387,7 @@ var TSL = function(p) {
|
||||
console.log(this.serviceDef);
|
||||
this.insertFrame();
|
||||
|
||||
|
||||
this.readTempState();
|
||||
this.readTempMax();
|
||||
this.readTempMin();
|
||||
this.readServices();
|
||||
|
||||
}
|
||||
|
||||
@ -161,41 +413,24 @@ var TSL = function(p) {
|
||||
this.superClass_.insertFrame.call(self);
|
||||
|
||||
var tslTemp = this.frameID + '-t';
|
||||
var tslTempMax = this.frameID + '-tmax';
|
||||
var tslTempMin = this.frameID + '-tmin';
|
||||
var tslP = this.frameID + '-p';
|
||||
var tslH = this.frameID + '-h';
|
||||
|
||||
var row = $('<div />', {class: 'mui-row'});
|
||||
var settings = {data: {baseID: this.frameID}};
|
||||
var html = new EJS({url: './partials/tsl.ejs'}).render(settings);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(
|
||||
row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-9 mui--text-dark', id: tslTemp}).appendTo(row);
|
||||
|
||||
this.$id.append(row);
|
||||
|
||||
row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMax:'}).appendTo(
|
||||
row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-dark', id: tslTempMax}).appendTo(row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMin:'}).appendTo(
|
||||
row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-dark', id: tslTempMin}).appendTo(row);
|
||||
|
||||
this.$id.append(row);
|
||||
this.$id.append(html);
|
||||
|
||||
this.$result.temp = $('#' + tslTemp);
|
||||
this.$result.tempMax = $('#' + tslTempMax);
|
||||
this.$result.tempMin = $('#' + tslTempMin);
|
||||
this.$result.tempMax = $('#' + tslTemp + 'max');
|
||||
this.$result.tempMin = $('#' + tslTemp + 'min');
|
||||
this.$result.p = $('#' + tslP);
|
||||
this.$result.pMax = $('#' + tslP + 'max');
|
||||
this.$result.pMin = $('#' + tslP + 'min');
|
||||
|
||||
this.$result.h = $('#' + tslH);
|
||||
this.$result.hMax = $('#' + tslH + 'max');
|
||||
this.$result.hMin = $('#' + tslH + 'min');
|
||||
|
||||
};
|
||||
|
||||
|
42
sensortoy/sensortoy/app/partials/cc2650_barometer.ejs
Normal file
42
sensortoy/sensortoy/app/partials/cc2650_barometer.ejs
Normal file
@ -0,0 +1,42 @@
|
||||
<%= data.baseID + 'pressure-line' %>
|
||||
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-t' %>">--</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Pressure:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-p' %>">--</div>
|
||||
</div>
|
||||
<ul class="mui-tabs__bar mui-tabs__bar--justified">
|
||||
<li class="mui--is-active tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-t-pane' %>">Temperature</a>
|
||||
</li>
|
||||
<li class="tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-p-pane' %>">Pressure</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mui-tabs__pane mui--is-active" id="<%= data.baseID + '-t-pane' %>">
|
||||
<svg id="<%= data.baseID + 'temp-svg' %>" width="300" height="150" fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'temp-txt1' %>" x="36" y="15" text-anchor="end">--</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'temp-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mui-tabs__pane" id="<%= data.baseID + '-p-pane' %>">
|
||||
<svg id="<%= data.baseID + 'pressure-svg' %>" width="300" height="150" fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'pressure-txt1' %>" x="36" y="15" text-anchor="end">--</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'pressure-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
48
sensortoy/sensortoy/app/partials/cc2650_thermopile.ejs
Normal file
48
sensortoy/sensortoy/app/partials/cc2650_thermopile.ejs
Normal file
@ -0,0 +1,48 @@
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light mui--text-left"
|
||||
id="<%= data.baseID + '-t' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Ambient:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-a' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<ul class="mui-tabs__bar mui-tabs__bar--justified">
|
||||
<li class="tabOnWhite mui--is-active"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-t-pane' %>">Temperature</a>
|
||||
</li>
|
||||
<li class="tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-a-pane' %>">Ambient</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mui-tabs__pane mui--is-active" id="<%= data.baseID + '-t-pane' %>">
|
||||
<svg id="<%= data.baseID + 'temp-svg' %>" width="300" height="150"
|
||||
fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'temp-txt1' %>" x="36" y="15"
|
||||
text-anchor="end">--
|
||||
</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'temp-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2" points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mui-tabs__pane" id="<%= data.baseID + '-a-pane' %>">
|
||||
<svg id="<%= data.baseID + 'ambient-svg' %>" width="300" height="150"
|
||||
fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'ambient-txt1' %>" x="36" y="15"
|
||||
text-anchor="end">--
|
||||
</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'ambient-line' %>" fill="none"
|
||||
stroke="#2196F3" text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
45
sensortoy/sensortoy/app/partials/tsl.ejs
Normal file
45
sensortoy/sensortoy/app/partials/tsl.ejs
Normal file
@ -0,0 +1,45 @@
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-9 mui--text-light" id="<%= data.baseID + '-t' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">TMax:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-tmax' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">TMin:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-tmin' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Pressure:</div>
|
||||
<div class="mui-col-xs-9 mui--text-light" id="<%= data.baseID + '-p' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">PMax:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-pmax' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">PMin:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-pmin' %>">--
|
||||
</div>
|
||||
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Humidity:</div>
|
||||
<div class="mui-col-xs-9 mui--text-light" id="<%= data.baseID + '-h' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">HMax:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-hmax' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">HMin:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-hmin' %>">--
|
||||
</div>
|
||||
</div>
|
@ -79,6 +79,14 @@ gulp.task('mui', function() {
|
||||
.pipe(gulp.dest('www/css'));
|
||||
});
|
||||
|
||||
gulp.task('customMUI', function() {
|
||||
return gulp.src(['app/css/custom.scss'])
|
||||
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
|
||||
//.pipe(cssnano())
|
||||
.pipe(rename('mui.custom.css'))
|
||||
.pipe(gulp.dest('app/css'));
|
||||
});
|
||||
|
||||
gulp.task('styles', function() {
|
||||
return gulp.src(['app/css/app.css','app/css/progress.css'])
|
||||
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
|
||||
@ -149,3 +157,13 @@ gulp.task('watch',function() {
|
||||
gulp.watch('app/**/*',['copy']);
|
||||
|
||||
});
|
||||
|
||||
gulp.task('MUIWatcher', function() {
|
||||
'use strict';
|
||||
gulp.start('customMUI','watchMUI');
|
||||
});
|
||||
|
||||
gulp.task('watchMUI',function() {
|
||||
gulp.watch('app/css/custom.scss',['customMUI']);
|
||||
|
||||
});
|
||||
|
16
sensortoy/sensortoy/localserver.js
Normal file
16
sensortoy/sensortoy/localserver.js
Normal file
@ -0,0 +1,16 @@
|
||||
var express = require('express');
|
||||
var path = require('path');
|
||||
|
||||
var app = express();
|
||||
|
||||
app.use(express.static(path.join(__dirname, 'www')));
|
||||
|
||||
/*
|
||||
App.get('/', function (req, res) {
|
||||
res.send('Hello World!');
|
||||
});
|
||||
*/
|
||||
|
||||
app.listen(3000, function() {
|
||||
console.log('Example app listening on port 3000!');
|
||||
});
|
@ -34,5 +34,8 @@
|
||||
"gulp-watch": "^4.3.6",
|
||||
"jshint": "^2.9.2",
|
||||
"scss": "^0.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"express": "^4.13.4"
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,8 +1,3 @@
|
||||
body {
|
||||
font-family: Ubuntu, "Helvetica Neue", Helvetica, arial, sans-serif;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#lightR, #projR { color: red !important; }
|
||||
|
||||
@ -17,7 +12,6 @@ body {
|
||||
}
|
||||
|
||||
|
||||
|
||||
.h105 {
|
||||
height: 100px;
|
||||
}
|
||||
@ -82,57 +76,6 @@ body {
|
||||
/* Smartphones (portrait and landscape) ----------- */
|
||||
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
|
||||
/* Styles */
|
||||
.time, .date, .temp {
|
||||
font-family: 'Ubuntu Condensed', sans-serif;
|
||||
font-size: 33px;
|
||||
/*color: #ff0000;*/
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 50px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.time span.hour:after {
|
||||
content: "\a";
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.temp {
|
||||
font-size: 70px;
|
||||
}
|
||||
|
||||
.temp::after {
|
||||
content: "°";
|
||||
}
|
||||
|
||||
.wd-we {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.mo {
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
.mo.mo-1, .mo.mo-10 {
|
||||
font-size: 70%;
|
||||
}
|
||||
|
||||
.mo.mo-2 {
|
||||
font-size: 65%;
|
||||
}
|
||||
|
||||
.mo.mo-8 {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.mo.mo-9 {
|
||||
font-size: 55%;
|
||||
}
|
||||
|
||||
.mo.mo-11, .mo.mo-12 {
|
||||
font-size: 60%;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -258,3 +201,13 @@ color:#78909C;
|
||||
{
|
||||
color:#2196F3;
|
||||
}
|
||||
|
||||
|
||||
/* svg classes */
|
||||
|
||||
svg text {
|
||||
font-family:'Ubuntu Condensed',sans-serif;
|
||||
font-size:12;
|
||||
fill: #004c6d;
|
||||
text-align:right;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,9 +1,14 @@
|
||||
@import "app/libs/mui/src/sass/mui/colors";
|
||||
|
||||
|
||||
$mui-body-bg-color: mui-color('grey', '100');
|
||||
$mui-body-bg-color: /*#003F5a*/ mui-color('grey', '800');
|
||||
$mui-base-font-color: rgba(#FFF, 0.87) !default;
|
||||
$mui-base-font-family: Ubuntu, "Helvetica Neue", Helvetica, Arial, Verdana, Tahoma !default;
|
||||
|
||||
$mui-panel-bg-color : /*#004c6d*/ mui-color('grey', '900');
|
||||
|
||||
//$mui-accent-color: #bad649;
|
||||
$mui-accent-color: #004c6d;
|
||||
$mui-accent-color: #00aeef;
|
||||
$mui-btn-accent-font-color: #004c6d;
|
||||
//$mui-accent-color-dark: mui-color('green', 'A100');
|
||||
$mui-accent-color-dark: #004c6d;
|
||||
|
File diff suppressed because one or more lines are too long
@ -92,6 +92,7 @@
|
||||
<!-- build:vendor -->
|
||||
<script type="text/javascript" src="libs/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="libs/mui/packages/cdn/js/mui.js"></script>
|
||||
<script type="text/javascript" src="libs/ejs/ejs.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="libs/bluebird/js/browser/bluebird.js"></script>
|
||||
<!-- endbuild -->
|
||||
|
@ -99,7 +99,13 @@ var CC2650_BAR = function(p) {
|
||||
|
||||
var temp = this.frameID + '-t';
|
||||
var pressure = this.frameID + '-p';
|
||||
var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
var settings = {data: {baseID: this.frameID}};
|
||||
var html = new EJS({url: './partials/cc2650_barometer.ejs'}).render(settings);
|
||||
|
||||
this.$id.append(html);
|
||||
|
||||
/* var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
$('<div />', { class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row);
|
||||
|
||||
@ -150,7 +156,7 @@ var CC2650_BAR = function(p) {
|
||||
class: 'mui-tabs__pane',
|
||||
id: (pressure + '-pane')
|
||||
}).append(blankChart));
|
||||
}
|
||||
}*/
|
||||
this.$result.temp = $('#' + temp);
|
||||
this.$result.pressure = $('#' + pressure);
|
||||
|
||||
|
@ -104,7 +104,14 @@ var CC2650_TMP = function(p) {
|
||||
|
||||
var temp = this.frameID + '-t';
|
||||
var amb = this.frameID + '-a';
|
||||
var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
var settings = {data: {baseID: this.frameID}};
|
||||
var html = new EJS({url: './partials/cc2650_thermopile.ejs'}).render(settings);
|
||||
|
||||
this.$id.append(html);
|
||||
|
||||
|
||||
/*var row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(row);
|
||||
@ -152,7 +159,7 @@ var CC2650_TMP = function(p) {
|
||||
this.$id.append($('<div>',{class: 'mui-tabs__pane',id: (amb + '-pane')}).append(blankChart));
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
this.$result.temp = $('#' + temp);
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Time: 10:13
|
||||
*
|
||||
*/
|
||||
/* global CAPABILITY, inheritsFrom, capabilityManager */
|
||||
/* global CAPABILITY, inheritsFrom, capabilityManager, EJS, ejs */
|
||||
/* global ble */
|
||||
/* jshint browser: true , devel: true*/
|
||||
|
||||
@ -48,6 +48,13 @@ var TSL = function(p) {
|
||||
this.$result = {temp: null, tempMax: null, tempMin: null};
|
||||
this.data = [];
|
||||
this.setFrame();
|
||||
this.read = {};
|
||||
|
||||
this.html = {};
|
||||
|
||||
this.history = null;
|
||||
|
||||
this.historyloops = 0;
|
||||
|
||||
this.arrayToHex = function(a) {
|
||||
return a.map(function(i) {
|
||||
@ -55,20 +62,122 @@ var TSL = function(p) {
|
||||
});
|
||||
};
|
||||
|
||||
this.convertToTemp = function(raw) {
|
||||
this.convertToPercent = function(raw) {
|
||||
return ((raw[1] << 8) + (raw[0])) / 100;
|
||||
};
|
||||
|
||||
/*
|
||||
this.$result.temp = $('#' + tslTemp);
|
||||
this.convertToPressure = function(raw) {
|
||||
return ((raw[1] << 8) + (raw[0])) ;
|
||||
};
|
||||
|
||||
this.convertToHumidity = function(raw) {
|
||||
return ((raw[1] << 8) + (raw[0])) ;
|
||||
};
|
||||
|
||||
/*
|
||||
This.$result.temp = $('#' + tslTemp);
|
||||
this.$result.tempMax = $('#' + tslTempMax);
|
||||
this.$result.tempMin = $('#' + tslTempMin);
|
||||
*/
|
||||
this.onReadVelState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var output = [], signedOutput = new Int16Array(9);
|
||||
// Var humidity = this.convertToPercent(raw);
|
||||
console.log('Vel State:', raw);
|
||||
// This.$result.h.text(humidity.toFixed(2) + '%');
|
||||
|
||||
/* output.push(((raw[1] << 8) + (raw[0])));
|
||||
output.push(((raw[3] << 8) + (raw[2])));
|
||||
output.push(((raw[5] << 8) + (raw[4])));
|
||||
output.push(((raw[7] << 8) + (raw[6])));
|
||||
output.push(((raw[9] << 8) + (raw[8])));
|
||||
output.push(((raw[11] << 8) + (raw[10])));
|
||||
output.push(((raw[13] << 8) + (raw[12])));
|
||||
output.push(((raw[15] << 8) + (raw[14])));
|
||||
output.push(((raw[17] << 8) + (raw[16])));
|
||||
|
||||
|
||||
for (var t = 0;t < output.length;t++) {
|
||||
signedOutput[t] = (output[t] * 1.0) / (32768/ 2);
|
||||
}
|
||||
console.log(output);
|
||||
console.log(signedOutput);*/
|
||||
};
|
||||
|
||||
|
||||
this.onReadAccelState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var output = [], signedOutput = new Int16Array(9);
|
||||
// Var humidity = this.convertToPercent(raw);
|
||||
console.log('Accel State:', raw);
|
||||
// This.$result.h.text(humidity.toFixed(2) + '%');
|
||||
|
||||
output.push(((raw[1] << 8) + (raw[0])));
|
||||
output.push(((raw[3] << 8) + (raw[2])));
|
||||
output.push(((raw[5] << 8) + (raw[4])));
|
||||
output.push(((raw[7] << 8) + (raw[6])));
|
||||
output.push(((raw[9] << 8) + (raw[8])));
|
||||
output.push(((raw[11] << 8) + (raw[10])));
|
||||
output.push(((raw[13] << 8) + (raw[12])));
|
||||
output.push(((raw[15] << 8) + (raw[14])));
|
||||
output.push(((raw[17] << 8) + (raw[16])));
|
||||
|
||||
|
||||
for (var t = 0;t < output.length;t++) {
|
||||
signedOutput[t] = (output[t] * 1.0) / (32768/ 2);
|
||||
}
|
||||
console.log(output);
|
||||
console.log(signedOutput);
|
||||
};
|
||||
|
||||
|
||||
this.onReadHumidityState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var humidity = this.convertToPercent(raw);
|
||||
console.log('Humidity State:', humidity);
|
||||
this.$result.h.text(humidity.toFixed(2) + '%');
|
||||
};
|
||||
|
||||
this.onReadHumidityMaxState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var humidity = this.convertToPercent(raw);
|
||||
console.log('Humidity Max State:', humidity);
|
||||
this.$result.hMax.text(humidity.toFixed(2) + '%');
|
||||
};
|
||||
|
||||
|
||||
this.onReadHumidityMinState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var humidity = this.convertToPercent(raw);
|
||||
console.log('Humidity Min State:', humidity);
|
||||
this.$result.hMin.text(humidity.toFixed(2) + '%');
|
||||
};
|
||||
|
||||
this.onReadPressureState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var pressure = this.convertToPressure(raw);
|
||||
console.log('Pressure State:', pressure);
|
||||
this.$result.p.text(pressure + 'Pa');
|
||||
};
|
||||
|
||||
this.onReadPressureMaxState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var pressure = this.convertToPressure(raw);
|
||||
console.log('Pressure Max State:', pressure);
|
||||
this.$result.pMax.text(pressure + 'Pa');
|
||||
};
|
||||
|
||||
this.onReadPressureMinState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var pressure = this.convertToPressure(raw);
|
||||
console.log('Pressure Min State:', pressure);
|
||||
this.$result.pMin.text(pressure + 'Pa');
|
||||
};
|
||||
|
||||
|
||||
this.onReadTempState = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var temp = this.convertToTemp(raw);
|
||||
var temp = this.convertToPercent(raw);
|
||||
console.log('Temp State:', temp);
|
||||
this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
|
||||
@ -76,27 +185,152 @@ var TSL = function(p) {
|
||||
|
||||
this.onReadTempMax = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var temp = this.convertToTemp(raw);
|
||||
var temp = this.convertToPercent(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);
|
||||
var temp = this.convertToPercent(raw);
|
||||
console.log('Temp Min:', temp);
|
||||
this.$result.tempMin.text(temp.toFixed(2) + '°C');
|
||||
};
|
||||
|
||||
this.onHistoryAck = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var raw16 = new Uint16Array(d);
|
||||
console.log('History Ack:', raw, raw16);
|
||||
//this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
|
||||
};
|
||||
|
||||
this.onReadHistory = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
|
||||
console.log('History:', raw);
|
||||
//this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
this.historyloops++;
|
||||
this.historyAck();
|
||||
|
||||
};
|
||||
|
||||
this.onHistorySize = function(d) {
|
||||
var raw = new Uint8Array(d);
|
||||
var raw16 = new Uint16Array(d);
|
||||
|
||||
console.log('History Size:', raw, raw16);
|
||||
//this.$result.temp.text(temp.toFixed(2) + '°C');
|
||||
|
||||
this.history = new Uint8Array(raw16[0]);
|
||||
this.readHistory();
|
||||
};
|
||||
|
||||
this.historySize = function() {
|
||||
console.log('historySize');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.historySize,
|
||||
this.onHistorySize.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.historyAck = function() {
|
||||
console.log('historyAck');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.historyAck,
|
||||
this.onHistoryAck.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readHistory = function() {
|
||||
console.log('readTempState');
|
||||
console.log('readHistory');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.history,
|
||||
this.onReadTempState.bind(this),
|
||||
this.onReadHistory.bind(this),
|
||||
this.onError);
|
||||
|
||||
};
|
||||
|
||||
this.readAccelState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.accelerationMax,
|
||||
this.onReadAccelState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readVelState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.velocityMax,
|
||||
this.onReadVelState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readHumidityState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.humidityValue,
|
||||
this.onReadHumidityState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readHumidityMaxState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.humidityMax,
|
||||
this.onReadHumidityMaxState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readHumidityMinState = function() {
|
||||
console.log('readHumidityState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.humidityMin,
|
||||
this.onReadHumidityMinState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readPressureState = function() {
|
||||
console.log('readPressureState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.preValue,
|
||||
this.onReadPressureState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readPressureMaxState = function() {
|
||||
console.log('readPressureMaxState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.presMaximum,
|
||||
this.onReadPressureMaxState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readPressureMinState = function() {
|
||||
console.log('readPressureMinState');
|
||||
ble.read(this.deviceID,
|
||||
this.serviceDef.service,
|
||||
this.serviceDef.presMinimum,
|
||||
this.onReadPressureMinState.bind(this),
|
||||
this.onError);
|
||||
};
|
||||
|
||||
|
||||
this.readTempState = function() {
|
||||
console.log('readTempState');
|
||||
ble.read(this.deviceID,
|
||||
@ -124,6 +358,27 @@ var TSL = function(p) {
|
||||
this.onError);
|
||||
};
|
||||
|
||||
this.readServices = function() {
|
||||
this.readTempState();
|
||||
this.readTempMax();
|
||||
this.readTempMin();
|
||||
this.readPressureState();
|
||||
this.readPressureMaxState();
|
||||
this.readPressureMinState();
|
||||
|
||||
this.readHumidityState();
|
||||
this.readHumidityMaxState();
|
||||
this.readHumidityMinState();
|
||||
|
||||
this.readAccelState();
|
||||
this.readVelState();
|
||||
|
||||
this.historySize();
|
||||
// this.readHistory();
|
||||
|
||||
// setTimeout(this.readServices.bind(this),20000);
|
||||
};
|
||||
|
||||
this.startService = function() {
|
||||
|
||||
if (this.deviceID !== null) {
|
||||
@ -132,10 +387,7 @@ var TSL = function(p) {
|
||||
console.log(this.serviceDef);
|
||||
this.insertFrame();
|
||||
|
||||
|
||||
this.readTempState();
|
||||
this.readTempMax();
|
||||
this.readTempMin();
|
||||
this.readServices();
|
||||
|
||||
}
|
||||
|
||||
@ -161,41 +413,24 @@ var TSL = function(p) {
|
||||
this.superClass_.insertFrame.call(self);
|
||||
|
||||
var tslTemp = this.frameID + '-t';
|
||||
var tslTempMax = this.frameID + '-tmax';
|
||||
var tslTempMin = this.frameID + '-tmin';
|
||||
var tslP = this.frameID + '-p';
|
||||
var tslH = this.frameID + '-h';
|
||||
|
||||
var row = $('<div />', {class: 'mui-row'});
|
||||
var settings = {data: {baseID: this.frameID}};
|
||||
var html = new EJS({url: './partials/tsl.ejs'}).render(settings);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'Temp:'}).appendTo(
|
||||
row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-9 mui--text-dark', id: tslTemp}).appendTo(row);
|
||||
|
||||
this.$id.append(row);
|
||||
|
||||
row = $('<div />', {class: 'mui-row'});
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMax:'}).appendTo(
|
||||
row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-dark', id: tslTempMax}).appendTo(row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-accent mui--text-right', text: 'TMin:'}).appendTo(
|
||||
row);
|
||||
|
||||
$('<div />',
|
||||
{class: 'mui-col-xs-3 mui--text-dark', id: tslTempMin}).appendTo(row);
|
||||
|
||||
this.$id.append(row);
|
||||
this.$id.append(html);
|
||||
|
||||
this.$result.temp = $('#' + tslTemp);
|
||||
this.$result.tempMax = $('#' + tslTempMax);
|
||||
this.$result.tempMin = $('#' + tslTempMin);
|
||||
this.$result.tempMax = $('#' + tslTemp + 'max');
|
||||
this.$result.tempMin = $('#' + tslTemp + 'min');
|
||||
this.$result.p = $('#' + tslP);
|
||||
this.$result.pMax = $('#' + tslP + 'max');
|
||||
this.$result.pMin = $('#' + tslP + 'min');
|
||||
|
||||
this.$result.h = $('#' + tslH);
|
||||
this.$result.hMax = $('#' + tslH + 'max');
|
||||
this.$result.hMin = $('#' + tslH + 'min');
|
||||
|
||||
};
|
||||
|
||||
|
505
sensortoy/sensortoy/platforms/android/assets/www/libs/ejs/ejs.js
Normal file
505
sensortoy/sensortoy/platforms/android/assets/www/libs/ejs/ejs.js
Normal file
@ -0,0 +1,505 @@
|
||||
(function(){
|
||||
|
||||
|
||||
var rsplit = function(string, regex) {
|
||||
var result = regex.exec(string),retArr = new Array(), first_idx, last_idx, first_bit;
|
||||
while (result != null)
|
||||
{
|
||||
first_idx = result.index; last_idx = regex.lastIndex;
|
||||
if ((first_idx) != 0)
|
||||
{
|
||||
first_bit = string.substring(0,first_idx);
|
||||
retArr.push(string.substring(0,first_idx));
|
||||
string = string.slice(first_idx);
|
||||
}
|
||||
retArr.push(result[0]);
|
||||
string = string.slice(result[0].length);
|
||||
result = regex.exec(string);
|
||||
}
|
||||
if (! string == '')
|
||||
{
|
||||
retArr.push(string);
|
||||
}
|
||||
return retArr;
|
||||
},
|
||||
chop = function(string){
|
||||
return string.substr(0, string.length - 1);
|
||||
},
|
||||
extend = function(d, s){
|
||||
for(var n in s){
|
||||
if(s.hasOwnProperty(n)) d[n] = s[n]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
EJS = function( options ){
|
||||
options = typeof options == "string" ? {view: options} : options
|
||||
this.set_options(options);
|
||||
if(options.precompiled){
|
||||
this.template = {};
|
||||
this.template.process = options.precompiled;
|
||||
EJS.update(this.name, this);
|
||||
return;
|
||||
}
|
||||
if(options.element)
|
||||
{
|
||||
if(typeof options.element == 'string'){
|
||||
var name = options.element
|
||||
options.element = document.getElementById( options.element )
|
||||
if(options.element == null) throw name+'does not exist!'
|
||||
}
|
||||
if(options.element.value){
|
||||
this.text = options.element.value
|
||||
}else{
|
||||
this.text = options.element.innerHTML
|
||||
}
|
||||
this.name = options.element.id
|
||||
this.type = '['
|
||||
}else if(options.url){
|
||||
options.url = EJS.endExt(options.url, this.extMatch);
|
||||
this.name = this.name ? this.name : options.url;
|
||||
var url = options.url
|
||||
//options.view = options.absolute_url || options.view || options.;
|
||||
var template = EJS.get(this.name /*url*/, this.cache);
|
||||
if (template) return template;
|
||||
if (template == EJS.INVALID_PATH) return null;
|
||||
try{
|
||||
this.text = EJS.request( url+(this.cache ? '' : '?'+Math.random() ));
|
||||
}catch(e){}
|
||||
|
||||
if(this.text == null){
|
||||
throw( {type: 'EJS', message: 'There is no template at '+url} );
|
||||
}
|
||||
//this.name = url;
|
||||
}
|
||||
var template = new EJS.Compiler(this.text, this.type);
|
||||
|
||||
template.compile(options, this.name);
|
||||
|
||||
|
||||
EJS.update(this.name, this);
|
||||
this.template = template;
|
||||
};
|
||||
/* @Prototype*/
|
||||
EJS.prototype = {
|
||||
/**
|
||||
* Renders an object with extra view helpers attached to the view.
|
||||
* @param {Object} object data to be rendered
|
||||
* @param {Object} extra_helpers an object with additonal view helpers
|
||||
* @return {String} returns the result of the string
|
||||
*/
|
||||
render : function(object, extra_helpers){
|
||||
object = object || {};
|
||||
this._extra_helpers = extra_helpers;
|
||||
var v = new EJS.Helpers(object, extra_helpers || {});
|
||||
return this.template.process.call(object, object,v);
|
||||
},
|
||||
update : function(element, options){
|
||||
if(typeof element == 'string'){
|
||||
element = document.getElementById(element)
|
||||
}
|
||||
if(options == null){
|
||||
_template = this;
|
||||
return function(object){
|
||||
EJS.prototype.update.call(_template, element, object)
|
||||
}
|
||||
}
|
||||
if(typeof options == 'string'){
|
||||
params = {}
|
||||
params.url = options
|
||||
_template = this;
|
||||
params.onComplete = function(request){
|
||||
var object = eval( request.responseText )
|
||||
EJS.prototype.update.call(_template, element, object)
|
||||
}
|
||||
EJS.ajax_request(params)
|
||||
}else
|
||||
{
|
||||
element.innerHTML = this.render(options)
|
||||
}
|
||||
},
|
||||
out : function(){
|
||||
return this.template.out;
|
||||
},
|
||||
/**
|
||||
* Sets options on this view to be rendered with.
|
||||
* @param {Object} options
|
||||
*/
|
||||
set_options : function(options){
|
||||
this.type = options.type || EJS.type;
|
||||
this.cache = options.cache != null ? options.cache : EJS.cache;
|
||||
this.text = options.text || null;
|
||||
this.name = options.name || null;
|
||||
this.ext = options.ext || EJS.ext;
|
||||
this.extMatch = new RegExp(this.ext.replace(/\./, '\.'));
|
||||
}
|
||||
};
|
||||
EJS.endExt = function(path, match){
|
||||
if(!path) return null;
|
||||
match.lastIndex = 0
|
||||
return path+ (match.test(path) ? '' : this.ext )
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* @Static*/
|
||||
EJS.Scanner = function(source, left, right) {
|
||||
|
||||
extend(this,
|
||||
{left_delimiter: left +'%',
|
||||
right_delimiter: '%'+right,
|
||||
double_left: left+'%%',
|
||||
double_right: '%%'+right,
|
||||
left_equal: left+'%=',
|
||||
left_comment: left+'%#'})
|
||||
|
||||
this.SplitRegexp = left=='[' ? /(\[%%)|(%%\])|(\[%=)|(\[%#)|(\[%)|(%\]\n)|(%\])|(\n)/ : new RegExp('('+this.double_left+')|(%%'+this.double_right+')|('+this.left_equal+')|('+this.left_comment+')|('+this.left_delimiter+')|('+this.right_delimiter+'\n)|('+this.right_delimiter+')|(\n)') ;
|
||||
|
||||
this.source = source;
|
||||
this.stag = null;
|
||||
this.lines = 0;
|
||||
};
|
||||
|
||||
EJS.Scanner.to_text = function(input){
|
||||
if(input == null || input === undefined)
|
||||
return '';
|
||||
if(input instanceof Date)
|
||||
return input.toDateString();
|
||||
if(input.toString)
|
||||
return input.toString();
|
||||
return '';
|
||||
};
|
||||
|
||||
EJS.Scanner.prototype = {
|
||||
scan: function(block) {
|
||||
scanline = this.scanline;
|
||||
regex = this.SplitRegexp;
|
||||
if (! this.source == '')
|
||||
{
|
||||
var source_split = rsplit(this.source, /\n/);
|
||||
for(var i=0; i<source_split.length; i++) {
|
||||
var item = source_split[i];
|
||||
this.scanline(item, regex, block);
|
||||
}
|
||||
}
|
||||
},
|
||||
scanline: function(line, regex, block) {
|
||||
this.lines++;
|
||||
var line_split = rsplit(line, regex);
|
||||
for(var i=0; i<line_split.length; i++) {
|
||||
var token = line_split[i];
|
||||
if (token != null) {
|
||||
try{
|
||||
block(token, this);
|
||||
}catch(e){
|
||||
throw {type: 'EJS.Scanner', line: this.lines};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
EJS.Buffer = function(pre_cmd, post_cmd) {
|
||||
this.line = new Array();
|
||||
this.script = "";
|
||||
this.pre_cmd = pre_cmd;
|
||||
this.post_cmd = post_cmd;
|
||||
for (var i=0; i<this.pre_cmd.length; i++)
|
||||
{
|
||||
this.push(pre_cmd[i]);
|
||||
}
|
||||
};
|
||||
EJS.Buffer.prototype = {
|
||||
|
||||
push: function(cmd) {
|
||||
this.line.push(cmd);
|
||||
},
|
||||
|
||||
cr: function() {
|
||||
this.script = this.script + this.line.join('; ');
|
||||
this.line = new Array();
|
||||
this.script = this.script + "\n";
|
||||
},
|
||||
|
||||
close: function() {
|
||||
if (this.line.length > 0)
|
||||
{
|
||||
for (var i=0; i<this.post_cmd.length; i++){
|
||||
this.push(pre_cmd[i]);
|
||||
}
|
||||
this.script = this.script + this.line.join('; ');
|
||||
line = null;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
EJS.Compiler = function(source, left) {
|
||||
this.pre_cmd = ['var ___ViewO = [];'];
|
||||
this.post_cmd = new Array();
|
||||
this.source = ' ';
|
||||
if (source != null)
|
||||
{
|
||||
if (typeof source == 'string')
|
||||
{
|
||||
source = source.replace(/\r\n/g, "\n");
|
||||
source = source.replace(/\r/g, "\n");
|
||||
this.source = source;
|
||||
}else if (source.innerHTML){
|
||||
this.source = source.innerHTML;
|
||||
}
|
||||
if (typeof this.source != 'string'){
|
||||
this.source = "";
|
||||
}
|
||||
}
|
||||
left = left || '<';
|
||||
var right = '>';
|
||||
switch(left) {
|
||||
case '[':
|
||||
right = ']';
|
||||
break;
|
||||
case '<':
|
||||
break;
|
||||
default:
|
||||
throw left+' is not a supported deliminator';
|
||||
break;
|
||||
}
|
||||
this.scanner = new EJS.Scanner(this.source, left, right);
|
||||
this.out = '';
|
||||
};
|
||||
EJS.Compiler.prototype = {
|
||||
compile: function(options, name) {
|
||||
options = options || {};
|
||||
this.out = '';
|
||||
var put_cmd = "___ViewO.push(";
|
||||
var insert_cmd = put_cmd;
|
||||
var buff = new EJS.Buffer(this.pre_cmd, this.post_cmd);
|
||||
var content = '';
|
||||
var clean = function(content)
|
||||
{
|
||||
content = content.replace(/\\/g, '\\\\');
|
||||
content = content.replace(/\n/g, '\\n');
|
||||
content = content.replace(/"/g, '\\"');
|
||||
return content;
|
||||
};
|
||||
this.scanner.scan(function(token, scanner) {
|
||||
if (scanner.stag == null)
|
||||
{
|
||||
switch(token) {
|
||||
case '\n':
|
||||
content = content + "\n";
|
||||
buff.push(put_cmd + '"' + clean(content) + '");');
|
||||
buff.cr();
|
||||
content = '';
|
||||
break;
|
||||
case scanner.left_delimiter:
|
||||
case scanner.left_equal:
|
||||
case scanner.left_comment:
|
||||
scanner.stag = token;
|
||||
if (content.length > 0)
|
||||
{
|
||||
buff.push(put_cmd + '"' + clean(content) + '")');
|
||||
}
|
||||
content = '';
|
||||
break;
|
||||
case scanner.double_left:
|
||||
content = content + scanner.left_delimiter;
|
||||
break;
|
||||
default:
|
||||
content = content + token;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
switch(token) {
|
||||
case scanner.right_delimiter:
|
||||
switch(scanner.stag) {
|
||||
case scanner.left_delimiter:
|
||||
if (content[content.length - 1] == '\n')
|
||||
{
|
||||
content = chop(content);
|
||||
buff.push(content);
|
||||
buff.cr();
|
||||
}
|
||||
else {
|
||||
buff.push(content);
|
||||
}
|
||||
break;
|
||||
case scanner.left_equal:
|
||||
buff.push(insert_cmd + "(EJS.Scanner.to_text(" + content + ")))");
|
||||
break;
|
||||
}
|
||||
scanner.stag = null;
|
||||
content = '';
|
||||
break;
|
||||
case scanner.double_right:
|
||||
content = content + scanner.right_delimiter;
|
||||
break;
|
||||
default:
|
||||
content = content + token;
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
if (content.length > 0)
|
||||
{
|
||||
// Chould be content.dump in Ruby
|
||||
buff.push(put_cmd + '"' + clean(content) + '")');
|
||||
}
|
||||
buff.close();
|
||||
this.out = buff.script + ";";
|
||||
var to_be_evaled = '/*'+name+'*/this.process = function(_CONTEXT,_VIEW) { try { with(_VIEW) { with (_CONTEXT) {'+this.out+" return ___ViewO.join('');}}}catch(e){e.lineNumber=null;throw e;}};";
|
||||
|
||||
try{
|
||||
eval(to_be_evaled);
|
||||
}catch(e){
|
||||
if(typeof JSLINT != 'undefined'){
|
||||
JSLINT(this.out);
|
||||
for(var i = 0; i < JSLINT.errors.length; i++){
|
||||
var error = JSLINT.errors[i];
|
||||
if(error.reason != "Unnecessary semicolon."){
|
||||
error.line++;
|
||||
var e = new Error();
|
||||
e.lineNumber = error.line;
|
||||
e.message = error.reason;
|
||||
if(options.view)
|
||||
e.fileName = options.view;
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//type, cache, folder
|
||||
/**
|
||||
* Sets default options for all views
|
||||
* @param {Object} options Set view with the following options
|
||||
* <table class="options">
|
||||
<tbody><tr><th>Option</th><th>Default</th><th>Description</th></tr>
|
||||
<tr>
|
||||
<td>type</td>
|
||||
<td>'<'</td>
|
||||
<td>type of magic tags. Options are '<' or '['
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cache</td>
|
||||
<td>true in production mode, false in other modes</td>
|
||||
<td>true to cache template.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
*
|
||||
*/
|
||||
EJS.config = function(options){
|
||||
EJS.cache = options.cache != null ? options.cache : EJS.cache;
|
||||
EJS.type = options.type != null ? options.type : EJS.type;
|
||||
EJS.ext = options.ext != null ? options.ext : EJS.ext;
|
||||
|
||||
var templates_directory = EJS.templates_directory || {}; //nice and private container
|
||||
EJS.templates_directory = templates_directory;
|
||||
EJS.get = function(path, cache){
|
||||
if(cache == false) return null;
|
||||
if(templates_directory[path]) return templates_directory[path];
|
||||
return null;
|
||||
};
|
||||
|
||||
EJS.update = function(path, template) {
|
||||
if(path == null) return;
|
||||
templates_directory[path] = template ;
|
||||
};
|
||||
|
||||
EJS.INVALID_PATH = -1;
|
||||
};
|
||||
EJS.config( {cache: true, type: '<', ext: '.ejs' } );
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* By adding functions to EJS.Helpers.prototype, those functions will be available in the
|
||||
* views.
|
||||
* @init Creates a view helper. This function is called internally. You should never call it.
|
||||
* @param {Object} data The data passed to the view. Helpers have access to it through this._data
|
||||
*/
|
||||
EJS.Helpers = function(data, extras){
|
||||
this._data = data;
|
||||
this._extras = extras;
|
||||
extend(this, extras );
|
||||
};
|
||||
/* @prototype*/
|
||||
EJS.Helpers.prototype = {
|
||||
/**
|
||||
* Renders a new view. If data is passed in, uses that to render the view.
|
||||
* @param {Object} options standard options passed to a new view.
|
||||
* @param {optional:Object} data
|
||||
* @return {String}
|
||||
*/
|
||||
view: function(options, data, helpers){
|
||||
if(!helpers) helpers = this._extras
|
||||
if(!data) data = this._data;
|
||||
return new EJS(options).render(data, helpers);
|
||||
},
|
||||
/**
|
||||
* For a given value, tries to create a human representation.
|
||||
* @param {Object} input the value being converted.
|
||||
* @param {Object} null_text what text should be present if input == null or undefined, defaults to ''
|
||||
* @return {String}
|
||||
*/
|
||||
to_text: function(input, null_text) {
|
||||
if(input == null || input === undefined) return null_text || '';
|
||||
if(input instanceof Date) return input.toDateString();
|
||||
if(input.toString) return input.toString().replace(/\n/g, '<br />').replace(/''/g, "'");
|
||||
return '';
|
||||
}
|
||||
};
|
||||
EJS.newRequest = function(){
|
||||
var factories = [function() { return new ActiveXObject("Msxml2.XMLHTTP"); },function() { return new XMLHttpRequest(); },function() { return new ActiveXObject("Microsoft.XMLHTTP"); }];
|
||||
for(var i = 0; i < factories.length; i++) {
|
||||
try {
|
||||
var request = factories[i]();
|
||||
if (request != null) return request;
|
||||
}
|
||||
catch(e) { continue;}
|
||||
}
|
||||
}
|
||||
|
||||
EJS.request = function(path){
|
||||
var request = new EJS.newRequest()
|
||||
request.open("GET", path, false);
|
||||
|
||||
try{request.send(null);}
|
||||
catch(e){return null;}
|
||||
|
||||
if ( request.status == 404 || request.status == 2 ||(request.status == 0 && request.responseText == '') ) return null;
|
||||
|
||||
return request.responseText
|
||||
}
|
||||
EJS.ajax_request = function(params){
|
||||
params.method = ( params.method ? params.method : 'GET')
|
||||
|
||||
var request = new EJS.newRequest();
|
||||
request.onreadystatechange = function(){
|
||||
if(request.readyState == 4){
|
||||
if(request.status == 200){
|
||||
params.onComplete(request)
|
||||
}else
|
||||
{
|
||||
params.onComplete(request)
|
||||
}
|
||||
}
|
||||
}
|
||||
request.open(params.method, params.url)
|
||||
request.send(null)
|
||||
}
|
||||
|
||||
|
||||
})();
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,200 @@
|
||||
EJS.Helpers.prototype.date_tag = function(name, value , html_options) {
|
||||
if(! (value instanceof Date))
|
||||
value = new Date()
|
||||
|
||||
var month_names = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
||||
var years = [], months = [], days =[];
|
||||
var year = value.getFullYear();
|
||||
var month = value.getMonth();
|
||||
var day = value.getDate();
|
||||
for(var y = year - 15; y < year+15 ; y++)
|
||||
{
|
||||
years.push({value: y, text: y})
|
||||
}
|
||||
for(var m = 0; m < 12; m++)
|
||||
{
|
||||
months.push({value: (m), text: month_names[m]})
|
||||
}
|
||||
for(var d = 0; d < 31; d++)
|
||||
{
|
||||
days.push({value: (d+1), text: (d+1)})
|
||||
}
|
||||
var year_select = this.select_tag(name+'[year]', year, years, {id: name+'[year]'} )
|
||||
var month_select = this.select_tag(name+'[month]', month, months, {id: name+'[month]'})
|
||||
var day_select = this.select_tag(name+'[day]', day, days, {id: name+'[day]'})
|
||||
|
||||
return year_select+month_select+day_select;
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.form_tag = function(action, html_options) {
|
||||
|
||||
|
||||
html_options = html_options || {};
|
||||
html_options.action = action
|
||||
if(html_options.multipart == true) {
|
||||
html_options.method = 'post';
|
||||
html_options.enctype = 'multipart/form-data';
|
||||
}
|
||||
|
||||
return this.start_tag_for('form', html_options)
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.form_tag_end = function() { return this.tag_end('form'); }
|
||||
|
||||
EJS.Helpers.prototype.hidden_field_tag = function(name, value, html_options) {
|
||||
return this.input_field_tag(name, value, 'hidden', html_options);
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.input_field_tag = function(name, value , inputType, html_options) {
|
||||
|
||||
html_options = html_options || {};
|
||||
html_options.id = html_options.id || name;
|
||||
html_options.value = value || '';
|
||||
html_options.type = inputType || 'text';
|
||||
html_options.name = name;
|
||||
|
||||
return this.single_tag_for('input', html_options)
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.is_current_page = function(url) {
|
||||
return (window.location.href == url || window.location.pathname == url ? true : false);
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.link_to = function(name, url, html_options) {
|
||||
if(!name) var name = 'null';
|
||||
if(!html_options) var html_options = {}
|
||||
|
||||
if(html_options.confirm){
|
||||
html_options.onclick =
|
||||
" var ret_confirm = confirm(\""+html_options.confirm+"\"); if(!ret_confirm){ return false;} "
|
||||
html_options.confirm = null;
|
||||
}
|
||||
html_options.href=url
|
||||
return this.start_tag_for('a', html_options)+name+ this.tag_end('a');
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.submit_link_to = function(name, url, html_options){
|
||||
if(!name) var name = 'null';
|
||||
if(!html_options) var html_options = {}
|
||||
html_options.onclick = html_options.onclick || '' ;
|
||||
|
||||
if(html_options.confirm){
|
||||
html_options.onclick =
|
||||
" var ret_confirm = confirm(\""+html_options.confirm+"\"); if(!ret_confirm){ return false;} "
|
||||
html_options.confirm = null;
|
||||
}
|
||||
|
||||
html_options.value = name;
|
||||
html_options.type = 'submit'
|
||||
html_options.onclick=html_options.onclick+
|
||||
(url ? this.url_for(url) : '')+'return false;';
|
||||
//html_options.href='#'+(options ? Routes.url_for(options) : '')
|
||||
return this.start_tag_for('input', html_options)
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.link_to_if = function(condition, name, url, html_options, post, block) {
|
||||
return this.link_to_unless((condition == false), name, url, html_options, post, block);
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.link_to_unless = function(condition, name, url, html_options, block) {
|
||||
html_options = html_options || {};
|
||||
if(condition) {
|
||||
if(block && typeof block == 'function') {
|
||||
return block(name, url, html_options, block);
|
||||
} else {
|
||||
return name;
|
||||
}
|
||||
} else
|
||||
return this.link_to(name, url, html_options);
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.link_to_unless_current = function(name, url, html_options, block) {
|
||||
html_options = html_options || {};
|
||||
return this.link_to_unless(this.is_current_page(url), name, url, html_options, block)
|
||||
}
|
||||
|
||||
|
||||
EJS.Helpers.prototype.password_field_tag = function(name, value, html_options) { return this.input_field_tag(name, value, 'password', html_options); }
|
||||
|
||||
EJS.Helpers.prototype.select_tag = function(name, value, choices, html_options) {
|
||||
html_options = html_options || {};
|
||||
html_options.id = html_options.id || name;
|
||||
html_options.value = value;
|
||||
html_options.name = name;
|
||||
|
||||
var txt = ''
|
||||
txt += this.start_tag_for('select', html_options)
|
||||
|
||||
for(var i = 0; i < choices.length; i++)
|
||||
{
|
||||
var choice = choices[i];
|
||||
var optionOptions = {value: choice.value}
|
||||
if(choice.value == value)
|
||||
optionOptions.selected ='selected'
|
||||
txt += this.start_tag_for('option', optionOptions )+choice.text+this.tag_end('option')
|
||||
}
|
||||
txt += this.tag_end('select');
|
||||
return txt;
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.single_tag_for = function(tag, html_options) { return this.tag(tag, html_options, '/>');}
|
||||
|
||||
EJS.Helpers.prototype.start_tag_for = function(tag, html_options) { return this.tag(tag, html_options); }
|
||||
|
||||
EJS.Helpers.prototype.submit_tag = function(name, html_options) {
|
||||
html_options = html_options || {};
|
||||
//html_options.name = html_options.id || 'commit';
|
||||
html_options.type = html_options.type || 'submit';
|
||||
html_options.value = name || 'Submit';
|
||||
return this.single_tag_for('input', html_options);
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.tag = function(tag, html_options, end) {
|
||||
if(!end) var end = '>'
|
||||
var txt = ' '
|
||||
for(var attr in html_options) {
|
||||
if(html_options[attr] != null)
|
||||
var value = html_options[attr].toString();
|
||||
else
|
||||
var value=''
|
||||
if(attr == "Class") // special case because "class" is a reserved word in IE
|
||||
attr = "class";
|
||||
if( value.indexOf("'") != -1 )
|
||||
txt += attr+'=\"'+value+'\" '
|
||||
else
|
||||
txt += attr+"='"+value+"' "
|
||||
}
|
||||
return '<'+tag+txt+end;
|
||||
}
|
||||
|
||||
EJS.Helpers.prototype.tag_end = function(tag) { return '</'+tag+'>'; }
|
||||
|
||||
EJS.Helpers.prototype.text_area_tag = function(name, value, html_options) {
|
||||
html_options = html_options || {};
|
||||
html_options.id = html_options.id || name;
|
||||
html_options.name = html_options.name || name;
|
||||
value = value || ''
|
||||
if(html_options.size) {
|
||||
html_options.cols = html_options.size.split('x')[0]
|
||||
html_options.rows = html_options.size.split('x')[1];
|
||||
delete html_options.size
|
||||
}
|
||||
|
||||
html_options.cols = html_options.cols || 50;
|
||||
html_options.rows = html_options.rows || 4;
|
||||
|
||||
return this.start_tag_for('textarea', html_options)+value+this.tag_end('textarea')
|
||||
}
|
||||
EJS.Helpers.prototype.text_tag = EJS.Helpers.prototype.text_area_tag
|
||||
|
||||
EJS.Helpers.prototype.text_field_tag = function(name, value, html_options) { return this.input_field_tag(name, value, 'text', html_options); }
|
||||
|
||||
EJS.Helpers.prototype.url_for = function(url) {
|
||||
return 'window.location="'+url+'";'
|
||||
}
|
||||
EJS.Helpers.prototype.img_tag = function(image_location, alt, options){
|
||||
options = options || {};
|
||||
options.src = image_location
|
||||
options.alt = alt
|
||||
return this.single_tag_for('img', options)
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
<%= data.baseID + 'pressure-line' %>
|
||||
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-t' %>">--</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Pressure:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-p' %>">--</div>
|
||||
</div>
|
||||
<ul class="mui-tabs__bar mui-tabs__bar--justified">
|
||||
<li class="mui--is-active tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-t-pane' %>">Temperature</a>
|
||||
</li>
|
||||
<li class="tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-p-pane' %>">Pressure</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mui-tabs__pane mui--is-active" id="<%= data.baseID + '-t-pane' %>">
|
||||
<svg id="<%= data.baseID + 'temp-svg' %>" width="300" height="150" fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'temp-txt1' %>" x="36" y="15" text-anchor="end">--</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'temp-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mui-tabs__pane" id="<%= data.baseID + '-p-pane' %>">
|
||||
<svg id="<%= data.baseID + 'pressure-svg' %>" width="300" height="150" fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'pressure-txt1' %>" x="36" y="15" text-anchor="end">--</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'pressure-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
@ -0,0 +1,42 @@
|
||||
<%= data.baseID + 'pressure-line' %>
|
||||
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-t' %>">--</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Pressure:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-p' %>">--</div>
|
||||
</div>
|
||||
<ul class="mui-tabs__bar mui-tabs__bar--justified">
|
||||
<li class="mui--is-active tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-t-pane' %>">Temperature</a>
|
||||
</li>
|
||||
<li class="tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-p-pane' %>">Pressure</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mui-tabs__pane mui--is-active" id="<%= data.baseID + '-t-pane' %>">
|
||||
<svg id="<%= data.baseID + 'temp-svg' %>" width="300" height="150" fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'temp-txt1' %>" x="36" y="15" text-anchor="end">--</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'temp-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mui-tabs__pane" id="<%= data.baseID + '-p-pane' %>">
|
||||
<svg id="<%= data.baseID + 'pressure-svg' %>" width="300" height="150" fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'pressure-txt1' %>" x="36" y="15" text-anchor="end">--</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'pressure-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
@ -0,0 +1,48 @@
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right"><%= data.title1 %>:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light mui--text-left"
|
||||
id="<%= data.baseID + '-t' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right"><%= data.title2 %>:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-a' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<ul class="mui-tabs__bar mui-tabs__bar--justified">
|
||||
<li class="tabOnWhite mui--is-active"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-t-pane' %>"><%= data.tab1 %></a>
|
||||
</li>
|
||||
<li class="tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-a-pane' %>"><%= data.title2 %></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mui-tabs__pane mui--is-active" id="<%= data.baseID + '-t-pane' %>">
|
||||
<svg id="<%= data.baseID + 'temp-svg' %>" width="300" height="150"
|
||||
fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'temp-txt1' %>" x="36" y="15"
|
||||
text-anchor="end">--
|
||||
</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'temp-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2" points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mui-tabs__pane" id="<%= data.baseID + '-a-pane' %>">
|
||||
<svg id="<%= data.baseID + 'ambient-svg' %>" width="300" height="150"
|
||||
fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'ambient-txt1' %>" x="36" y="15"
|
||||
text-anchor="end">--
|
||||
</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'ambient-line' %>" fill="none"
|
||||
stroke="#2196F3" text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
@ -0,0 +1,48 @@
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light mui--text-left"
|
||||
id="<%= data.baseID + '-t' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Ambient:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light" id="<%= data.baseID + '-a' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<ul class="mui-tabs__bar mui-tabs__bar--justified">
|
||||
<li class="tabOnWhite mui--is-active"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-t-pane' %>">Temperature</a>
|
||||
</li>
|
||||
<li class="tabOnWhite"><a data-mui-toggle="tab"
|
||||
data-mui-controls="<%= data.baseID + '-a-pane' %>">Ambient</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mui-tabs__pane mui--is-active" id="<%= data.baseID + '-t-pane' %>">
|
||||
<svg id="<%= data.baseID + 'temp-svg' %>" width="300" height="150"
|
||||
fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'temp-txt1' %>" x="36" y="15"
|
||||
text-anchor="end">--
|
||||
</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'temp-line' %>" fill="none" stroke="#2196F3"
|
||||
text-anchor="end" stroke-width="2" points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="mui-tabs__pane" id="<%= data.baseID + '-a-pane' %>">
|
||||
<svg id="<%= data.baseID + 'ambient-svg' %>" width="300" height="150"
|
||||
fill="blue">
|
||||
<line x1="46" y1="12" x2="280" y2="12"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="<%= data.baseID + 'ambient-txt1' %>" x="36" y="15"
|
||||
text-anchor="end">--
|
||||
</text>
|
||||
<line x1="46" y1="136" x2="280" y2="136"
|
||||
style="stroke:#004c6d;stroke-width:2;"></line>
|
||||
<text id="undefined" x="36" y="139" text-anchor="end">0</text>
|
||||
<polyline id="<%= data.baseID + 'ambient-line' %>" fill="none"
|
||||
stroke="#2196F3" text-anchor="end" stroke-width="2"
|
||||
points=""></polyline>
|
||||
</svg>
|
||||
</div>
|
@ -0,0 +1,45 @@
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Temp:</div>
|
||||
<div class="mui-col-xs-9 mui--text-light" id="<%= data.baseID + '-t' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">TMax:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-tmax' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">TMin:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-tmin' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Pressure:</div>
|
||||
<div class="mui-col-xs-9 mui--text-light" id="<%= data.baseID + '-p' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">PMax:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-pmax' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">PMin:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-pmin' %>">--
|
||||
</div>
|
||||
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">Humidity:</div>
|
||||
<div class="mui-col-xs-9 mui--text-light" id="<%= data.baseID + '-h' %>">--
|
||||
</div>
|
||||
</div>
|
||||
<div class="mui-row">
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">HMax:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-hmax' %>">--
|
||||
</div>
|
||||
<div class="mui-col-xs-3 mui--text-accent mui--text-right">HMin:</div>
|
||||
<div class="mui-col-xs-3 mui--text-light"
|
||||
id="<%= data.baseID + '-hmin' %>">--
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user