Add files via upload

Added night mode
master
yngv27 2020-07-17 14:58:08 -04:00 committed by GitHub
parent 229fd1c672
commit 8babc1ecf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 54 additions and 43 deletions

View File

@ -1,4 +1,3 @@
g.clear(); g.clear();
require("Font8x12").add(Graphics); require("Font8x12").add(Graphics);
@ -9,7 +8,11 @@ let stepCounter = 0;
let msgs = require("Storage").readJSON('yngv27.msgs.json'); let msgs = require("Storage").readJSON('yngv27.msgs.json');
let alarms = require("Storage").readJSON('yngv27.alarm.json'); let alarms = require("Storage").readJSON('yngv27.alarm.json');
let alarming = false;
let nightMode = false;
function showMsg(msg) { function showMsg(msg) {
alarming = true;
g.setFontAlign(0,-1); g.setFontAlign(0,-1);
g.setColor(1,1,1); g.setColor(1,1,1);
g.drawString("<< ALARM >>", 120, 180, true); g.drawString("<< ALARM >>", 120, 180, true);
@ -214,9 +217,7 @@ let points5 = [
79, 0, 79, 0,
]; ];
function drawPoints(points, x0, y0) { function drawPoints(points, x0, y0) {
let x = points[0]*xs+x0, y = points[1]*ys+y0; let x = points[0]*xs+x0, y = points[1]*ys+y0;
//g.drawEllipse(x-2, y-2, x+2, y+2); //g.drawEllipse(x-2, y-2, x+2, y+2);
g.moveTo(x, y); g.moveTo(x, y);
@ -228,13 +229,14 @@ function drawPoints(points, x0, y0) {
} }
} }
/* create 5 from 2 , and 9 from 6 */ /* create 5 from 2 */
/* nope, we have a better 5; less authentic, but whatev /* uncomment if you want the 5 to look more authentic (but uglier)
for (let idx=0; idx*2 < points2.length; idx++) { for (let idx=0; idx*2 < points2.length; idx++) {
points5[idx*2] = points2[idx*2]; points5[idx*2] = points2[idx*2];
points5[idx*2+1] = 99-points2[idx*2+1]; points5[idx*2+1] = 99-points2[idx*2+1];
} }
*/ */
/* create 9 from 6 */
for (let idx=0; idx*2 < points6.length; idx++) { for (let idx=0; idx*2 < points6.length; idx++) {
points9[idx*2] = 79-points6[idx*2]; points9[idx*2] = 79-points6[idx*2];
points9[idx*2+1] = 99-points6[idx*2+1]; points9[idx*2+1] = 99-points6[idx*2+1];
@ -243,10 +245,13 @@ for (let idx=0; idx*2 < points6.length; idx++) {
pointsArray = [points0, points1, points2, points3, points4, points5, points6, points7, points8, points9]; pointsArray = [points0, points1, points2, points3, points4, points5, points6, points7, points8, points9];
function eraseDigit(d, x, y) { function eraseDigit(d, x, y) {
// first time draw
if(d < 0) return; if(d < 0) return;
g.setColor("#000000"); g.setColor("#000000");
drawPoints(pointsArray[d], x-2, y-2); if(nightMode) {
drawPoints(pointsArray[d], x, y);
return;
}
drawPoints(pointsArray[d], x-2, y-2);
drawPoints(pointsArray[d], x+2, y-2); drawPoints(pointsArray[d], x+2, y-2);
drawPoints(pointsArray[d], x-2, y+2); drawPoints(pointsArray[d], x-2, y+2);
drawPoints(pointsArray[d], x+2, y+2); drawPoints(pointsArray[d], x+2, y+2);
@ -257,13 +262,14 @@ function eraseDigit(d, x, y) {
} }
function drawDigit(d, x, y) { function drawDigit(d, x, y) {
//g.drawEllipse(20+4*xs, 20, 20+(72 * xs), 20+(40*ys)); if(nightMode) {
//g.drawEllipse(20, 20+(40*ys), 20+(80 * xs), 20+(99*ys)); g.setColor("#206040");
//g.drawEllipse(20, 20, 20+(79 * xs), 20+(99*ys)); drawPoints(pointsArray[d], x, y);
return;
}
g.setColor("#202020"); g.setColor("#202020");
for (let idx = pointsArray.length - 1; idx >= 0 ; idx--) { for (let idx = pointsArray.length - 1; idx >= 0 ; idx--) {
if(idx == d) { if(idx == d) {
g.setColor("#FF0000"); g.setColor("#FF0000");
drawPoints(pointsArray[d], x-2, y-2); drawPoints(pointsArray[d], x-2, y-2);
drawPoints(pointsArray[d], x+2, y-2); drawPoints(pointsArray[d], x+2, y-2);
@ -274,7 +280,7 @@ function drawDigit(d, x, y) {
drawPoints(pointsArray[d], x+1, y-1); drawPoints(pointsArray[d], x+1, y-1);
drawPoints(pointsArray[d], x-1, y+1); drawPoints(pointsArray[d], x-1, y+1);
drawPoints(pointsArray[d], x+1, y+1); drawPoints(pointsArray[d], x+1, y+1);
g.setColor("#FFC000"); g.setColor("#FFC000");
drawPoints(pointsArray[d], x, y); drawPoints(pointsArray[d], x, y);
@ -283,12 +289,11 @@ function drawDigit(d, x, y) {
drawPoints(pointsArray[idx], x, y); drawPoints(pointsArray[idx], x, y);
} }
} }
} }
function drawTime() { function drawTime() {
const mstr="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"; const mstr="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";
let d = new Date(); let d = new Date();
let hour = d.getHours(); let hour = d.getHours();
let minute = d.getMinutes(); let minute = d.getMinutes();
@ -303,7 +308,7 @@ function drawTime() {
if(h1 == prevH1 && h2 == prevH2 && m1 == prevM1 && m2 == prevM2) { if(h1 == prevH1 && h2 == prevH2 && m1 == prevM1 && m2 == prevM2) {
return; return;
} }
if(h1 != prevH1) { if(h1 != prevH1) {
eraseDigit(prevH1, 10, 80); eraseDigit(prevH1, 10, 80);
drawDigit(h1, 10, 80); drawDigit(h1, 10, 80);
@ -315,32 +320,47 @@ function drawTime() {
if(m1 != prevM1) { if(m1 != prevM1) {
eraseDigit(prevM1, 135, 80); eraseDigit(prevM1, 135, 80);
drawDigit(m1, 135, 80); drawDigit(m1, 135, 80);
} }
if(m2 != prevM2) { if(m2 != prevM2) {
eraseDigit(prevM2, 190, 80); eraseDigit(prevM2, 190, 80);
drawDigit(m2, 190, 80); drawDigit(m2, 190, 80);
} }
if(!nightMode) {
g.setColor("#000000"); g.setColor("#000000");
g.fillRect(0, 10, 240, 24); g.fillRect(0, 10, 240, 24);
g.fillRect(0, 222, 240, 240); g.fillRect(0, 222, 240, 240);
g.setColor("#202020"); g.setColor("#202020");
g.drawLine(0, 24, 239, 24); g.drawLine(0, 24, 239, 24);
g.drawLine(0, 226, 239, 226); g.drawLine(0, 226, 239, 226);
g.setColor("#C06000"); g.setColor("#C06000");
g.setFontAlign(0, -1); g.setFontAlign(0, -1);
g.drawString(mstr.slice(month*3,month*3+3) + " " + date, 120, 10); g.drawString(mstr.slice(month*3,month*3+3) + " " + date, 120, 10);
g.setFontAlign(-1,-1); g.setFontAlign(-1,-1);
g.drawString("STEP " + stepCounter, 0, 230); g.drawString("STEP " + stepCounter, 0, 230);
g.setFontAlign(1,-1); g.setFontAlign(1,-1);
g.drawString("BTY "+E.getBattery(), 240, 230); g.drawString("BTY "+E.getBattery(), 240, 230);
}
prevH1 = h1; prevH1 = h1;
prevH2 = h2; prevH2 = h2;
prevM1 = m1; prevM1 = m1;
prevM2 = m2; prevM2 = m2;
}
function btn1Func() {
if(alarming) {
alarming = false;
} else {
nightMode = !nightMode;
g.setRotation(nightMode ? 1 : 0, 0);
}
g.clear();
prevH1 = -1;
prevH2 = -1;
prevM1 = -1;
prevM2 = -1;
drawTime();
} }
function stop () { function stop () {
@ -353,7 +373,6 @@ function start () {
if (interval) { if (interval) {
clearInterval(interval); clearInterval(interval);
} }
// first time init
interval = setInterval(drawTime, 10000); interval = setInterval(drawTime, 10000);
drawTime(); drawTime();
} }
@ -369,14 +388,6 @@ Bangle.on('lcdPower', function (on) {
} }
}); });
function btn1Func() {
g.clear();
prevH1 = -1;
prevH2 = -1;
prevM1 = -1;
prevM2 = -1;
drawTime();
}
function btn3Func() { function btn3Func() {
showMsg("This is a test message"); showMsg("This is a test message");