mirror of https://github.com/espruino/BangleApps
Removed debug outputs, fixed rendering for upper limit, improved rendering for +/- icons, changelog version order fixed
parent
d4ab3c075d
commit
72d389e1da
|
@ -867,7 +867,7 @@
|
|||
{ "id": "wohrm",
|
||||
"name": "Workout HRM",
|
||||
"icon": "app.png",
|
||||
"version":"0.05",
|
||||
"version":"0.06",
|
||||
"description": "Workout heart rate monitor notifies you with a buzz if your heart rate goes above or below the set limits.",
|
||||
"tags": "hrm,workout",
|
||||
"type": "app",
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
0.05: Improved buzz timing and rendering
|
||||
0.04: Only buzz on high confidence (>85%)
|
||||
0.03: Optimized rendering for the background
|
||||
0.02: Adapted to new App code layout
|
||||
0.01: Only tested on the emulator.
|
||||
0.02: Adapted to new App code layout
|
||||
0.03: Optimized rendering for the background
|
||||
0.04: Only buzz on high confidence (>85%)
|
||||
0.05: Improved buzz timing and rendering
|
||||
0.06: Removed debug outputs, fixed rendering for upper limit, improved rendering for +/- icons, changelog version order fixed
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/* eslint-disable no-undef */
|
||||
const Setter = {
|
||||
NONE: "none",
|
||||
UPPER: 'upper',
|
||||
LOWER: 'lower'
|
||||
NONE: "none",
|
||||
UPPER: 'upper',
|
||||
LOWER: 'lower'
|
||||
};
|
||||
|
||||
const shortBuzzTimeInMs = 80;
|
||||
|
@ -100,7 +100,7 @@ function renderUpperLimit() {
|
|||
g.setColor(255,255,255);
|
||||
}
|
||||
g.setFontVector(13);
|
||||
g.drawString("Upper : " + upperLimit, 130,50);
|
||||
g.drawString("Upper: " + upperLimit, 125, 50);
|
||||
|
||||
upperLimitChanged = false;
|
||||
}
|
||||
|
@ -134,7 +134,7 @@ function renderLowerLimit() {
|
|||
g.setColor(255,255,255);
|
||||
}
|
||||
g.setFontVector(13);
|
||||
g.drawString("Lower : " + lowerLimit, 20,190);
|
||||
g.drawString("Lower: " + lowerLimit, 20,190);
|
||||
|
||||
lowerLimitChanged = false;
|
||||
}
|
||||
|
@ -158,38 +158,47 @@ function renderConfidenceBars(){
|
|||
confidenceChanged = false;
|
||||
}
|
||||
|
||||
function renderButtonIcons() {
|
||||
g.setColor(255,255,255);
|
||||
function renderPlusMinusIcons() {
|
||||
if (limitSetter === Setter.NONE) {
|
||||
g.setColor(0, 0, 0);
|
||||
} else {
|
||||
g.setColor(1, 1, 1);
|
||||
}
|
||||
|
||||
g.setFontVector(14);
|
||||
|
||||
//+ for Btn1
|
||||
g.drawString("+", 222,50);
|
||||
g.drawString("+", 222, 50);
|
||||
|
||||
//- for Btn3
|
||||
g.drawString("-", 222,165);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function renderHomeIcon() {
|
||||
//Home for Btn2
|
||||
g.setColor(1, 1, 1);
|
||||
g.drawLine(220, 118, 227, 110);
|
||||
g.drawLine(227, 110, 234, 118);
|
||||
|
||||
g.drawPoly([222,117,222,125,232,125,232,117], false);
|
||||
g.drawRect(226,120,229,125);
|
||||
|
||||
//- for Btn3
|
||||
g.drawString("-", 222,165);
|
||||
}
|
||||
|
||||
function buzz()
|
||||
{
|
||||
function buzz() {
|
||||
// Do not buzz if not confident
|
||||
if(hrConfidence < 85) { return; }
|
||||
|
||||
if(currentHeartRate > upperLimit)
|
||||
{
|
||||
Bangle.buzz(shortBuzzTimeInMs);
|
||||
setTimeout(() => { Bangle.buzz(shortBuzzTimeInMs); }, shortBuzzTimeInMs * 2);
|
||||
Bangle.buzz(shortBuzzTimeInMs);
|
||||
setTimeout(() => { Bangle.buzz(shortBuzzTimeInMs); }, shortBuzzTimeInMs * 2);
|
||||
}
|
||||
|
||||
if(currentHeartRate < lowerLimit)
|
||||
{
|
||||
Bangle.buzz(longBuzzTimeInMs);
|
||||
Bangle.buzz(longBuzzTimeInMs);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -209,51 +218,49 @@ function setLimitSetterToLower() {
|
|||
resetHighlightTimeout();
|
||||
|
||||
limitSetter = Setter.LOWER;
|
||||
console.log("Limit setter is lower");
|
||||
|
||||
upperLimitChanged = true;
|
||||
lowerLimitChanged = true;
|
||||
|
||||
renderUpperLimit();
|
||||
renderLowerLimit();
|
||||
renderPlusMinusIcons();
|
||||
}
|
||||
|
||||
function setLimitSetterToUpper() {
|
||||
resetHighlightTimeout();
|
||||
|
||||
limitSetter = Setter.UPPER;
|
||||
console.log("Limit setter is upper");
|
||||
|
||||
upperLimitChanged = true;
|
||||
lowerLimitChanged = true;
|
||||
|
||||
renderLowerLimit();
|
||||
renderUpperLimit();
|
||||
renderPlusMinusIcons();
|
||||
}
|
||||
|
||||
function setLimitSetterToNone() {
|
||||
limitSetter = Setter.NONE;
|
||||
console.log("Limit setter is none");
|
||||
|
||||
upperLimitChanged = true;
|
||||
lowerLimitChanged = true;
|
||||
|
||||
renderLowerLimit();
|
||||
renderUpperLimit();
|
||||
renderPlusMinusIcons();
|
||||
}
|
||||
|
||||
function incrementLimit(){
|
||||
function incrementLimit() {
|
||||
resetHighlightTimeout();
|
||||
|
||||
if (limitSetter === Setter.UPPER) {
|
||||
upperLimit++;
|
||||
renderUpperLimit();
|
||||
console.log("Upper limit: " + upperLimit);
|
||||
upperLimitChanged = true;
|
||||
} else if(limitSetter === Setter.LOWER) {
|
||||
lowerLimit++;
|
||||
renderLowerLimit();
|
||||
console.log("Lower limit: " + lowerLimit);
|
||||
lowerLimitChanged = true;
|
||||
}
|
||||
}
|
||||
|
@ -264,12 +271,10 @@ function decrementLimit(){
|
|||
if (limitSetter === Setter.UPPER) {
|
||||
upperLimit--;
|
||||
renderUpperLimit();
|
||||
console.log("Upper limit: " + upperLimit);
|
||||
upperLimitChanged = true;
|
||||
} else if(limitSetter === Setter.LOWER) {
|
||||
lowerLimit--;
|
||||
renderLowerLimit();
|
||||
console.log("Lower limit: " + lowerLimit);
|
||||
lowerLimitChanged = true;
|
||||
}
|
||||
}
|
||||
|
@ -293,8 +298,8 @@ Bangle.on('lcdPower', (on) => {
|
|||
g.clear();
|
||||
if (on) {
|
||||
Bangle.drawWidgets();
|
||||
renderButtonIcons();
|
||||
// call your app function here
|
||||
|
||||
renderHomeIcon();
|
||||
renderLowerLimitBackground();
|
||||
renderUpperLimitBackground();
|
||||
lowerLimitChanged = true;
|
||||
|
@ -317,7 +322,7 @@ Bangle.loadWidgets();
|
|||
Bangle.drawWidgets();
|
||||
//drawTrainingHeartRate();
|
||||
|
||||
renderButtonIcons();
|
||||
renderHomeIcon();
|
||||
renderLowerLimitBackground();
|
||||
renderUpperLimitBackground();
|
||||
|
||||
|
|
Loading…
Reference in New Issue