First atempt to HR indication
parent
6624b1c451
commit
a7305dc947
|
|
@ -4,6 +4,14 @@
|
||||||
var hours;
|
var hours;
|
||||||
var date;
|
var date;
|
||||||
var first = true;
|
var first = true;
|
||||||
|
var locale = require('locale');
|
||||||
|
var _12hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"] || false;
|
||||||
|
|
||||||
|
//HR variables
|
||||||
|
var color="#FF0000";
|
||||||
|
var id=0;
|
||||||
|
var size=10;
|
||||||
|
var grow=true;
|
||||||
|
|
||||||
const screen = {
|
const screen = {
|
||||||
width: g.getWidth(),
|
width: g.getWidth(),
|
||||||
|
|
@ -41,17 +49,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
const dateStr = function (date) {
|
const dateStr = function (date) {
|
||||||
day = date.getDate();
|
return locale.date(new Date(), 1);
|
||||||
month = date.getMonth();
|
|
||||||
year = date.getFullYear();
|
|
||||||
if (day < 10) {
|
|
||||||
day = "0" + day;
|
|
||||||
}
|
|
||||||
if (month < 10) {
|
|
||||||
month = "0" + month;
|
|
||||||
}
|
|
||||||
|
|
||||||
return year + "-" + month + "-" + day;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getArcXY = function (centerX, centerY, radius, angle) {
|
const getArcXY = function (centerX, centerY, radius, angle) {
|
||||||
|
|
@ -72,7 +70,7 @@
|
||||||
//g.setPixel(r[0],r[1]);
|
//g.setPixel(r[0],r[1]);
|
||||||
g.drawLine(r1[0], r1[1], r2[0], r2[1]);
|
g.drawLine(r1[0], r1[1], r2[0], r2[1]);
|
||||||
g.setColor('#333333');
|
g.setColor('#333333');
|
||||||
g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width-4)
|
g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width - 4)
|
||||||
};
|
};
|
||||||
|
|
||||||
const drawSecArc = function (sections, color) {
|
const drawSecArc = function (sections, color) {
|
||||||
|
|
@ -84,7 +82,7 @@
|
||||||
//g.setPixel(r[0],r[1]);
|
//g.setPixel(r[0],r[1]);
|
||||||
g.drawLine(r1[0], r1[1], r2[0], r2[1]);
|
g.drawLine(r1[0], r1[1], r2[0], r2[1]);
|
||||||
g.setColor('#333333');
|
g.setColor('#333333');
|
||||||
g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width-4)
|
g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width - 4)
|
||||||
};
|
};
|
||||||
|
|
||||||
const drawClock = function () {
|
const drawClock = function () {
|
||||||
|
|
@ -133,9 +131,29 @@
|
||||||
|
|
||||||
//Write the time as configured in the settings
|
//Write the time as configured in the settings
|
||||||
hours = currentTime.getHours();
|
hours = currentTime.getHours();
|
||||||
|
if (_12hour && hours > 13) {
|
||||||
|
hours = hours - 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
var meridian;
|
||||||
|
|
||||||
|
if (typeof locale.meridian === "function") {
|
||||||
|
meridian = locale.meridian(new Date());
|
||||||
|
} else {
|
||||||
|
meridian = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
var timestr;
|
||||||
|
|
||||||
|
if (meridian.length > 0 && _12hour) {
|
||||||
|
timestr = hours + " " + meridian;
|
||||||
|
} else {
|
||||||
|
timestr = hours;
|
||||||
|
}
|
||||||
|
|
||||||
g.setColor(settings.time.color);
|
g.setColor(settings.time.color);
|
||||||
g.setFont(settings.time.font, settings.time.size);
|
g.setFont(settings.time.font, settings.time.size);
|
||||||
g.drawString(hours, settings.time.center, settings.time.middle);
|
g.drawString(timestr, settings.time.center, settings.time.middle);
|
||||||
|
|
||||||
//Write the date as configured in the settings
|
//Write the date as configured in the settings
|
||||||
g.setColor(settings.date.color);
|
g.setColor(settings.date.color);
|
||||||
|
|
@ -147,15 +165,57 @@
|
||||||
if (on) drawClock();
|
if (on) drawClock();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//setInterval for HR visualisation
|
||||||
|
const newBeats = function (hr) {
|
||||||
|
if (id != 0) {
|
||||||
|
changeInterval(id, 6e3 / hr.bpm);
|
||||||
|
} else {
|
||||||
|
id = setInterval(drawHR, 6e3 / hr.bpm);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//visualize HR with circles pulsating
|
||||||
|
const drawHR = function (hr) {
|
||||||
|
if (grow && size < 12) {
|
||||||
|
size++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!grow && size > 3) {
|
||||||
|
size--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == 12 || size == 3) {
|
||||||
|
grow = !grow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (grow) {
|
||||||
|
color = "#f0af00";
|
||||||
|
g.setColor(color);
|
||||||
|
g.fillCircle(settings.circle.center, settings.circle.middle, size);
|
||||||
|
} else {
|
||||||
|
color = "#000000";
|
||||||
|
g.setColor(color);
|
||||||
|
g.drawCircle(settings.circle.center, settings.circle.middle, size);
|
||||||
|
}
|
||||||
|
print(size);
|
||||||
|
};
|
||||||
|
|
||||||
// clean app screen
|
// clean app screen
|
||||||
g.clear();
|
g.clear();
|
||||||
g.setFontAlign( 0, 0, 0);
|
g.setFontAlign(0, 0, 0);
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
|
|
||||||
// refesh every 30 sec
|
// refesh every 30 sec
|
||||||
setInterval(drawClock, 1E3);
|
setInterval(drawClock, 1E3);
|
||||||
|
|
||||||
|
//start HR monitor and draw heart rate
|
||||||
|
Bangle.setHRMPower(1);
|
||||||
|
Bangle.on('HRM', function (d) {
|
||||||
|
newBeats(d);
|
||||||
|
});
|
||||||
|
|
||||||
// draw now
|
// draw now
|
||||||
drawClock();
|
drawClock();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue