thermometer improved

several improvements
master
dapgo 2023-05-07 22:45:40 +02:00
parent 21d6c8846c
commit 9b323dcdce
11 changed files with 256 additions and 231 deletions

View File

@ -1,3 +1,4 @@
0.01: 1st version: saves values to csv 0.01: 1st version: saves values to csv
0.02: added HTML interface 0.02: added HTML interface
0.03: Added Stop/start recording, change BG color, filesize info 0.03: Added Stop/start recording, change BG color, filesize info
0.04: Support for negative degree, Min/Max, random for emulator, clean of code

View File

@ -1,5 +1,5 @@
# Temperature Monitor (with logging) # Temperature Monitor (with logging)
Temperature monitor that shows temperature on real time but also allows to store in a file for a later process. Temperature / Thermometer monitor that not only shows degrees on real time but also allows to store this info in a file for a later process.
Compatible with BangleJS1,BangleJS2,and EMSCRIPTENx emulators Compatible with BangleJS1,BangleJS2,and EMSCRIPTENx emulators

View File

@ -1,8 +1,8 @@
{ {
"id": "tempmonitor", "id": "tempmonitor",
"name": "Temperature monitor", "name": "Temperature monitor",
"version": "0.03", "version": "0.04",
"description": "Displays the current temperature and stores in a CSV file", "description": "Another thermometer, besides displaying current temperature, stores it in a CSV file",
"icon": "app.png", "icon": "app.png",
"tags": "tool", "tags": "tool",
"interface": "interface.html", "interface": "interface.html",

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -23,6 +23,8 @@ var v_model=process.env.BOARD;
var v_color_erase=g.getBgColor(); //original BG color overwritten on SetVariables var v_color_erase=g.getBgColor(); //original BG color overwritten on SetVariables
var v_color=g.getColor();//original FG color var v_color=g.getColor();//original FG color
var id_rec_intv; //var for the recording interval var id_rec_intv; //var for the recording interval
var v_t_max=-50; //preset with an opposite and impossible record measure
var v_t_min=70;
if (readFreq>saveFreq) console.log("Read refresh freq should be higher than saving"); if (readFreq>saveFreq) console.log("Read refresh freq should be higher than saving");
if (v_mode_debug>0) console.log("original BG/FG color="+v_color_erase+" / "+v_color); if (v_mode_debug>0) console.log("original BG/FG color="+v_color_erase+" / "+v_color);
@ -32,281 +34,303 @@ if (v_mode_debug>0) console.log("original BG/FG color="+v_color_erase+" / "+v_co
function SetVariables(){ function SetVariables(){
//EMSCRIPTEN,EMSCRIPTEN2 //EMSCRIPTEN,EMSCRIPTEN2
if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') { if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') {
v_font_size1=16; v_font_size1=16;
v_font_size2=50; v_font_size2=50;
}else{ }else{
//Banglejs2 or others //Banglejs2 or others
v_font_size1=11; //too small? v_font_size1=11; //too small?
v_font_size2=40; v_font_size2=40;
} }
//overwriting default BG, is better detect? //overwriting default BG, is better detect?
if (g.theme.dark==1) v_color_erase=0x0000; //dynamic; //bg black if (g.theme.dark==1) v_color_erase=0x0000; //dynamic; //bg black
else if (g.theme.dark==0) v_color_erase=0xFFFF; //dynamic; //bg white else if (g.theme.dark==0) v_color_erase=0xFFFF; //dynamic; //bg white
} }
//print result //print result
function printTemperature(v_temp) { function printTemperature(v_temp) {
if (v_mode_debug>1) console.log("v_temp in "+v_temp+" entries "+v_saved_entries); if (v_mode_debug>1) console.log("v_temp in "+v_temp+" entries "+v_saved_entries);
ClearBox();
//g.setFont("6x8",2).setFontAlign(0,0);
g.setFontVector(v_font_size1).setFontAlign(0,0);
var x = (rect.x+(rect.x2-60))/2;//-60 space for graph and layout buttons
var y = (rect.y+rect.y2)/2 + 20;
if (v_saveToFile==true) { // Avg of temperature readings
// if (v_mode_debug>0) console.log("prev color="+v_color); while (history.length>4) history.shift();
printInfo("Recording : "+v_saved_entries, '#CC3333',x,rect.y+30); history.push(v_temp);
//g.setColor('#CC3333'); //red var avrTemp = E.sum(history) / history.length;
// g.drawString("Recording : "+v_saved_entries, x, rect.y+35); //var t = require('locale').temp(avrTemp);
//g.setColor(v_color);//restore default color //.replace("'","°");
} lastMeasure=avrTemp.toString();
else printInfo("Rec paused : "+v_saved_entries, v_color,x,rect.y+30); if (lastMeasure.length>4) lastMeasure=lastMeasure.substr(0,4);
//else g.drawString("Rec paused : "+v_saved_entries, x, rect.y+35);
//space for printing info
g.drawString("Temperature:", x, rect.y+45+(v_font_size1*2)); ClearBox();
//dynamic font (g.getWidth() > 200 ? 60 : 40) //g.setFont("6x8",2).setFontAlign(0,0);
g.setFontVector(v_font_size2).setFontAlign(0,0); g.setFontVector(v_font_size1).setFontAlign(0,0);
// Avg of temperature readings var x = (rect.x+(rect.x2-60))/2;//-60 space for graph and layout buttons
while (history.length>4) history.shift(); var y = (rect.y+rect.y2)/2 + 20;
history.push(v_temp);
var avrTemp = E.sum(history) / history.length; if (v_saveToFile==true) {
//var t = require('locale').temp(avrTemp); // if (v_mode_debug>0) console.log("prev color="+v_color);
//.replace("'","°"); printInfo("Recording : "+v_saved_entries, '#CC3333',x,rect.y+30);
lastMeasure=avrTemp.toString(); //g.setColor('#CC3333'); //red
if (lastMeasure.length>4) lastMeasure=lastMeasure.substr(0,4); // g.drawString("Recording : "+v_saved_entries, x, rect.y+35);
//DRAW temperature in the center //g.setColor(v_color);//restore default color
//remove g.drawString(" ", x-20, y); }
g.drawString(v_temp+v_t_symbol, x, y); else printInfo("Rec paused : "+v_saved_entries, v_color,x,rect.y+30);
g.flip(); //else g.drawString("Rec paused : "+v_saved_entries, x, rect.y+35);
//space for printing info
g.drawString("Temperature:", x, rect.y+45+(v_font_size1*2));
if (v_temp>v_t_max) {
g.setColor(v_color_erase);
g.drawString(v_t_max.toString().substr(0,5), rect.x2-40,(rect.y2/2)-30);
v_t_max=v_temp;
g.setColor(v_color);
}
g.drawString(v_t_max.toString().substr(0,5), rect.x2-40,(rect.y2/2)-30);
if (v_temp<v_t_min) {
g.setColor(v_color_erase);
g.drawString(v_t_min.toString().substr(0,5), rect.x2-40,(rect.y2/2)+50);
v_t_min=v_temp;
g.setColor(v_color);
}
g.drawString(v_t_min.toString().substr(0,5), rect.x2-40,(rect.y2/2)+50);
//dynamic font (g.getWidth() > 200 ? 60 : 40)
g.setFontVector(v_font_size2).setFontAlign(0,0);
//DRAW temperature in the center
//5 char required for negative degrees
g.drawString((v_temp.toString().substr(0,5))+v_t_symbol, x, y);
g.flip();
} }
// from: BJS2 pressure sensor, BJS1 inbuilt thermistor // from: BJS2 pressure sensor, BJS1 inbuilt thermistor
function getTemperature() { function getTemperature() {
if(v_model.substr(0,10)!='EMSCRIPTEN'){ if(v_model.substr(0,10)!='EMSCRIPTEN'){
if (Bangle.getPressure) { if (Bangle.getPressure) {
Bangle.getPressure().then(p =>{if (p) printTemperature(p);}); Bangle.getPressure().then(p =>{if (p) printTemperature(p);});
} else printTemperature(E.getTemperature()); } else printTemperature(E.getTemperature());
} }
else printTemperature(11.25);//fake temperature medition for emulators else printTemperature(-11.2+Math.random());//fake temperature medition for emulators
} }
/* Note that it changes BG and also FG to an opposite*/ /* Note that it changes BG and also FG to an opposite*/
function changeBGcolor(){ function changeBGcolor(){
//pend to refactor //pend to refactor
if (v_mode_debug>1) console.log("before BG/FG "+v_color_erase+" /"+v_color); if (v_mode_debug>1) console.log("before BG/FG "+v_color_erase+" /"+v_color);
v_color_erase=0xFFFF-v_color_erase; v_color_erase=0xFFFF-v_color_erase;
v_color=0xFFFF-v_color; v_color=0xFFFF-v_color;
if (v_mode_debug>1) console.log("after result BG/FG "+v_color_erase+" /"+v_color); if (v_mode_debug>1) console.log("after result BG/FG "+v_color_erase+" /"+v_color);
//g.setColor(color_result); //g.setColor(color_result);
g.setBgColor(v_color_erase);// 0 white, 1 black g.setBgColor(v_color_erase);// 0 white, 1 black
g.setColor(v_color); g.setColor(v_color);
//move to event? //move to event?
ClearScreen(); ClearScreen();
ClearBox(); ClearBox();//?
drawGraph(); getTemperature();
getTemperature(); drawGraph();
//setDrawLayout(); //uncomment if layout can work with setUI //setDrawLayout(); //uncomment if layout can work with setUI
//g.clear();//impact on widgets //g.clear();//impact on widgets
} }
function saveToFile(){ function saveToFile(){
//input global vars: lastMeasure //input global vars: lastMeasure
var a=new Date(); var a=new Date();
var strlastSaveTime=new String(); var strlastSaveTime=new String();
strlastSaveTime=a.toISOString(); strlastSaveTime=a.toISOString();
//strlastSaveTime=strlastSaveTime.concat(a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes());; //strlastSaveTime=strlastSaveTime.concat(a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes());;
if (v_mode_debug>1) console.log("saving="+strlastSaveTime+";"+a.getHours()+":"+a.getMinutes()+";"+lastMeasure); if (v_mode_debug>1) console.log("saving="+strlastSaveTime+";"+a.getHours()+":"+a.getMinutes()+";"+lastMeasure);
if (v_saveToFile==true){ if (v_saveToFile==true){
//write(strlastSaveTime+";"+ //write(strlastSaveTime+";"+
//var f = require("Storage").open(v_filename,"r"); //var f = require("Storage").open(v_filename,"r");
// f=require("Storage").read(v_filename+"\1");//suffix required load completely!! // f=require("Storage").read(v_filename+"\1");//suffix required load completely!!
//note that .read uses Storage Class .open uses StorageFile Class , difference in file chunks //note that .read uses Storage Class .open uses StorageFile Class , difference in file chunks
// if (v_mode_debug>0) console.log("f "+f); // if (v_mode_debug>0) console.log("f "+f);
var f = require("Storage").open(v_filename,"r"); var f = require("Storage").open(v_filename,"r");
if ((v_mode_debug>0) && (v_saved_entries==0)) console.log("file info:"+f); if ((v_mode_debug>0) && (v_saved_entries==0)) console.log("file info:"+f);
if (f.len>0) { if (f.len>0) {
if (!f) { if (!f) {
require("Storage").open(v_filename,"w").write("Month;Day;Time;Temp"+"\n"); require("Storage").open(v_filename,"w").write("Month;Day;Time;Temp"+"\n");
if (v_mode_debug>0) console.log("not exist but created "+f); if (v_mode_debug>0) console.log("not exist but created "+f);
} }
else{ else{
require("Storage").open(v_filename,"a").write((a.getMonth()+1)+";"+a.getDate()+";"+a.getHours()+":"+a.getMinutes()+";"+lastMeasure+"\n"); require("Storage").open(v_filename,"a").write((a.getMonth()+1)+";"+a.getDate()+";"+a.getHours()+":"+a.getMinutes()+";"+lastMeasure+"\n");
//(getTime()+","); //(getTime()+",");
v_saved_entries=v_saved_entries+1; v_saved_entries=v_saved_entries+1;
if (v_mode_debug>1) console.log("append to already exist "+f.name+" , "+v_saved_entries); if (v_mode_debug>1) console.log("append to already exist "+f.name+" , "+v_saved_entries);
} }
} }
} }
else if (v_mode_debug>0) console.log("recording mode stopped"); else if (v_mode_debug>0) console.log("recording mode stopped");
} }
function drawGraph(){ function drawGraph(){
var img_obj_thermo = { if (v_mode_debug>1) console.log("drawGraph");
width : 36, height : 36, bpp : 3, var img_obj_thermo = {
transparent : 0, width : 36, height : 36, bpp : 3,
buffer : require("heatshrink").decompress(atob("AEFt2AMKm3bsAMJjdt23ABhEB+/7tgaJ///DRUP//7tuADRP923YDRXbDRfymwaJhu/koaK7eyiwaK3cLDRlWDRY1NKBY1Ztu5kjmJg3cyVI7YMHgdu5Mkyu2fxHkyVJjdgDRFJkmRDRPsDQNbDQ5QBGoONKBJrBoxQIQwO2eRcbtu24AMIFIQLJAH4AMA==")) transparent : 0,
}; buffer : require("heatshrink").decompress(atob("AEFt2AMKm3bsAMJjdt23ABhEB+/7tgaJ///DRUP//7tuADRP923YDRXbDRfymwaJhu/koaK7eyiwaK3cLDRlWDRY1NKBY1Ztu5kjmJg3cyVI7YMHgdu5Mkyu2fxHkyVJjdgDRFJkmRDRPsDQNbDQ5QBGoONKBJrBoxQIQwO2eRcbtu24AMIFIQLJAH4AMA=="))
g.drawImage(img_obj_thermo,rect.x2-60,rect.y2/2); };
g.flip(); g.drawImage(img_obj_thermo,rect.x2-60,rect.y2/2);
g.flip();
} }
function ClearScreen(){ function ClearScreen(){
//avoid widget areas //avoid widget areas
g.setBgColor(v_color_erase); g.setBgColor(v_color_erase);
g.clearRect(rect.x, rect.y+24, rect.x2, rect.y2-24); g.clearRect(rect.x, rect.y+24, rect.x2, rect.y2-24);
g.flip(); g.flip();
} }
function ClearBox(){ function ClearBox(){
//custom boxarea , left space for static graph at right //custom boxarea , left space for static graph at right
g.setBgColor(v_color_erase); g.setBgColor(v_color_erase);
g.clearRect(rect.x, rect.y+24, rect.x2-60, rect.y2-24); g.clearRect(rect.x, rect.y+24, rect.x2-60, rect.y2-24);
g.flip(); g.flip();
} }
function introPage(){ function introPage(){
//g.setFont("6x8",2).setFontAlign(0,0); //g.setFont("6x8",2).setFontAlign(0,0);
g.setFontVector(v_font_size1).setFontAlign(-1,0); g.setFontVector(v_font_size1).setFontAlign(-1,0);
//x alignment. -1=left (default), 0=center, 1=right //x alignment. -1=left (default), 0=center, 1=right
var x=3; var x=3;
//dynamic positions as height for BJS1 is double than BJS2 //dynamic positions as height for BJS1 is double than BJS2
var y = (rect.y+rect.y2)/2 + 10; var y = (rect.y+rect.y2)/2 + 10;
g.drawString(" Default values ", x, y - ((v_font_size1*3)+2)); g.drawString(" Default values ", x, y - ((v_font_size1*3)+2));
g.drawString("--------------------", x, y - ((v_font_size1*2)+2)); g.drawString("--------------------", x, y - ((v_font_size1*2)+2));
g.drawString("Mode debug: "+v_mode_debug, x, y - ((v_font_size1*1)+2)); g.drawString("Mode debug: "+v_mode_debug, x, y - ((v_font_size1*1)+2));
g.drawString("Read freq(ms): "+readFreq, x, y ); g.drawString("Read frq(ms): "+readFreq, x, y );
g.drawString("Save to file: "+v_saveToFile, x, y+ ((v_font_size1*1)+2) ); g.drawString("Save file: "+v_saveToFile, x, y+ ((v_font_size1*1)+2) );
g.drawString("Save freq(ms):"+saveFreq, x, y+((v_font_size1*2)+2) ); g.drawString("Save frq(ms):"+saveFreq, x, y+((v_font_size1*2)+2) );
fr=require("Storage").read(v_filename+"\1");//suffix required fr=require("Storage").read(v_filename+"\1");//suffix required
if (fr) g.drawString("Filesize:"+fr.length.toString()+"kb", x, y+((v_font_size1*3)+2) ); if (fr) g.drawString("Filesize:"+fr.length.toString()+"kb", x, y+((v_font_size1*3)+2) );
else g.drawString("File not exist", x, y+((v_font_size1*3)+2)); else g.drawString("File not exist", x, y+((v_font_size1*3)+2));
} }
function printInfo(pmsg, pcolor,px,py){ function printInfo(pmsg, pcolor,px,py){
g.setColor(pcolor); g.setColor(pcolor);
g.setFontVector(v_font_size1).setFontAlign(0,0); g.setFontVector(v_font_size1).setFontAlign(0,0);
g.drawString(pmsg, px,py+v_font_size1); g.drawString(pmsg, px,py+v_font_size1);
g.setColor(v_color);//restore default color g.setColor(v_color);//restore default color
} }
function toggleRecMode(duration, exectime){ function toggleRecMode(duration, exectime){
//bydefault float, standard epoch requires *1000 //bydefault float, standard epoch requires *1000
if (v_mode_debug>0) console.log("duration"+duration); if (v_mode_debug>0) console.log("duration"+duration);
if (duration>2) { //delete file if (duration>2) { //delete file
var x = (rect.x+(rect.x2-60))/2; var x = (rect.x+(rect.x2-60))/2;
printInfo("Deleting file",'#CC3333',x, rect.y+32+v_font_size1); printInfo("Deleting file",'#CC3333',x, rect.y+32+v_font_size1);
// g.setColor('#CC3333'); //red // g.setColor('#CC3333'); //red
//too long "Deleting file: "+v_filename, //too long "Deleting file: "+v_filename,
// for StorageFiles created with require("Storage").open(filename, ...) // for StorageFiles created with require("Storage").open(filename, ...)
//require("Storage").erase(v_filename); //require("Storage").erase(v_filename);
//TODO refactor in a new function //TODO refactor in a new function
//var mifile = require("Storage").open(v_filename,"w"); //var mifile = require("Storage").open(v_filename,"w");
var mifile = require("Storage").open("temphistory.csv","w"); var mifile = require("Storage").open("temphistory.csv","w");
var v_output=mifile.erase(); var v_output=mifile.erase();
//mifile.StorageFile.erase(); //mifile.StorageFile.erase();
if (v_mode_debug>0) console.log("output"+v_output); if (v_mode_debug>0) console.log("output"+v_output);
setTimeout(function() { if (v_mode_debug>0) console.log("pause for 1 sec");},1000); setTimeout(function() { if (v_mode_debug>0) console.log("pause for 1 sec");},1000);
return; //leave this function return; //leave this function
} }
if (v_saveToFile) v_saveToFile=false; if (v_saveToFile) v_saveToFile=false;
else v_saveToFile=true; else v_saveToFile=true;
if (v_mode_debug>0) console.log("recording? "+v_saveToFile); if (v_mode_debug>0) console.log("recording? "+v_saveToFile);
setRecordingFreq(); setRecordingFreq();
} }
function setRecordingFreq(){ function setRecordingFreq(){
if (v_saveToFile==true) { //TODO now start on false btn will no enable if (v_saveToFile==true) { //TODO now start on false btn will no enable
id_rec_intv=setInterval(function() { id_rec_intv=setInterval(function() {
saveToFile(); saveToFile();
}, saveFreq); //ms }, saveFreq); //ms
if (v_mode_debug>0) console.log("interval id / frq"+id_rec_intv+" / "+saveFreq); if (v_mode_debug>0) console.log("interval id / frq"+id_rec_intv+" / "+saveFreq);
} }
else if (id_rec_intv){ else if (id_rec_intv){
clearInterval(id_rec_intv); clearInterval(id_rec_intv);
if (v_mode_debug>0) console.log("rec interval removed, id "+id_rec_intv); if (v_mode_debug>0) console.log("rec interval removed, id "+id_rec_intv);
id_rec_intv=0; // to reset var id_rec_intv=0; // to reset var
} }
} }
function UserInput(){ function UserInput(){
//theoretically incompatible with Layout //theoretically incompatible with Layout
Bangle.setUI({ Bangle.setUI({
mode : "custom", mode : "custom",
//adds a back icon on top widget area //adds a back icon on top widget area
back : function() {load();}, back : function() {load();},
//touch : function(n,e) {}, // optional - handler for 'touch' events //touch : function(n,e) {}, // optional - handler for 'touch' events
// righ/Left 1/-1 , updown // righ/Left 1/-1 , updown
swipe : function(dir_rl,dir_ud) { swipe : function(dir_rl,dir_ud) {
if(dir_rl == 1) { if(dir_rl == 1) {
if (v_mode_debug>0) console.log("swipe right: "); if (v_mode_debug>0) console.log("swipe right: ");
getFileInfo(v_filename); getFileInfo(v_filename);
} }
else if (dir_rl == -1){ else if (dir_rl == -1){
if (v_mode_debug>0) console.log("swipe left: "); if (v_mode_debug>0) console.log("swipe left: ");
changeBGcolor(); changeBGcolor();
} }
}, },
touch : function(tzone,tobj){ touch : function(tzone,tobj){
if ((process.env.HWVERSION == 2)&&(v_mode_debug>0)){ if ((process.env.HWVERSION == 2)&&(v_mode_debug>0)){
console.log("tobj x,y,type : "+tobj.x+" "+tobj.y+" "+tobj.type); console.log("tobj x,y,type : "+tobj.x+" "+tobj.y+" "+tobj.type);
} }
switch(tzone){ switch(tzone){
//case 1: //left , back managed by setUI //case 1: //left , back managed by setUI
case 2: // right disable/enable recording case 2: // right disable/enable recording
toggleRecMode(0); //toggleRecMode(duration, exectime) toggleRecMode(0); //toggleRecMode(duration, exectime)
break; break;
// case 3: console.log("Touch 3 aka 1+2 not for BJS1 emul");//center 1+2 // case 3: console.log("Touch 3 aka 1+2 not for BJS1 emul");//center 1+2
// break; // break;
} }
}, },
//inferior to //inferior to
btn : function(btn) { btn : function(btn) {
if(btn == 1) { if(btn == 1) {
if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') toggleRecMode(1); //console.log("btn1 BJS1"); if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') toggleRecMode(1); //console.log("btn1 BJS1");
else mainBtnShortcut(); //console.log("btn1 BJS2"); else mainBtnShortcut(); //console.log("btn1 BJS2");
} }
else if (btn == 2) mainBtnShortcut(); //console.log("btn2 BJS1"); else if (btn == 2) mainBtnShortcut(); //console.log("btn2 BJS1");
else if (btn == 3) changeBGcolor(); //console.log("btn3 BJS1"); else if (btn == 3) changeBGcolor(); //console.log("btn3 BJS1");
} }
}); //endof setUI }); //endof setUI
} }
function mainBtnShortcut() { function mainBtnShortcut() {
//if messages app installed shortcut otherwise default access to launcher //if messages app installed shortcut otherwise default access to launcher
if (require("Storage").read("messagegui.app.js")===undefined) if (require("Storage").read("messagegui.app.js")===undefined)
{ {
if (require("Storage").read("messagelist.app.js")===undefined) Bangle.showLauncher(); // implies btn2(js1) btn(js2)- launcher if (require("Storage").read("messagelist.app.js")===undefined) Bangle.showLauncher(); // implies btn2(js1) btn(js2)- launcher
else if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') load("messagelist.app.js"); else if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') load("messagelist.app.js");
else load("messagelist.app.js"); else load("messagelist.app.js");
} }
else if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') load("messagegui.app.js"); else if (v_model=='BANGLEJS'||v_model=='EMSCRIPTEN') load("messagegui.app.js");
else load("messagegui.app.js"); else load("messagegui.app.js");
} }
// Show file size // Show file size
function getFileInfo(v_filename) { function getFileInfo(v_filename) {
var f = require("Storage").open(v_filename,"r"); var f = require("Storage").open(v_filename,"r");
//todo refactor and reuse common code //todo refactor and reuse common code
g.setFontVector(v_font_size1).setFontAlign(0,0); g.setFontVector(v_font_size1).setFontAlign(0,0);
var x = (rect.x+(rect.x2-60))/2; var x = (rect.x+(rect.x2-60))/2;
printInfo("file size:"+f.len,v_color,x, rect.y+32+v_font_size1); printInfo("file size:"+f.len,v_color,x, rect.y+32+v_font_size1);
// g.drawString("file size:"+f.len, x, rect.y+37+v_font_size1); // g.drawString("file size:"+f.len, x, rect.y+37+v_font_size1);
if (v_mode_debug>0) console.log("file "+v_filename+" size: "+f.len); if (v_mode_debug>0) console.log("file "+v_filename+" size: "+f.len);
}// not used }// not used
//MAIN //MAIN
SetVariables(); SetVariables();
Bangle.loadWidgets(); Bangle.loadWidgets();
ClearScreen(); ClearScreen();
introPage(); introPage();
//setDrawLayout(); //uncomment if layout can work with setUI //setDrawLayout(); //uncomment if layout can work with setUI
UserInput(); //inc SetUI and back icon UserInput(); //inc SetUI and back icon
setInterval(function() { setInterval(function() {
getTemperature(); getTemperature();
}, readFreq); //ms }, readFreq); //ms
//??need
drawGraph();
setRecordingFreq(); setRecordingFreq();
} }

View File

@ -1 +1 @@
{"id":"tempmonitor","name":"tempmonitor","src":"tempmonitor.app.js","icon":"tempmonitor.img","version":"0.03","files":"tempmonitor.info,tempmonitor.app.js,tempmonitor.img"} {"id":"tempmonitor","name":"tempmonitor","src":"tempmonitor.app.js","icon":"tempmonitor.img","version":"0.04","files":"tempmonitor.info,tempmonitor.app.js,tempmonitor.img"}