Sweep hand now red

pull/696/head
adrian w kirk 2021-03-07 00:31:23 +00:00
parent 9c2aa52e59
commit cc68a1be1c
2 changed files with 16 additions and 13 deletions

View File

@ -229,7 +229,7 @@
{ "id": "sweepclock", { "id": "sweepclock",
"name": "Sweep Clock", "name": "Sweep Clock",
"icon": "sweepclock.png", "icon": "sweepclock.png",
"version":"0.01", "version":"0.02",
"description": "Smooth sweep secondhand with single hour numeral", "description": "Smooth sweep secondhand with single hour numeral",
"tags": "clock", "tags": "clock",
"type":"clock", "type":"clock",

View File

@ -4,13 +4,13 @@ const screen_center_y = g.getHeight()/2;
require("FontCopasetic40x58Numeric").add(Graphics); require("FontCopasetic40x58Numeric").add(Graphics);
class Hand { class Hand {
constructor(centerX, constructor(centerX,
centerY, centerY,
length, length,
tolerance, tolerance,
draw_test, draw_test,
red, red,
green, green,
blue){ blue){
this.centerX = centerX; this.centerX = centerX;
this.centerY = centerY; this.centerY = centerY;
@ -131,17 +131,18 @@ class ThickHand {
} }
} }
let force_redraw = false;
let seconds_hand = new Hand(screen_center_x, let seconds_hand = new Hand(screen_center_x,
screen_center_y, screen_center_y,
100, 100,
0, 0,
(angle, last_draw_time) => false, (angle, last_draw_time) => false,
0.5,0.5,0.5); 1.0,0.0,0.0);
let minutes_hand_redraw = function(angle, last_draw_time){ let minutes_hand_redraw = function(angle, last_draw_time){
return seconds_hand.angle > angle && return force_redraw || (seconds_hand.angle > angle &&
Math.abs(seconds_hand.angle - angle) <2*Math.PI/25 && Math.abs(seconds_hand.angle - angle) <2*Math.PI/25 &&
new Date().getTime() - last_draw_time.getTime() > 500; new Date().getTime() - last_draw_time.getTime() > 500);
}; };
let minutes_hand = new Hand(screen_center_x, let minutes_hand = new Hand(screen_center_x,
@ -152,9 +153,9 @@ let minutes_hand = new Hand(screen_center_x,
1.0,1.0,1.0); 1.0,1.0,1.0);
let hour_hand_redraw = function(angle_from, angle_to, last_draw_time){ let hour_hand_redraw = function(angle_from, angle_to, last_draw_time){
return seconds_hand.angle >= angle_from && return force_redraw || (seconds_hand.angle >= angle_from &&
seconds_hand.angle <= angle_to && seconds_hand.angle <= angle_to &&
new Date().getTime() - last_draw_time.getTime() > 500; new Date().getTime() - last_draw_time.getTime() > 500);
}; };
let hours_hand = new ThickHand(screen_center_x, let hours_hand = new ThickHand(screen_center_x,
screen_center_y, screen_center_y,
@ -171,6 +172,7 @@ function draw_clock(){
draw_seconds(date); draw_seconds(date);
draw_mins(date); draw_mins(date);
draw_hours(date); draw_hours(date);
force_redraw = false;
} }
function draw_seconds(date){ function draw_seconds(date){
@ -244,7 +246,7 @@ function clearTimers(){
} }
function startTimers(){ function startTimers(){
setTimeout(scheduleDrawClock,1000); setTimeout(scheduleDrawClock,100);
draw_clock(); draw_clock();
} }
@ -256,6 +258,7 @@ function scheduleDrawClock(){
function reset_clock(){ function reset_clock(){
g.clear(); g.clear();
force_redraw = true;
} }
Bangle.on('lcdPower', (on) => { Bangle.on('lcdPower', (on) => {