From fa23aaf3f0094617c4b04bd9e957e0dc112306b4 Mon Sep 17 00:00:00 2001 From: msdeibel Date: Thu, 9 Apr 2020 08:19:38 +0200 Subject: [PATCH] Widget stores data to file, icon added --- apps.json | 2 +- apps/batchart/ChangeLog | 3 ++- apps/batchart/app-icon.js | 1 + apps/batchart/app.png | Bin 1620 -> 1498 bytes apps/batchart/batchart.dat | 0 apps/batchart/widget.js | 52 +++++++++++++++++++++++++++++++------ 6 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 apps/batchart/app-icon.js create mode 100644 apps/batchart/batchart.dat diff --git a/apps.json b/apps.json index 5ec359c16..614befed2 100644 --- a/apps.json +++ b/apps.json @@ -1136,7 +1136,7 @@ "name": "Battery Chart", "shortName":"BatChart", "icon": "widget.png", - "version":"0.01", + "version":"0.02", "description": "A widget and an app for recording and visualizing battery percentage over time.", "tags": "app,widget,battery,time,record,chart,tool", "storage": [ diff --git a/apps/batchart/ChangeLog b/apps/batchart/ChangeLog index 5560f00bc..d885f8fb0 100644 --- a/apps/batchart/ChangeLog +++ b/apps/batchart/ChangeLog @@ -1 +1,2 @@ -0.01: New App! +0.01: New app and widget +0.02: Widget stores data to file (1 dataset/min) diff --git a/apps/batchart/app-icon.js b/apps/batchart/app-icon.js new file mode 100644 index 000000000..0841ea920 --- /dev/null +++ b/apps/batchart/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4AS64AIF/4pZABYuuGDIv/F/4v/F9+Gw0rAQIASF7YxTF7cxwAvtrdVF9qQTF/4vMYCQvcYCQvcSCQvdqpgQF7oEBYJ4veAoNbF9uGmMrrgvsw2AGILFKF8IACrYxJF8gxDSowvmBwWAF9oPGF9NbmIvtCAovqMAgvqCIgvrrdVF9oSDF9iPuF7crACxf/F++wFqmG2AvXGCouZAH4A/AGY")) \ No newline at end of file diff --git a/apps/batchart/app.png b/apps/batchart/app.png index 582cb2e0853a5a2899a3afbd7eb19cde2ee7f6a0..9a60d100432a8648784022c43dd397e72afb5ccc 100644 GIT binary patch literal 1498 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WMyDrW(e>JaRrI9F>&y)aPhP93bFBvatKRv$*A)y83?JG2&CS-=*Ko0#DIQ#y<@*e_hGNeN2AW)xO4f={VR9w-@O0i#)HQ|H;jVO5EzgU z&|F(M37Ah9N`m}?|Br0I5d5886&MMe1s;*b3=DjSL74G){)!Z!phSslL`iUdT1k0g zQ7S`0VrE{6US4X6f{C7io@r{UQ7SMHjXhl)Lp;3iPP!d*$UwwZdu@Z5c94FD#)YC4 zFaFoZ^IAvGHd(mvaQ7}br)Ame6L+|j`v3Fz5IK?G&fp{K9PJ+mj_`exiF%`H8us9B z_*HAu4NQD8D-Q1Gc2WB1$U8?tZ->zWHopSf=cgK^EDpYzrp=u7fTde7obAd1&QsmI z>AXNX<Q{8tX}s+|6^rctV*De1;Pkt+v;Pk2wtH~iBk^@AyL z>Ed=Fb6(RAY)YR^&Q04hU!-G?@8px(@2@<_PzbtrwEveIuNBk8qf7toTj7|la5|;5 zVj5smvdd|Uf~r7kw$dVFc}wUG3)f;T~l-_zC4Wt~$(695Pg B=TiUx delta 1614 zcmV-U2C@0t3)Bpd8Gi-<00374`G)`i00v@9M??Vs0RI60puMM)000IFNklVsi@IIDWLJF<-tS+MbQVNMvWngMiMVMF($}~PbV60 ziJqKGq6sl-z#5IgNDvG@D81m_8L(pU0#u>&LWh~o%w9f}(tqj9-n)CIwK<9WpZ2=# z@4xo`F6;X~IE~Zzb3>-k8akT^^OxcFx zcbN5=Q-4hR%xR(Og4IMqZ|csgd~Qy535+rOMa0?#Kz;OCgf+QCRm!I{`+3DGB8Q%K zb12A8MekO_`m$nMR~$gwqc;H$X+p4i#=p9GL1wziIzZOz?xtO`H1@Ww)h$#z=T~9{ zVnFT4`+q^wyMm*J0F*s8gp{jW_;jL|l)p)?`07}`!LAF9Ljz9%wK^oEKM9^v2d+uZ zBzb_ElWR@^923y?MQ5Sh3y}H359v|8R9g6#r~d$slVYvzX{^gvI{yK&9t6Sw)^Fo( z=6P9=8U6ZW2$40``%xcZ;5%V%3U4s;k`B zBhPV`-mc1q+yc;cGT(T8!xE53$1?&6D*mfe_?M*-n>DO|&}2{l-??t>KM^xP{PQp9 zJ>sMDt1wG0P7(^*|FxpxgxUNu=e>XY@94oXm34 z@_%b@CKw8H)v7h8^obJ&Z6D0CjVUe8Xq_NAymxUyPAMU^CCrIu%1M71EC`5o2if_~ z7E&h??0jeQ1Y3N6p?}G72FSn>E+sATQ)Q)70!M+WViTAl9FdlI^_bw)g$_FC{~s`6^Y4_v-WecL8bso`qJL8Y zT{A$XG+1=ziuMVJ_2G<=DGAn&T*-bAD+V3WAAobF+T38@2nY8MbM(*&lEYc7tP(2s zF}E&6{RI_-Bd%NCJYpQ6B|bm5n6r%*!O{-dgz6Ke5>FZGo<5&Mq0i(4E(oP@&iXk z=-U1(Bgrgt{}SSg8|!FVQpN1*ApW3%X$qBd0$g%sHPPlXP=%gv2Ryu4{(qfM9wyt= zf4ZOo!xty7{%}HKD9tBZ50g$=%v&&vMa!#@Nsf>EkEEDA*ST6fiC+AnsNK1#>!x0o zbq@j$QqYU-ad3ZvbjqUU+%iw(0WahgmHV6yeLWqoYkSl4pzFQ(_Vp&ItO{WI-48rG zLwQb?#vgVvduyd9_6W)rFMqC8HKFMv5ASjy{+OGC=L-(~Zb6V^zSn`(Q>Nt&ZJd$0 zO%`^i+?+grDp}Z_q9=X}=<|3S6D2}Xo}(vz>ty7i#49G<-Lx9fe*rb6#JivumHVB} zLG4gdXO*R~xABLfz>ADt4^0(GkQeZWqQ#Jh>AK{zSO1DgHe=9$GLP~7^>KusvDgRF0oD#$_U@VLHS1}d#-AO(16^7(dI!@4R{#J2 M07*qoM6N<$f_kSNbpQYW diff --git a/apps/batchart/batchart.dat b/apps/batchart/batchart.dat new file mode 100644 index 000000000..e69de29bb diff --git a/apps/batchart/widget.js b/apps/batchart/widget.js index 85cff4cf4..4335a3719 100644 --- a/apps/batchart/widget.js +++ b/apps/batchart/widget.js @@ -1,9 +1,18 @@ WIDGETS = {}; (() => { + var switchableConsumers = { + none: 0, + lcd: 1, + compass: 2, + bluetooth: 4, + gps: 8, + hrm: 16 + } var settings = {}; var batChartFile; // file for battery percentage recording - const recordingInterval10Min = 60*10*1000; + const recordingInterval10Min = 60 * 10 * 1000; + const recordingInterval1Min = 60*1000; //For testing const recordingInterval10S = 10*1000; //For testing var recordingInterval = null; @@ -16,13 +25,40 @@ WIDGETS = {}; // Called by the heart app to reload settings and decide what's function reload() { - WIDGETS["batchart"].width = 24; - batChartFile = require("Storage").open(".batchart","a"); - recordingInterval = setInterval(()=>{ - if (batChartFile) - console.log ([getTime().toFixed(0),E.getBattery()].join(",")); - //batChartfile.write([getTime().toFixed(0),E.getBattery].join(",")+"\n"); - }, recordingInterval10S) + WIDGETS["batchart"].width = 24; + + // Check if the data file exists, if not try to create it. + var batChartFileCheck = require("Storage").open("batchart.dat", "r"); + if (!batChartFileCheck) + if (!require("Storage").write("batchart.dat", "")) + //Only continue if the file was created + return; + + recordingInterval = setInterval(() => { + var batChartFileAppend = require("Storage").open("batchart.dat", "a"); + if (batChartFileAppend) { + console.log([getTime().toFixed(0), E.getBattery(), E.getTemperature(), getEnabledConsumersValue()].join(",")); + batChartFileAppend.write([getTime().toFixed(0),E.getBattery].join(",")+"\n"); + } + }, recordingInterval1Min) + } + + function getEnabledConsumersValue() { + var enabledConsumers = switchableConsumers.none; + + if (Bangle.isLCDOn()) + enabledConsumers = enabledConsumers | switchableConsumers.lcd; + // Already added in the hope they will be available soon to get more details + // if (Bangle.isCompassOn()) + // enabledConsumers = enabledConsumers | switchableConsumers.compass; + // if (Bangle.isBluetoothOn()) + // enabledConsumers = enabledConsumers | switchableConsumers.bluetooth; + // if (Bangle.isGpsOn()) + // enabledConsumers = enabledConsumers | switchableConsumers.gps; + // if (Bangle.isHrmOn()) + // enabledConsumers = enabledConsumers | switchableConsumers.hrm; + + return enabledConsumers; } // add the widget