From c6a5b7fd5940c57d370a4b4b013b23c8a9479ff0 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 13:58:47 +1000 Subject: [PATCH 01/35] Main App Repo. --- apps/verticalface/app.js | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 apps/verticalface/app.js diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js new file mode 100644 index 000000000..7b0b1bc96 --- /dev/null +++ b/apps/verticalface/app.js @@ -0,0 +1,50 @@ +// NOTE: 240 x 240 +// Load fonts +require("Font7x11Numeric7Seg").add(Graphics); + + +function draw() { + var daysOfWeek = ["MON", "TUE","WED","THUR","FRI","SAT","SUN"]; + // work out how to display the current time + var d = new Date(); + var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = (d.getMonth()+1), weekDay = d.getDay(); + + var hours = h; + var mins= ("0"+m).substr(-2); + var date = `${daysOfWeek[weekDay]}\n\n${day}/${month}`; + + // Reset the state of the graphics library + g.reset(); + + // draw the current time + g.setFont("7x11Numeric7Seg",8); + g.setFontAlign(-1,0); // align right bottom + g.drawString(hours, 30, 70, true /*clear background*/); + g.drawString(mins, 30, 170, true /*clear background*/); + + // draw the date (2x size 7 segment) + g.setFont("6x8",2.5); + g.setFontAlign(-1,0); // align right bottom + g.drawString(date, 150, 110, true /*clear background*/); +} + +// Clear the screen once, at startup +g.clear(); +// draw immediately at first +draw(); +var secondInterval = setInterval(draw, 5000); + +// Stop updates when LCD is off, restart when on +Bangle.on('lcdPower',on=>{ + if (secondInterval) clearInterval(secondInterval); + secondInterval = undefined; + if (on) { + setInterval(draw, 5000); + draw(); // draw immediately + } +}); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); +// Show launcher when middle button pressed +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); From 65ce1ff1bd31d8bb84d0c989e3c89514eb03fb79 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 13:59:44 +1000 Subject: [PATCH 02/35] Photo of app --- apps/verticalface/app.png | Bin 0 -> 1127 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/verticalface/app.png diff --git a/apps/verticalface/app.png b/apps/verticalface/app.png new file mode 100644 index 0000000000000000000000000000000000000000..878c839ca1cf09a1dfab15d690649c036a4e1d60 GIT binary patch literal 1127 zcmeAS@N?(olHy`uVBq!ia0vp^A3&Ic4M^IBzMRCsz@q2r;uum9_xA3=yhQ;L4S{n? zE`G0%68D`mRa*F2*NF=Is&m)6CvAzZcjTU)8kxsE;Y<1!h8fcv6nzc|s3mX+8?-t&TP`aerzLUBRtwA7uwVjJ_`zWJDw zUaS54q?sDUu6_2d#d`1SU8ko0P0>R&?MCJ~r|@_C!f*OZ`H&qh%XhAjE#4WwC;x3y zZGXRgb@t4QzwVb6ItWV~@<~{>skF&%oxJbA&6d6g7H`jTzxk^h=xr%KVT0o8G9$Zx ziqdQAzf|<>Dg7;V{D43jlkwEe{%6XK8x_y6JQK*Ce_gINr|Qe+^UuC8hSyC1`CvK! z49lKRHE)aWZ#{ngoS{JrB-j{>jT-U9@w54oYKFgr{>SZq>-}$kD(YhW*Uj$*>Q*yo zm+;-T^|<@(y{9Al`h62Pj2kVFT;tqT#=ms;#m~0ZJLRumRo@6vd8b2qL&EN9u zwZS37_i?}4y=&JatKBzztxQV6g6qh*n9yPn<#0U9K$KkqW_p~hwnW)UE=>=U;)D5 M>FVdQ&MBb@0C$O}b^rhX literal 0 HcmV?d00001 From baa1ee2a2a5b97d994967fa2e450529db60c46ae Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:01:28 +1000 Subject: [PATCH 03/35] App icon --- apps/verticalface/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/verticalface/app-icon.js diff --git a/apps/verticalface/app-icon.js b/apps/verticalface/app-icon.js new file mode 100644 index 000000000..b14c6644a --- /dev/null +++ b/apps/verticalface/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("+HwgJC/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AI/4ABAgM/AgPADv4d/DtQAC/gEDn4d/Dv4d/Dv4d/Dv4d/Dv4d/Dv4d/AA3/AAIaCAgPADv4d/DtLIEh44VDv4d/Dv4d/Dv4d/Dv4d/Dv4dlgcDn/z+Ad4mEDhhaN/4ABEYQEBEAQdemc/EAId4LIId3gH8SqAALDrvMn/z+Ad3AH4A/AH4A/AH4ACn////ADv4d/DtM/AYX8h44XDp8DDu/8gfAhkAMpYdpgcDDYMMEAId0DwM/4Ewhgd2/kwAAQd1gcADYU/+Ad1/4IBBIJZYDrhcEABgdsABwd/Dv4dzgH/AAIjCAgIgVDv4d/WzDREbQYd/Dv4d/Dv4d/Dv4d/Dv4d/Dv4d/ABE////EAQd/Dv4dtAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A1A==")) From 288d6bea7226f86c140ea9ae1b5bbaa24798e2fa Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:05:39 +1000 Subject: [PATCH 04/35] Update apps.json --- apps.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index f0ceaeb35..27d1c0c4e 100644 --- a/apps.json +++ b/apps.json @@ -1788,5 +1788,17 @@ {"name":"pizzatimer.app.js","url":"app.js"}, {"name":"pizzatimer.img","url":"app-icon.js","evaluate":true} ] - } + }, + { "id": "verticalface", + "name": "Vertical watch face", + "shortName":"Vertical Face", + "icon": "app.png", + "version":"0.01", + "description": "A simple vertical watch face with the date.", + "tags": "clock, clock-face, face", + "storage": [ + {"name":"verticalface.app.js","url":"app.js"}, + {"name":"verticalface.img","url":"app-icon.js","evaluate":true} + ] +} ] From 49a83ee65f1bb7b52bc80b5c7e605b2760d23e45 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:12:45 +1000 Subject: [PATCH 05/35] Updated watch face for hour --- apps/verticalface/app.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 7b0b1bc96..2708e85a4 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -4,28 +4,28 @@ require("Font7x11Numeric7Seg").add(Graphics); function draw() { - var daysOfWeek = ["MON", "TUE","WED","THUR","FRI","SAT","SUN"]; // work out how to display the current time var d = new Date(); var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = (d.getMonth()+1), weekDay = d.getDay(); - - var hours = h; + + var daysOfWeek = ["MON", "TUE","WED","THUR","FRI","SAT","SUN"]; + + var hours = ("0"+h).substr(-2); var mins= ("0"+m).substr(-2); var date = `${daysOfWeek[weekDay]}\n\n${day}/${month}`; - + // Reset the state of the graphics library g.reset(); - - // draw the current time - g.setFont("7x11Numeric7Seg",8); + // draw the current time (4x size 7 segment) + g.setFont("7x11Numeric7Seg",6); g.setFontAlign(-1,0); // align right bottom - g.drawString(hours, 30, 70, true /*clear background*/); - g.drawString(mins, 30, 170, true /*clear background*/); - + g.drawString(hours, 30, 80, true /*clear background*/); + g.drawString(mins, 30, 160, true /*clear background*/); + // draw the date (2x size 7 segment) - g.setFont("6x8",2.5); + g.setFont("6x8",2); g.setFontAlign(-1,0); // align right bottom - g.drawString(date, 150, 110, true /*clear background*/); + g.drawString(date, 130, 110, true /*clear background*/); } // Clear the screen once, at startup From 1e33664101de52c72ee7bc0cf22f6c4a453e0af9 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:15:27 +1000 Subject: [PATCH 06/35] Allow clock setting --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index 27d1c0c4e..195395073 100644 --- a/apps.json +++ b/apps.json @@ -1795,6 +1795,7 @@ "icon": "app.png", "version":"0.01", "description": "A simple vertical watch face with the date.", + "type":"clock", "tags": "clock, clock-face, face", "storage": [ {"name":"verticalface.app.js","url":"app.js"}, From 3d0eac816253036644204fb3a50a037aca95412f Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:18:49 +1000 Subject: [PATCH 07/35] Update apps.json --- apps.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 195395073..d78ab733d 100644 --- a/apps.json +++ b/apps.json @@ -1795,8 +1795,9 @@ "icon": "app.png", "version":"0.01", "description": "A simple vertical watch face with the date.", + "tags": "clock", "type":"clock", - "tags": "clock, clock-face, face", + "allow_emulator":true, "storage": [ {"name":"verticalface.app.js","url":"app.js"}, {"name":"verticalface.img","url":"app-icon.js","evaluate":true} From ec683cecad11a9a9a5817c845e6ba625eff300dc Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:44:45 +1000 Subject: [PATCH 08/35] Added touch to open launcher --- apps/verticalface/app.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 2708e85a4..7921d4457 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -48,3 +48,6 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); // Show launcher when middle button pressed setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); +Bangle.on('touch', function(button) { + if(button == 1 || button == 2) Bangle.showLauncher(); +}); From ccd0dc7e8a1cf882c0d765448d3330983931c933 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:45:24 +1000 Subject: [PATCH 09/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index d78ab733d..7bb9af915 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.01", + "version":"0.02", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From 5e7299ad59e9fca3be41d1f2a766123eebd648a7 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:58:21 +1000 Subject: [PATCH 10/35] Added styling changes. --- apps/verticalface/app.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 7921d4457..cdbb753c7 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -6,11 +6,11 @@ require("Font7x11Numeric7Seg").add(Graphics); function draw() { // work out how to display the current time var d = new Date(); - var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = (d.getMonth()+1), weekDay = d.getDay(); + var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = d.getMonth(), weekDay = d.getDay(); var daysOfWeek = ["MON", "TUE","WED","THUR","FRI","SAT","SUN"]; - var hours = ("0"+h).substr(-2); + var hours = h; var mins= ("0"+m).substr(-2); var date = `${daysOfWeek[weekDay]}\n\n${day}/${month}`; @@ -19,13 +19,13 @@ function draw() { // draw the current time (4x size 7 segment) g.setFont("7x11Numeric7Seg",6); g.setFontAlign(-1,0); // align right bottom - g.drawString(hours, 30, 80, true /*clear background*/); - g.drawString(mins, 30, 160, true /*clear background*/); + g.drawString(hours, 55, 85, true /*clear background*/); + g.drawString(mins, 55, 150, true /*clear background*/); // draw the date (2x size 7 segment) g.setFont("6x8",2); g.setFontAlign(-1,0); // align right bottom - g.drawString(date, 130, 110, true /*clear background*/); + g.drawString(date, 145, 110, true /*clear background*/); } // Clear the screen once, at startup @@ -48,6 +48,7 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); // Show launcher when middle button pressed setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); + Bangle.on('touch', function(button) { if(button == 1 || button == 2) Bangle.showLauncher(); }); From 6c5636b7201ec4b56b4466053c2ec8aa86d338f2 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 14:58:55 +1000 Subject: [PATCH 11/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 7bb9af915..3ad5f2d9a 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.02", + "version":"0.03", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From f3f5da0cd25adb82639b19294ec75ca2bd72c65a Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 15:21:03 +1000 Subject: [PATCH 12/35] Update app.js --- apps/verticalface/app.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index cdbb753c7..2cd0db6bd 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -19,13 +19,13 @@ function draw() { // draw the current time (4x size 7 segment) g.setFont("7x11Numeric7Seg",6); g.setFontAlign(-1,0); // align right bottom - g.drawString(hours, 55, 85, true /*clear background*/); - g.drawString(mins, 55, 150, true /*clear background*/); + g.drawString(hours, 55, 80, true /*clear background*/); + g.drawString(mins, 55, 155, true /*clear background*/); // draw the date (2x size 7 segment) g.setFont("6x8",2); g.setFontAlign(-1,0); // align right bottom - g.drawString(date, 145, 110, true /*clear background*/); + g.drawString(date, 145, 100, true /*clear background*/); } // Clear the screen once, at startup From b532468dac44288061a1d4fb40268cb3c67fefe4 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Wed, 27 May 2020 07:50:48 +0200 Subject: [PATCH 13/35] Initial commit of sleepphasealarm --- apps.json | 12 +++ apps/sleepphasealarm/app.img | Bin 0 -> 1156 bytes apps/sleepphasealarm/app.js | 137 +++++++++++++++++++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 apps/sleepphasealarm/app.img create mode 100644 apps/sleepphasealarm/app.js diff --git a/apps.json b/apps.json index f0ceaeb35..446318e1c 100644 --- a/apps.json +++ b/apps.json @@ -1788,5 +1788,17 @@ {"name":"pizzatimer.app.js","url":"app.js"}, {"name":"pizzatimer.img","url":"app-icon.js","evaluate":true} ] + }, + { "id": "sleepphasealarm", + "name": "SleepPhaseAlarm", + "shortName":"SleepPhaseAlarm", + "icon": "app.img", + "version":"0.01", + "description": "Uses the accelerometer to estimate sleep and wake states with the principle of Estimation of Stationary Sleep-segments (ESS, see https://ubicomp.eti.uni-siegen.de/home/datasets/ichi14/index.html.en). This app will read the next alarm from the alarm application and will wake you up to 30 minutes early at the best guessed time when you are almost already awake.", + "tags": "alarm", + "storage": [ + {"name":"sleepphasealarm.app.js","url":"app.js"}, + {"name":"sleepphasealarm.img","url":"app.img"} + ] } ] diff --git a/apps/sleepphasealarm/app.img b/apps/sleepphasealarm/app.img new file mode 100644 index 0000000000000000000000000000000000000000..0a7d4d08430f92af0a8de86362380e6c14721ce8 GIT binary patch literal 1156 zcmd6ku?c`M5JeBGG&+N1f}jgpSY$lG`oIZp1}`R(z+H++3V)+MKQCW&Zik=8c)w{A zYaGC9bpWGklscPPA^kPZ3SDg~OB(C(+~T7UkMLCEMKj)}eiJ7Wbzsj#bcq+ti8I)o vIg}J`Kk{&H>3==II~9JeoF&h(so%;`B<>d&`|{`i24&2M$=`>++J9Vc42j9i literal 0 HcmV?d00001 diff --git a/apps/sleepphasealarm/app.js b/apps/sleepphasealarm/app.js new file mode 100644 index 000000000..dbb91c23f --- /dev/null +++ b/apps/sleepphasealarm/app.js @@ -0,0 +1,137 @@ +const alarms = require("Storage").readJSON("alarm.json",1)||[]; +const active = alarms.filter(a=>a.on); + +// Sleep/Wake detection with Estimation of Stationary Sleep-segments (ESS): +// Marko Borazio, Eugen Berlin, Nagihan Kücükyildiz, Philipp M. Scholl and Kristof Van Laerhoven, "Towards a Benchmark for Wearable Sleep Analysis with Inertial Wrist-worn Sensing Units", ICHI 2014, Verona, Italy, IEEE Press, 2014. +// https://ubicomp.eti.uni-siegen.de/home/datasets/ichi14/index.html.en +// +// Function needs to be called for every measurement but returns a value at maximum once a second (see winwidth) +// start of sleep marker is delayed by sleepthresh due to continous data reading +const winwidth=13; +const nomothresh=0.006; +const sleepthresh=600; +var ess_values = []; +var slsnds = 0; +function calc_ess(val) { + ess_values.push(val); + + if (ess_values.length == winwidth) { + // calculate standard deviation over ~1s + const mean = ess_values.reduce((prev,cur) => cur+prev) / ess_values.length; + const stddev = Math.sqrt(ess_values.map(val => Math.pow(val-mean,2)).reduce((prev,cur) => prev+cur)/ess_values.length); + ess_values = []; + + // check for non-movement according to the threshold + const nonmot = stddev < nomothresh; + + // amount of seconds within non-movement sections + if (nonmot) { + slsnds+=1; + if (slsnds >= sleepthresh) { + return true; // awake + } + } else { + slsnds=0; + return false; // sleep + } + } +} + +// locate next alarm +var nextAlarm; +active.forEach(alarm => { + const now = new Date(); + const alarmHour = alarm.hr/1; + const alarmMinute = Math.round((alarm.hr%1)*60); + var dateAlarm = new Date(now.getFullYear(), now.getMonth(), now.getDate(), alarmHour, alarmMinute); + if (dateAlarm < now) { // dateAlarm in the past, add 24h + dateAlarm.setTime(dateAlarm.getTime() + (24*60*60*1000)); + } + if (nextAlarm === undefined || dateAlarm < nextAlarm) { + nextAlarm = dateAlarm; + } +}); + +function drawString(s, x, y) { + g.clearRect(0,y-15,239,y+15); + g.reset(); + g.setFont("Vector",20); + g.setFontAlign(0,0); // align right bottom + g.drawString(s, x, y); +} + +function drawApp() { + g.clearRect(0,24,239,215); + var alarmHour = nextAlarm.getHours(); + var alarmMinute = nextAlarm.getMinutes(); + if (alarmHour < 10) alarmHour = "0" + alarmHour; + if (alarmMinute < 10) alarmMinute = "0" + alarmMinute; + const s = alarmHour + ":" + alarmMinute + "\n\n"; + E.showMessage(s, "Sleep Phase Alarm"); + + function drawTime() { + if (Bangle.isLCDOn()) { + const now = new Date(); + var nowHour = now.getHours(); + var nowMinute = now.getMinutes(); + var nowSecond = now.getSeconds(); + if (nowHour < 10) nowHour = "0" + nowHour; + if (nowMinute < 10) nowMinute = "0" + nowMinute; + if (nowSecond < 10) nowSecond = "0" + nowSecond; + const time = nowHour + ":" + nowMinute + ":" + nowSecond; + drawString(time, 120, 140); + } + } + + setInterval(drawTime, 500); // 2Hz +} + +var buzzCount = 19; +function buzz() { + Bangle.setLCDPower(1); + Bangle.buzz().then(()=>{ + if (buzzCount--) { + setTimeout(buzz, 500); + } else { + // back to main after finish + setTimeout(load, 1000); + } + }); +} + +// run +var minAlarm = new Date(); +var measure = true; +if (nextAlarm !== undefined) { + Bangle.drawWidgets(); + Bangle.loadWidgets(); + + // minimum alert 30 minutes early + minAlarm.setTime(nextAlarm.getTime() - (30*60*1000)); + setInterval(function() { + const now = new Date(); + const acc = Bangle.getAccel().mag; + const swest = calc_ess(acc); + + if (swest !== undefined) { + if (Bangle.isLCDOn()) { + drawString(swest ? "Sleep" : "Awake", 120, 180); + } + } + + if (now >= nextAlarm) { + // The alarm widget should handle this one + setTimeout(load, 1000); + } else if (measure && now >= minAlarm && swest === false) { + buzz(); + measure = false; + } + }, 80); // 12.5Hz + drawApp(); +} else { + E.showMessage('No Alarm'); + setTimeout(load, 1000); +} +// BTN2 to menu, BTN3 to main +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); +setWatch(() => load(), BTN3, { repeat: false, edge: "falling" }); From 0a616c777296bceec2dc06923f18962e1ecc54f4 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Wed, 27 May 2020 07:59:51 +0200 Subject: [PATCH 14/35] sleepphasealarm: attempt to fix image --- apps.json | 2 +- apps/sleepphasealarm/app-icon.js | 1 + apps/sleepphasealarm/app.img | Bin 1156 -> 0 bytes apps/sleepphasealarm/app.png | Bin 0 -> 569 bytes 4 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 apps/sleepphasealarm/app-icon.js delete mode 100644 apps/sleepphasealarm/app.img create mode 100644 apps/sleepphasealarm/app.png diff --git a/apps.json b/apps.json index 446318e1c..8c6a44ffa 100644 --- a/apps.json +++ b/apps.json @@ -1798,7 +1798,7 @@ "tags": "alarm", "storage": [ {"name":"sleepphasealarm.app.js","url":"app.js"}, - {"name":"sleepphasealarm.img","url":"app.img"} + {"name":"sleepphasealarm.img","url":"app-icon.js"} ] } ] diff --git a/apps/sleepphasealarm/app-icon.js b/apps/sleepphasealarm/app-icon.js new file mode 100644 index 000000000..3fbcc29af --- /dev/null +++ b/apps/sleepphasealarm/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwhC/AH4AfhGIxGAC9YABxBIWF05ZCCYRfRC65CCLSoqBOKwutO4oAK7vd6AXbACAXz93uC6kOC4PgC6YWBAAMCkQAJkAXWkQX2O4YXTU4YXS6czAAUyC/4XBACIX/C8rXBABkNC/4XNAH4A/ABoA=")) diff --git a/apps/sleepphasealarm/app.img b/apps/sleepphasealarm/app.img deleted file mode 100644 index 0a7d4d08430f92af0a8de86362380e6c14721ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmd6ku?c`M5JeBGG&+N1f}jgpSY$lG`oIZp1}`R(z+H++3V)+MKQCW&Zik=8c)w{A zYaGC9bpWGklscPPA^kPZ3SDg~OB(C(+~T7UkMLCEMKj)}eiJ7Wbzsj#bcq+ti8I)o vIg}J`Kk{&H>3==II~9JeoF&h(so%;`B<>d&`|{`i24&2M$=`>++J9Vc42j9i diff --git a/apps/sleepphasealarm/app.png b/apps/sleepphasealarm/app.png new file mode 100644 index 0000000000000000000000000000000000000000..0a19bd463477d6a149d3f99235b626213113af4b GIT binary patch literal 569 zcmV-90>=G`P)c^D^J6i<6CV_iXga@^q5K-z0b+G`0aw}B%7Mfxr^RVIv+dtsa$hjEex zaq`%;o=OCp$!ZuUX&5J2@bX|~oH1%W#OEDKL7$C!?Y`;z>Hh2t59P#U&c+{NYu9KL zAM_P@3hbm&G|$q7&o<_hnug|?kC*%*<8Kf#2Jvm>c6N zGh`N|n~qKtxN|yD*CDpG@_DZ11Lg*V?UL+Z95rLm$_LC1sH_2d1(|Q?=*a}4Cc@Z& zENl%4f;r$7@cq}biH@$y%{RNY1pZZ5K2X#P?Ogt1G}zlmA8L?P&V%9NADSEgC2qU{ zqb>9=k#FrAUjc8xHH|l5)Xcg1CpNiI8eai#z~k|F{%?K&Jp+^RYiUk|00000NkvXX Hu0mjf@hJo5 literal 0 HcmV?d00001 From 474f54ee29c0095318a9d18d21b593ae297dd503 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Wed, 27 May 2020 08:01:01 +0200 Subject: [PATCH 15/35] sleepphasealarm: attempt to fix image --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 8c6a44ffa..88fb167c4 100644 --- a/apps.json +++ b/apps.json @@ -1798,7 +1798,7 @@ "tags": "alarm", "storage": [ {"name":"sleepphasealarm.app.js","url":"app.js"}, - {"name":"sleepphasealarm.img","url":"app-icon.js"} + {"name":"sleepphasealarm.img","url":"app-icon.js","evaluate":true} ] } ] From 15d3c4c1bb19185362ccd57e9bf8c427ef25d7f6 Mon Sep 17 00:00:00 2001 From: Erik Andresen Date: Wed, 27 May 2020 08:03:15 +0200 Subject: [PATCH 16/35] sleepphasealarm: attempt to fix image --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 88fb167c4..63afcfde1 100644 --- a/apps.json +++ b/apps.json @@ -1792,7 +1792,7 @@ { "id": "sleepphasealarm", "name": "SleepPhaseAlarm", "shortName":"SleepPhaseAlarm", - "icon": "app.img", + "icon": "app.png", "version":"0.01", "description": "Uses the accelerometer to estimate sleep and wake states with the principle of Estimation of Stationary Sleep-segments (ESS, see https://ubicomp.eti.uni-siegen.de/home/datasets/ichi14/index.html.en). This app will read the next alarm from the alarm application and will wake you up to 30 minutes early at the best guessed time when you are almost already awake.", "tags": "alarm", From d8d520e3e10803a90cecb9aa1ee12547c5ae7b29 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 16:37:44 +1000 Subject: [PATCH 17/35] Update app.js --- apps/verticalface/app.js | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 2cd0db6bd..25328e1dc 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -1,51 +1,54 @@ // NOTE: 240 x 240 // Load fonts -require("Font7x11Numeric7Seg").add(Graphics); +require("Font8x12").add(Graphics); -function draw() { +function drawTimeDate() { // work out how to display the current time var d = new Date(); var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = d.getMonth(), weekDay = d.getDay(); - - var daysOfWeek = ["MON", "TUE","WED","THUR","FRI","SAT","SUN"]; - + + var daysOfWeek = ["MON", "TUE","WED","THU","FRI","SAT","SUN"]; + var hours = h; var mins= ("0"+m).substr(-2); - var date = `${daysOfWeek[weekDay]}\n\n${day}/${month}`; - + var date = `${daysOfWeek[weekDay]}|${day}|${("0"+(month+1)).substr(-2)}`; + + // Reset the state of the graphics library g.reset(); // draw the current time (4x size 7 segment) - g.setFont("7x11Numeric7Seg",6); + g.setFont("8x12",9); g.setFontAlign(-1,0); // align right bottom - g.drawString(hours, 55, 80, true /*clear background*/); - g.drawString(mins, 55, 155, true /*clear background*/); - + g.drawString(hours, 25, 65, true /*clear background*/); + g.drawString(mins, 25, 155, true /*clear background*/); + // draw the date (2x size 7 segment) g.setFont("6x8",2); g.setFontAlign(-1,0); // align right bottom - g.drawString(date, 145, 100, true /*clear background*/); + g.drawString(date, 20, 215, true /*clear background*/); } // Clear the screen once, at startup g.clear(); // draw immediately at first -draw(); -var secondInterval = setInterval(draw, 5000); +drawTimeDate(); +var secondInterval = setInterval(drawTimeDate, 5000); // Stop updates when LCD is off, restart when on Bangle.on('lcdPower',on=>{ if (secondInterval) clearInterval(secondInterval); secondInterval = undefined; if (on) { - setInterval(draw, 5000); - draw(); // draw immediately + setInterval(drawTimeDate, 5000); + drawTimeDate(); // draw immediately } }); + // Load widgets -Bangle.loadWidgets(); -Bangle.drawWidgets(); +//Bangle.loadWidgets(); +//Bangle.drawWidgets(); + // Show launcher when middle button pressed setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); From 61407ecfd16b5e5359f58b1ce0ad325f5c034e3d Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 16:38:21 +1000 Subject: [PATCH 18/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 3ad5f2d9a..1106593d8 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.03", + "version":"0.05", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From aaa0401bb832090ae9d831d22810fdd5058f03cc Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 17:05:14 +1000 Subject: [PATCH 19/35] Added new capabilities and template for "widgets" --- apps/verticalface/app.js | 56 ++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 25328e1dc..f06f07f16 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -1,22 +1,5 @@ -// NOTE: 240 x 240 -// Load fonts -require("Font8x12").add(Graphics); - - -function drawTimeDate() { - // work out how to display the current time - var d = new Date(); - var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = d.getMonth(), weekDay = d.getDay(); - - var daysOfWeek = ["MON", "TUE","WED","THU","FRI","SAT","SUN"]; - - var hours = h; - var mins= ("0"+m).substr(-2); - var date = `${daysOfWeek[weekDay]}|${day}|${("0"+(month+1)).substr(-2)}`; - - - // Reset the state of the graphics library - g.reset(); + // Set color + g.setColor('#27ae60'); // draw the current time (4x size 7 segment) g.setFont("8x12",9); g.setFontAlign(-1,0); // align right bottom @@ -29,11 +12,44 @@ function drawTimeDate() { g.drawString(date, 20, 215, true /*clear background*/); } + +//We will create custom "Widgets" for our face. + +function drawSteps() { + //Reset to defaults. + g.reset(); + // draw the date (2x size 7 segment) + g.setColor('#7f8c8d'); + g.setFont("8x12",2); + g.setFontAlign(-1,0); // align right bottom + g.drawString("STEPS", 145, 40, true /*clear background*/); + g.setColor('#bdc3c7'); + g.drawString("1234", 145, 70, true /*clear background*/); +} + +function drawBPM() { + //Reset to defaults. + g.reset(); + // draw the date (2x size 7 segment) + g.setColor('#7f8c8d'); + g.setFont("8x12",2); + g.setFontAlign(-1,0); // align right bottom + g.drawString("BPM", 145, 120, true /*clear background*/); + g.setColor('#bdc3c7'); + g.drawString("1234", 145, 150, true /*clear background*/); +} + + // Clear the screen once, at startup g.clear(); // draw immediately at first drawTimeDate(); -var secondInterval = setInterval(drawTimeDate, 5000); +drawSteps(); +drawBPM(); + +var secondInterval = setInterval(()=>{ + drawTimeDate(); +}, 5000); // Stop updates when LCD is off, restart when on Bangle.on('lcdPower',on=>{ From 87a3314fcd6aaf114a70cf08ef47ead01864537c Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 17:06:03 +1000 Subject: [PATCH 20/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 1106593d8..21774d1e7 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.05", + "version":"0.1", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From fd1522cbdc9fa44d063bc0c9545516b025f76997 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 17:15:41 +1000 Subject: [PATCH 21/35] Fixed broken commit --- apps/verticalface/app.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index f06f07f16..225d5c400 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -1,3 +1,22 @@ +// NOTE: 240 x 240 +// Load fonts +require("Font8x12").add(Graphics); + + +function drawTimeDate() { + // work out how to display the current time + var d = new Date(); + var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = d.getMonth(), weekDay = d.getDay(); + + var daysOfWeek = ["MON", "TUE","WED","THU","FRI","SAT","SUN"]; + + var hours = h; + var mins= ("0"+m).substr(-2); + var date = `${daysOfWeek[weekDay]}|${day}|${("0"+(month+1)).substr(-2)}`; + + + // Reset the state of the graphics library + g.reset(); // Set color g.setColor('#27ae60'); // draw the current time (4x size 7 segment) From 5f0fe5859f1bb1d8f2d4d84fe14d882076984fd9 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 17:16:13 +1000 Subject: [PATCH 22/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 21774d1e7..e38532961 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.1", + "version":"0.1.1", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From f6d2017789a2efc1591ac80562efeeb838f39329 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 18:08:16 +1000 Subject: [PATCH 23/35] Updates to ongoing development --- apps/verticalface/app.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 225d5c400..1a89b8cb5 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -43,7 +43,7 @@ function drawSteps() { g.setFontAlign(-1,0); // align right bottom g.drawString("STEPS", 145, 40, true /*clear background*/); g.setColor('#bdc3c7'); - g.drawString("1234", 145, 70, true /*clear background*/); + g.drawString("-", 145, 65, true /*clear background*/); } function drawBPM() { @@ -53,9 +53,22 @@ function drawBPM() { g.setColor('#7f8c8d'); g.setFont("8x12",2); g.setFontAlign(-1,0); // align right bottom - g.drawString("BPM", 145, 120, true /*clear background*/); + g.drawString("BPM", 145, 105, true /*clear background*/); g.setColor('#bdc3c7'); - g.drawString("1234", 145, 150, true /*clear background*/); + g.drawString("-", 145, 130, true /*clear background*/); +} + +function drawBattery() { + let charge = E.getBattery(); + //Reset to defaults. + g.reset(); + // draw the date (2x size 7 segment) + g.setColor('#7f8c8d'); + g.setFont("8x12",2); + g.setFontAlign(-1,0); // align right bottom + g.drawString("CHARGE", 145, 170, true /*clear background*/); + g.setColor('#bdc3c7'); + g.drawString(`${charge}%`, 145, 195, true /*clear background*/); } @@ -65,6 +78,7 @@ g.clear(); drawTimeDate(); drawSteps(); drawBPM(); +drawBattery(); var secondInterval = setInterval(()=>{ drawTimeDate(); @@ -77,6 +91,7 @@ Bangle.on('lcdPower',on=>{ if (on) { setInterval(drawTimeDate, 5000); drawTimeDate(); // draw immediately + drawBattery(); //draw battery } }); @@ -90,3 +105,7 @@ setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); Bangle.on('touch', function(button) { if(button == 1 || button == 2) Bangle.showLauncher(); }); + +//Bangle.on('step', function(up) { +// console.log("Step"); +//}); \ No newline at end of file From 495f07d010792cdf73f7a75f90ab3a8dff260ba9 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 18:10:14 +1000 Subject: [PATCH 24/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index e38532961..e906146d0 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.1.1", + "version":"0.2.0", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From 809a08435afa0fa558cb2e58fd6b3d3175256f90 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 21:48:30 +1000 Subject: [PATCH 25/35] Added heart rate visualiser --- apps/verticalface/app.js | 74 ++++++++++++++++++++++++++++++---------- 1 file changed, 56 insertions(+), 18 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 1a89b8cb5..a6612e4e1 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -1,10 +1,9 @@ -// NOTE: 240 x 240 -// Load fonts require("Font8x12").add(Graphics); +let HRMstate = false; +let currentHRM = "CALC"; function drawTimeDate() { - // work out how to display the current time var d = new Date(); var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = d.getMonth(), weekDay = d.getDay(); @@ -18,7 +17,7 @@ function drawTimeDate() { // Reset the state of the graphics library g.reset(); // Set color - g.setColor('#27ae60'); + g.setColor('#2ecc71'); // draw the current time (4x size 7 segment) g.setFont("8x12",9); g.setFontAlign(-1,0); // align right bottom @@ -46,16 +45,27 @@ function drawSteps() { g.drawString("-", 145, 65, true /*clear background*/); } -function drawBPM() { +function drawBPM(on) { //Reset to defaults. g.reset(); - // draw the date (2x size 7 segment) g.setColor('#7f8c8d'); g.setFont("8x12",2); - g.setFontAlign(-1,0); // align right bottom - g.drawString("BPM", 145, 105, true /*clear background*/); - g.setColor('#bdc3c7'); - g.drawString("-", 145, 130, true /*clear background*/); + g.setFontAlign(-1,0); + var heartRate = 0; + + if(on){ + g.drawString("BPM", 145, 105, true); + g.setColor('#e74c3c'); + g.drawString("*", 190, 105, false); + g.setColor('#bdc3c7'); + //Showing current heartrate reading. + heartRate = currentHRM.toString() + " "; + return g.drawString(heartRate, 145, 130, true /*clear background*/); + } else { + g.drawString("BPM ", 145, 105, true /*clear background*/); + g.setColor('#bdc3c7'); + return g.drawString("- ", 145, 130, true); //Padding + } } function drawBattery() { @@ -74,6 +84,7 @@ function drawBattery() { // Clear the screen once, at startup g.clear(); + // draw immediately at first drawTimeDate(); drawSteps(); @@ -89,23 +100,50 @@ Bangle.on('lcdPower',on=>{ if (secondInterval) clearInterval(secondInterval); secondInterval = undefined; if (on) { + //Screen on setInterval(drawTimeDate, 5000); - drawTimeDate(); // draw immediately - drawBattery(); //draw battery + drawBPM(HRMstate); + drawTimeDate(); + drawBattery(); + } else { + //Screen off } }); -// Load widgets -//Bangle.loadWidgets(); -//Bangle.drawWidgets(); - // Show launcher when middle button pressed setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); +//HRM Controller. Bangle.on('touch', function(button) { - if(button == 1 || button == 2) Bangle.showLauncher(); + if(button == 1 || button == 2){ + if(!HRMstate){ + console.log("Toggled HRM"); + //Turn on. + Bangle.buzz(); + Bangle.setHRMPower(1); + HRMstate = true; + } else if(HRMstate){ + console.log("Toggled HRM"); + //Turn off. + Bangle.buzz(); + Bangle.setHRMPower(0); + HRMstate = false; + currentHRM = []; + } + drawBPM(HRMstate); + } +}); + +Bangle.on('HRM', function(hrm) { + if(hrm.confidence > 90){ + /*Do more research to determine effect algorithm for heartrate average.*/ + console.log(hrm.bpm); + currentHRM = hrm.bpm; + drawBPM(HRMstate); + } }); //Bangle.on('step', function(up) { // console.log("Step"); -//}); \ No newline at end of file +//}); + From c90fd28a56809b80143826cce212f7d81d933fef Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 21:49:32 +1000 Subject: [PATCH 26/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index e906146d0..8192a50e6 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.2.0", + "version":"0.3.0", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From 25b3dc7fa8590b57fa6c5e2e8c3e1a771747448d Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 22:00:01 +1000 Subject: [PATCH 27/35] Set BTN1 to enable heart monitor --- apps/verticalface/app.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index a6612e4e1..625f02ce9 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -113,14 +113,20 @@ Bangle.on('lcdPower',on=>{ // Show launcher when middle button pressed setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); -//HRM Controller. Bangle.on('touch', function(button) { if(button == 1 || button == 2){ - if(!HRMstate){ + Bangle.showLauncher(); + } +}); + +//HRM Controller. +setWatch(function(){ + if(!HRMstate){ console.log("Toggled HRM"); //Turn on. Bangle.buzz(); Bangle.setHRMPower(1); + currentHRM = "CALC"; HRMstate = true; } else if(HRMstate){ console.log("Toggled HRM"); @@ -131,8 +137,7 @@ Bangle.on('touch', function(button) { currentHRM = []; } drawBPM(HRMstate); - } -}); +}, BTN1, { repeat: true, edge: "falling" }); Bangle.on('HRM', function(hrm) { if(hrm.confidence > 90){ @@ -143,6 +148,7 @@ Bangle.on('HRM', function(hrm) { } }); + //Bangle.on('step', function(up) { // console.log("Step"); //}); From 52d2fa2efd4b95726b64c23d54f2bd697d544ae2 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Wed, 27 May 2020 23:15:54 +1000 Subject: [PATCH 28/35] Add files via upload --- apps/verticalface/app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 625f02ce9..f36f64b4f 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -93,7 +93,7 @@ drawBattery(); var secondInterval = setInterval(()=>{ drawTimeDate(); -}, 5000); +}, 60000); // Stop updates when LCD is off, restart when on Bangle.on('lcdPower',on=>{ @@ -101,7 +101,7 @@ Bangle.on('lcdPower',on=>{ secondInterval = undefined; if (on) { //Screen on - setInterval(drawTimeDate, 5000); + setInterval(drawTimeDate, 60000); drawBPM(HRMstate); drawTimeDate(); drawBattery(); @@ -152,4 +152,3 @@ Bangle.on('HRM', function(hrm) { //Bangle.on('step', function(up) { // console.log("Step"); //}); - From 194ed062e54fdf0d1e1ac1ee6b7969afab6fb4c1 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 00:42:53 +1000 Subject: [PATCH 29/35] Fixed memory leak from multiple intervals. Tutorial on first clock face causes multiple intervals to be created. Must be fixed to stop extra ticking. --- apps/verticalface/app.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index f36f64b4f..e44c30ed7 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -93,20 +93,21 @@ drawBattery(); var secondInterval = setInterval(()=>{ drawTimeDate(); -}, 60000); +}, 15000); // Stop updates when LCD is off, restart when on Bangle.on('lcdPower',on=>{ - if (secondInterval) clearInterval(secondInterval); - secondInterval = undefined; if (on) { + secondInterval = setInterval(()=>{ + drawTimeDate(); +}, 15000); //Screen on - setInterval(drawTimeDate, 60000); drawBPM(HRMstate); drawTimeDate(); drawBattery(); } else { //Screen off + clearInterval(secondInterval); } }); From 1ff039d0ddef611465232e2335499e804587c796 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 00:43:30 +1000 Subject: [PATCH 30/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 8192a50e6..e77c6dd2d 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.3.0", + "version":"0.3.9", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From 18a83baa2d59d963a6dcfb40862a81e9c3bcabed Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 00:57:14 +1000 Subject: [PATCH 31/35] Fixed to proper size --- apps/verticalface/app.png | Bin 1127 -> 9439 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/verticalface/app.png b/apps/verticalface/app.png index 878c839ca1cf09a1dfab15d690649c036a4e1d60..f7e1cba5734836e8c9fda44cbf7e5bfa2530dd3a 100644 GIT binary patch literal 9439 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 M>FVdQ&MBb@0C$O}b^rhX From 0d44a243a12bf748bae876155e2a74355c767667 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 00:57:47 +1000 Subject: [PATCH 32/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index e77c6dd2d..bfe2d2ae3 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.3.9", + "version":"0.4.0", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", From 41137547421d43ed3c0452f6546f3b309fb7ded5 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 01:17:54 +1000 Subject: [PATCH 33/35] Proper app icon. --- apps/verticalface/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/verticalface/app-icon.js b/apps/verticalface/app-icon.js index b14c6644a..a3b7a6dec 100644 --- a/apps/verticalface/app-icon.js +++ b/apps/verticalface/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("+HwgJC/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4AI/4ABAgM/AgPADv4d/DtQAC/gEDn4d/Dv4d/Dv4d/Dv4d/Dv4d/Dv4d/AA3/AAIaCAgPADv4d/DtLIEh44VDv4d/Dv4d/Dv4d/Dv4d/Dv4dlgcDn/z+Ad4mEDhhaN/4ABEYQEBEAQdemc/EAId4LIId3gH8SqAALDrvMn/z+Ad3AH4A/AH4A/AH4ACn////ADv4d/DtM/AYX8h44XDp8DDu/8gfAhkAMpYdpgcDDYMMEAId0DwM/4Ewhgd2/kwAAQd1gcADYU/+Ad1/4IBBIJZYDrhcEABgdsABwd/Dv4dzgH/AAIjCAgIgVDv4d/WzDREbQYd/Dv4d/Dv4d/Dv4d/Dv4d/Dv4d/ABE////EAQd/Dv4dtAH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A/AH4A1A==")) +E.toArrayBuffer(atob("MDAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT4+Pj4+DQAAAAANPj4+Pj4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDTg4ODg4DQ0ABg0xODg4ODgNDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAAAAAOD4ADT44AAAAAAA+OAAAAABWVjJWVlZWVlZWVjIAAAAAAAAAAAAAAAA+OAAAAAAAOD4ADT44AAAAAAA+OAAAAABWMgBWK1YrVlZWVisAAAAAAAAAAAAAAAA+OAAAAAAAOD4ADT44AAAAAAA+OAAAAAArVgBWKysAVgArAFYAAAAAAAAAAAAAAAANDQAAAAAAOD4ADT44AAAANzg+OAAAAABWVgAyK1ZWMgArVisAAAAAAAAAAAAAAAAAAAAAAAAAOD4ADT44AAAAOD4+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD4ADT44ADc4DQ0+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD4ADT44ADg+DQA+OAAAAACBgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg+DQAADT4+Pg0AAAA+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABg0NDTg4DQAADT44OA0AAAA+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT4+Pg0AAAAADT44AAAAAAA+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANMTg4OA0AAAAADT44AAAAAAA+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAAAAAAAAADT44AAAAAAA+OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+ODg4ODg4ODgABw03ODg4ODgNDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4+Pj4+Pj4AAAANPj4+Pj4AAAAAAABWVlZWVlYrVgAAAAAAAAAAAAAAAAAAAAANDQ0NDQ0NDQ0AAAAHDQ0NDQ0AAAAAAABWVlZWVjIyVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWVlYAKysAVgAAAAAAAAAAAAAAAAAAAAAADT4+Pj4+DQAAAAAAADg+DQAAAAAAAABWVjIAKysAMgAAAAAAAAAAAAAAAAAAAAANDTg4ODg4DQ0AAAAHDTg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAAAAAOD4AAAANPj4+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAAAAAOD4ABw03ODg+DQAAAAAAAACBgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAAAAAOD4ADT44ADg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAAA04OD4ABw0NADg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAAAADg+Pj4AAAAAADg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAANODENOD4AAAAAADg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+OAANPg0AOD4AAAAAADg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj44AAAAOD4AAAAAADg+DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+ODg3AAAAOD4AAAAAADg+DQAAAAAAAABWVlYAVlZWVlZWVjJWVgAAAAAAAAAAAAA+OAAAAAAAOD4AAAAAADg+DQAAAAAAAABWAFZWVlZWVlZWKzJWMgAAAAAAAAAAAAA+OAAAAAAAOD4AAAAAADg+DQAAAAAAAABWK1YAVitWVjJWAFZWAAAAAAAAAAAAAAA+OAAAAAAAOD4AAAAAADg+DQAAAAAAAABWVjIAVisyMisrVitWVgAAAAAAAAAAAAANMTg4ODg4MQ0ABzg4ODg+ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT4+Pj4+DQAADT4+Pj4+Pj4AAAAAAACBgV0yVgAAAAAAAAAAAAAAAAAAAAAAAAAABg0NDQ0NBgAABg0NDQ0NDQ0AAAAAAACBgTJdKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgVZWKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWVlZWVgAAAAAAAAAAAAAAAAAAAAAAAA0NBwAHBgcADQANBg0NAA0ADQcNDQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NNw04DQ0ADQ0NDQ04AA0NNzg4OAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQA4DQ0ADQ04DQ0HAA0NOA0NDQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBwAHDQcADQcNBwcAAA0ADQcHDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) From da8935c399c0cd1a1f5794be671cbc1fe8d76463 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 11:05:20 +1000 Subject: [PATCH 34/35] Fixed day being displayed --- apps/verticalface/app.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index e44c30ed7..3e4650d18 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -7,8 +7,7 @@ function drawTimeDate() { var d = new Date(); var h = d.getHours(), m = d.getMinutes(), day = d.getDate(), month = d.getMonth(), weekDay = d.getDay(); - var daysOfWeek = ["MON", "TUE","WED","THU","FRI","SAT","SUN"]; - + var daysOfWeek = ["SUN", "MON", "TUE","WED","THU","FRI","SAT"]; var hours = h; var mins= ("0"+m).substr(-2); var date = `${daysOfWeek[weekDay]}|${day}|${("0"+(month+1)).substr(-2)}`; @@ -152,4 +151,4 @@ Bangle.on('HRM', function(hrm) { //Bangle.on('step', function(up) { // console.log("Step"); -//}); +//}); \ No newline at end of file From ece998969bef20ea89a49ee8283804377aecf7c2 Mon Sep 17 00:00:00 2001 From: Ephraim Amiel Yusi <52617123+eaydev@users.noreply.github.com> Date: Thu, 28 May 2020 11:05:49 +1000 Subject: [PATCH 35/35] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index bfe2d2ae3..70a729c63 100644 --- a/apps.json +++ b/apps.json @@ -1793,7 +1793,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.4.0", + "version":"0.4.1", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock",