forked from FOSS/BangleApps
Merge pull request #56 from sebi5361/master
A simple clock using minimalistic 3x2 pixel numerical digitsmaster
commit
885d856b2b
13
apps.json
13
apps.json
|
@ -1,4 +1,15 @@
|
|||
[
|
||||
{ "id": "clck3x2",
|
||||
"name": "3x2 Pixel Clock",
|
||||
"icon": "clock3x2.png",
|
||||
"description": "This is a simple clock using minimalistic 3x2 pixel numerical digits",
|
||||
"tags": "clock",
|
||||
"storage": [
|
||||
{"name":"+clck3x2","url":"clock3x2.json"},
|
||||
{"name":"-clck3x2","url":"clock3x2.js"},
|
||||
{"name":"*clck3x2","url":"clock3x2-icon.js","evaluate":true}
|
||||
]
|
||||
},
|
||||
{ "id": "boot",
|
||||
"name": "Bootloader",
|
||||
"icon": "bootloader.png",
|
||||
|
@ -529,7 +540,7 @@
|
|||
{"name": "-pomodo","url": "pomodoro.js"},
|
||||
{"name": "*pomodo","url": "pomodoro-icon.js","evaluate": true}
|
||||
]
|
||||
},
|
||||
},
|
||||
{ "id": "blobclk",
|
||||
"name": "Large Digit Clock",
|
||||
"icon": "clock-blob.png",
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
require("heatshrink").decompress(atob("mEwgRC/AH4A/gED/k/5/wh/wgAFCBcg7NgAVBh/zDoYLkHaAFqAH4A/AH4AW"));
|
|
@ -0,0 +1,104 @@
|
|||
(function(){
|
||||
|
||||
const ox=10; // x offset
|
||||
const oy=80;
|
||||
const pw=20; // pixel width
|
||||
const ps=5; // pixel spacing
|
||||
const ds=10; // digit spacing
|
||||
const ms=20; // middle space
|
||||
|
||||
const x00=ox; // digit 0, pixel 0, x position
|
||||
const x01=x00+pw+ps;
|
||||
const x10=x01+pw+ds;
|
||||
const x11=x10+pw+ps;
|
||||
const x20=x11+pw+ms;
|
||||
const x21=x20+pw+ps;
|
||||
const x30=x21+pw+ds;
|
||||
const x31=x30+pw+ps;
|
||||
const xSpace=[[x00,x01], // all pixel x spacing
|
||||
[x10,x11],
|
||||
[x20,x21],
|
||||
[x30,x31]];
|
||||
|
||||
const y0=oy; // y spacing
|
||||
const y1=y0+pw+ps;
|
||||
const y2=y1+pw+ps;
|
||||
const ySpace=[y0, y1, y2];
|
||||
|
||||
const pixels = [[[0,0], // digit on/off pixels
|
||||
[1,1],
|
||||
[1,1]],
|
||||
[[0,1], // digit 1
|
||||
[0,1],
|
||||
[0,1]],
|
||||
[[0,1],
|
||||
[1,0],
|
||||
[1,1]],
|
||||
[[1,1],
|
||||
[0,1],
|
||||
[1,1]],
|
||||
[[1,0],
|
||||
[1,1],
|
||||
[0,1]],
|
||||
[[1,1],
|
||||
[1,0],
|
||||
[0,1]],
|
||||
[[1,0],
|
||||
[1,1],
|
||||
[1,1]],
|
||||
[[1,1],
|
||||
[0,1],
|
||||
[0,1]],
|
||||
[[1,1],
|
||||
[1,1],
|
||||
[1,1]],
|
||||
[[1,1],
|
||||
[1,1],
|
||||
[0,1]]];
|
||||
|
||||
let idTimeout = null;
|
||||
|
||||
function drawTime() {
|
||||
g.clear();
|
||||
drawWidgets();
|
||||
|
||||
let d = Date();
|
||||
let h = d.getHours();
|
||||
let m = d.getMinutes();
|
||||
let digits = [Math.floor(h/10), h%10, Math.floor(m/10), m%10]; // time digits
|
||||
|
||||
for (let id=0; id<4; id++){
|
||||
for (let xp=0; xp<2; xp++){
|
||||
for (let yp=0; yp<3; yp++){
|
||||
if (pixels[digits[id]][yp][xp]==1){
|
||||
g.fillRect(xSpace[id][xp], ySpace[yp], xSpace[id][xp]+pw, ySpace[yp]+pw);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let t = d.getSeconds()*1000 + d.getMilliseconds();
|
||||
let delta = (60000 - t) % 60000; // time till next minute
|
||||
idTimeout = setTimeout(drawTime, delta);
|
||||
}
|
||||
|
||||
Bangle.on('gesture', function(gesture) {
|
||||
if (gesture && !Bangle.isLCDOn()) {
|
||||
Bangle.setLCDPower(true);
|
||||
}
|
||||
});
|
||||
|
||||
// special function to handle display switch on
|
||||
Bangle.on('lcdPower', function(on){
|
||||
if (on) {
|
||||
drawTime();
|
||||
} else {
|
||||
if(idTimeout) {
|
||||
clearTimeout(idTimeout);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
drawTime();
|
||||
|
||||
})();
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"name":"Clock 3x2 Pix",
|
||||
"type":"clock",
|
||||
"icon":"*clck3x2",
|
||||
"src":"-clck3x2"
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 145 B |
Loading…
Reference in New Issue