From 2e0240795550d49df653fa7099d2a6c98a42c88c Mon Sep 17 00:00:00 2001 From: Taffaz Date: Sun, 24 May 2020 21:27:04 +0100 Subject: [PATCH 01/12] Create app.js --- apps/binclock/app.js | 175 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 apps/binclock/app.js diff --git a/apps/binclock/app.js b/apps/binclock/app.js new file mode 100644 index 000000000..7c0974f21 --- /dev/null +++ b/apps/binclock/app.js @@ -0,0 +1,175 @@ +// Load fonts +require("Font7x11Numeric7Seg").add(Graphics); +// position on screen +const X = 180, Y = 180; +var displayTime = 0; + +function drawTime() { + // work out how to display the current time + var d = new Date(); + var h = d.getHours(), m = d.getMinutes(); + var time = (" "+h).substr(-2) + ":" + ("0"+m).substr(-2); + // draw the current time (4x size 7 segment) + g.setFont("7x11Numeric7Seg",4); + g.setFontAlign(1,1); // align right bottom + g.drawString(time, X, Y, true /*clear background*/); + // draw the seconds (2x size 7 segment) + g.setFont("7x11Numeric7Seg",2); + g.drawString(("0"+d.getSeconds()).substr(-2), X+30, Y, true /*clear background*/); +} + +function test(intVal){ + hour_16 = 0; + hour_8 = 0; + hour_4 = 0; + hour_2 = 0; + hour_1 = 0; + + if(intVal > 16){ + hour_16 = 1; + intVal = intVal - 16; + } + if(intVal > 8){ + hour_8 = 1; + intVal = intVal - 8; + } + if(intVal > 4){ + hour_4 = 1; + intVal = intVal - 4; + } + if(intVal > 2){ + hour_2 = 1; + intVal = intVal - 2; + } + if(intVal > 0){ + hour_1 = 1; + } +} + +function getHourArray(hours){ + + var hourLED = [0,0,0,0,0]; + + if(hours > 15){ + hourLED[0] = 1; + hours = hours - 16; + } + if(hours > 7){ + hourLED[1] = 1; + hours = hours - 8; + } + if(hours > 3){ + hourLED[2] = 1; + hours = hours - 4; + } + if(hours > 1){ + hourLED[3] = 1; + hours = hours - 2; + } + if(hours > 0){ + hourLED[4] = 1; + } + + return hourLED; + +} + +function getMinuteArray(minutes){ + + var minuteLED = [0,0,0,0,0,0]; + + if(minutes > 31){ + minuteLED[0] = 1; + minutes = minutes - 32; + } + if(minutes > 15){ + minuteLED[1] = 1; + minutes = minutes - 16; + } + if(minutes > 7){ + minuteLED[2] = 1; + minutes = minutes - 8; + } + if(minutes > 3){ + minuteLED[3] = 1; + minutes = minutes - 4; + } + if(minutes > 1){ + minuteLED[4] = 1; + minutes = minutes - 2; + } + if(minutes > 0){ + minuteLED[5] = 1; + } + + return minuteLED; + +} + +function draw(){ + + // work out how to display the current time + var d = new Date(); + var h = d.getHours(), m = d.getMinutes(); + + //reset hour booleans to 0 + var hourLED = getHourArray(h); + var minuteLED = getMinuteArray(m); + + var i; + //Draw hour circles + for(i=0; i{ + if (secondInterval) clearInterval(secondInterval); + secondInterval = undefined; + if (on) { + setInterval(draw, 1000); + draw(); // draw immediately + } +}); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); +// Show launcher when middle button pressed +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); +setWatch(function() { + if(displayTime == 0){ + displayTime = 1; + } else{ + displayTime = 0; + } +}, BTN, {edge:"rising", debounce:50, repeat:true}); From 1d833ccd7a5c2ea4ec66936dcc713ac58971afee Mon Sep 17 00:00:00 2001 From: Taffaz Date: Sun, 24 May 2020 21:37:03 +0100 Subject: [PATCH 02/12] Create app-icon.js --- apps/binclock/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/binclock/app-icon.js diff --git a/apps/binclock/app-icon.js b/apps/binclock/app-icon.js new file mode 100644 index 000000000..206c1ee42 --- /dev/null +++ b/apps/binclock/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkEIf4A/AH8AgP/iAECiIJCj/xAgURBoUAn8gAYMP//wAgIMBBwX//4gCAIUAgf/EIUfC5QEBC5MCI4gNCEIPyAgRGDLQMwBIwEJEAYEFAH7v3dQTpDAZ6cDdIYDPdQbpDAZ8QYgTpDAZ5IEAaYAeM4cRTYSuQiABBiQCBbckjmQzFmcggUzGJkBBoMDQgcSkMAAIIXOgL8CC6gvRL4b2CL4MwTIotJAAJfJiIiCC5RfHF4LdHC4wvGAwIvHL5UDYQIuBF44A/AH4A/AH4AbA")) From 9c0f8e2c5bcf8f4f058b2e1ce3d029f352ac26f1 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Sun, 24 May 2020 21:40:42 +0100 Subject: [PATCH 03/12] Update apps.json --- apps.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 3386867cf..231f6bfa8 100644 --- a/apps.json +++ b/apps.json @@ -1773,5 +1773,17 @@ "storage": [ {"name":"widviz.wid.js","url":"widget.js"} ] - } + }, + { "id": "binclock", + "name": "Binary Clock", + "shortName":"Binary Clock", + "icon": "app.png", + "version":"0.01", + "description": "A binary clock with hours and minutes. BTN1 toggles a digital clock.", + "tags": "", + "storage": [ + {"name":"binclock.app.js","url":"app.js"}, + {"name":"binclock.img","url":"app-icon.js","evaluate":true} + ] +} ] From b41a719b3f3cbf597143f30bbd79c1d3a607aa49 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Sun, 24 May 2020 21:41:12 +0100 Subject: [PATCH 04/12] Add files via upload --- apps/binclock/app.png | Bin 0 -> 709 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/binclock/app.png diff --git a/apps/binclock/app.png b/apps/binclock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..b22feb36bb1e30ce64315d679dc5b398abf09cfd GIT binary patch literal 709 zcmV;$0y_PPP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$NE#K~z{r?Uyl2 zBS93$SLFm_yMhtS6>0Vg1=rG8ily9VkSoOU5b+a;$dz)1h+H8e79wJ2A&3?hr^OX% zjl!h}Laqpc7Wcb-Z^ymeO^)PDlrTSr-M9bjdo%N9=CN@s7K`Q0F#l=({@49o`L0kX zs1%aPWc(0pRYQ0mFMNrhQUrDLeb;qW3d!Yi*FUZwo*ve}tgB?;H-3;tbX7wLr`F%L z!28CRII0FTc04*hGLCZ}=S1w4TXf#Z95kk7-+{pawNf27zHZ21lbI*mp66k3O=h0= z#gPaqh0u*8hRns12dp&%~V=*gwDSh^C93A-I) zhoxQ>ZnyqiMmdMklh4~yV`!bxwNe{uwOX{;yq2vc7|EncAd@ouSQT!!{s%IaT5VrT ze=GFqy&0HOHk)OA9|L55vIFw@JdfD20jkw%;L!xF42WKbM~3}Le{6j0>igBy^prc~ z_P^`rKukFK8Gl)rYS>d3pQWwkQ~)m=D4igY!w# zhXA_aDjzhmfea`dW11-|2v@bv-8D;#ZsxH&+W$SA^xebI;sXF zvtstp-u@n?0nAd0O$62*N5F^${5Q#c6NQeswy=jx*wo-1-9wTgu`yDsR7dv^qu<)x zGA(t Date: Sun, 24 May 2020 21:48:48 +0100 Subject: [PATCH 05/12] Update apps.json --- apps.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/apps.json b/apps.json index 231f6bfa8..b5aa8e677 100644 --- a/apps.json +++ b/apps.json @@ -1775,15 +1775,15 @@ ] }, { "id": "binclock", - "name": "Binary Clock", - "shortName":"Binary Clock", - "icon": "app.png", - "version":"0.01", - "description": "A binary clock with hours and minutes. BTN1 toggles a digital clock.", - "tags": "", - "storage": [ - {"name":"binclock.app.js","url":"app.js"}, - {"name":"binclock.img","url":"app-icon.js","evaluate":true} - ] -} + "name": "Binary Clock", + "shortName":"Binary Clock", + "icon": "app.png", + "version":"0.01", + "description": "A binary clock with hours and minutes. BTN1 toggles a digital clock.", + "tags": "", + "storage": [ + {"name":"binclock.app.js","url":"app.js"}, + {"name":"binclock.img","url":"app-icon.js","evaluate":true} + ] + } ] From 2850986abb6408c42593af94638201e195d01eb7 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Sun, 24 May 2020 21:51:50 +0100 Subject: [PATCH 06/12] Create ChangeLog --- apps/binclock/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/binclock/ChangeLog diff --git a/apps/binclock/ChangeLog b/apps/binclock/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/binclock/ChangeLog @@ -0,0 +1 @@ +0.01: New App! From d34f7d022617e20e5afbb3cca2b3ed8774903297 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Mon, 25 May 2020 08:10:31 +0100 Subject: [PATCH 07/12] Update app.js --- apps/binclock/app.js | 54 +++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 36 deletions(-) diff --git a/apps/binclock/app.js b/apps/binclock/app.js index 7c0974f21..3bff281bf 100644 --- a/apps/binclock/app.js +++ b/apps/binclock/app.js @@ -3,6 +3,9 @@ require("Font7x11Numeric7Seg").add(Graphics); // position on screen const X = 180, Y = 180; var displayTime = 0; +var minuteLED = [0,0,0,0,0,0]; +var hourLED = [0,0,0,0,0]; + function drawTime() { // work out how to display the current time @@ -18,37 +21,12 @@ function drawTime() { g.drawString(("0"+d.getSeconds()).substr(-2), X+30, Y, true /*clear background*/); } -function test(intVal){ - hour_16 = 0; - hour_8 = 0; - hour_4 = 0; - hour_2 = 0; - hour_1 = 0; - - if(intVal > 16){ - hour_16 = 1; - intVal = intVal - 16; +function updateHourArray(hours){ + + var i; + for(i = 0;i < hourLED.length;i++){ + hourLED[i]=0; } - if(intVal > 8){ - hour_8 = 1; - intVal = intVal - 8; - } - if(intVal > 4){ - hour_4 = 1; - intVal = intVal - 4; - } - if(intVal > 2){ - hour_2 = 1; - intVal = intVal - 2; - } - if(intVal > 0){ - hour_1 = 1; - } -} - -function getHourArray(hours){ - - var hourLED = [0,0,0,0,0]; if(hours > 15){ hourLED[0] = 1; @@ -74,9 +52,12 @@ function getHourArray(hours){ } -function getMinuteArray(minutes){ - - var minuteLED = [0,0,0,0,0,0]; +function updateMinuteArray(minutes){ + + var i; + for(i = 0;i < minuteLED.length;i++){ + minuteLED[i]=0; + } if(minutes > 31){ minuteLED[0] = 1; @@ -108,13 +89,14 @@ function getMinuteArray(minutes){ function draw(){ + g.clear(); + // work out how to display the current time var d = new Date(); var h = d.getHours(), m = d.getMinutes(); - //reset hour booleans to 0 - var hourLED = getHourArray(h); - var minuteLED = getMinuteArray(m); + updateHourArray(h); + updateMinuteArray(m); var i; //Draw hour circles From 234880ad2e70653889bae59694528aa9ac4a5074 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Mon, 25 May 2020 08:11:37 +0100 Subject: [PATCH 08/12] Update apps.json Updated version number --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index b5aa8e677..6f7ae51cc 100644 --- a/apps.json +++ b/apps.json @@ -1778,7 +1778,7 @@ "name": "Binary Clock", "shortName":"Binary Clock", "icon": "app.png", - "version":"0.01", + "version":"0.02", "description": "A binary clock with hours and minutes. BTN1 toggles a digital clock.", "tags": "", "storage": [ From add29aa7621a17cfbbd9fd62ab58243ff787cf93 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Mon, 25 May 2020 08:12:45 +0100 Subject: [PATCH 09/12] Update ChangeLog --- apps/binclock/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/binclock/ChangeLog b/apps/binclock/ChangeLog index 5560f00bc..2378e52f8 100644 --- a/apps/binclock/ChangeLog +++ b/apps/binclock/ChangeLog @@ -1 +1,2 @@ 0.01: New App! +0.02: Fixed bug where screen didn't clear so incorrect time displayed. From 89e76e3898a1d4722c99f97ddf60593c243e3f20 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Mon, 25 May 2020 08:15:52 +0100 Subject: [PATCH 10/12] Update apps.json --- apps.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 6f7ae51cc..f6a938cea 100644 --- a/apps.json +++ b/apps.json @@ -1780,7 +1780,8 @@ "icon": "app.png", "version":"0.02", "description": "A binary clock with hours and minutes. BTN1 toggles a digital clock.", - "tags": "", + "tags": "clock,binary", + "type": "clock", "storage": [ {"name":"binclock.app.js","url":"app.js"}, {"name":"binclock.img","url":"app-icon.js","evaluate":true} From bd9d3b0ac7d28a574217a08d9c132dcdce941a08 Mon Sep 17 00:00:00 2001 From: Taffaz Date: Mon, 25 May 2020 08:55:00 +0100 Subject: [PATCH 11/12] Update app.js --- apps/binclock/app.js | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/apps/binclock/app.js b/apps/binclock/app.js index 3bff281bf..08c2712b7 100644 --- a/apps/binclock/app.js +++ b/apps/binclock/app.js @@ -5,6 +5,8 @@ const X = 180, Y = 180; var displayTime = 0; var minuteLED = [0,0,0,0,0,0]; var hourLED = [0,0,0,0,0]; +var prevMinute = [0,0,0,0,0,0]; +var prevHour = [0,0,0,0,0]; function drawTime() { @@ -23,6 +25,11 @@ function drawTime() { function updateHourArray(hours){ + var j; + for(j=0;j Date: Mon, 25 May 2020 09:02:06 +0100 Subject: [PATCH 12/12] Update app.js --- apps/binclock/app.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/binclock/app.js b/apps/binclock/app.js index 08c2712b7..65ada5ff3 100644 --- a/apps/binclock/app.js +++ b/apps/binclock/app.js @@ -1,7 +1,7 @@ // Load fonts require("Font7x11Numeric7Seg").add(Graphics); // position on screen -const X = 180, Y = 180; +const X = 160, Y = 180; var displayTime = 0; var minuteLED = [0,0,0,0,0,0]; var hourLED = [0,0,0,0,0]; @@ -9,9 +9,8 @@ var prevMinute = [0,0,0,0,0,0]; var prevHour = [0,0,0,0,0]; -function drawTime() { +function drawTime(d) { // work out how to display the current time - var d = new Date(); var h = d.getHours(), m = d.getMinutes(); var time = (" "+h).substr(-2) + ":" + ("0"+m).substr(-2); // draw the current time (4x size 7 segment) @@ -145,7 +144,7 @@ function draw(){ g.drawString(dateStr, g.getWidth()/2, 130, true /*clear background*/); if(displayTime){ - drawTime(); + drawTime(d); }else{ g.clearRect(0,240,240,130); }