diff --git a/apps/hrrawexp/app.js b/apps/hrrawexp/app.js new file mode 100644 index 000000000..f78d3fbf6 --- /dev/null +++ b/apps/hrrawexp/app.js @@ -0,0 +1,97 @@ +var counter = 1; +var logging_started; +var interval; +var value; + +var file = require("Storage").open("hrm_log.csv", "w"); +file.write(""); + +file = require("Storage").open("hrm_log.csv", "a"); + +function update_timer() { + g.clear(); + g.setColor("#00ff7f"); + g.setFont("6x8", 4); + g.setFontAlign(0, 0); // center font + + g.drawString(counter, 120, 120); + g.setFont("6x8", 2); + g.setFontAlign(-1, -1); + g.drawString("-", 220, 200); + g.drawString("+", 220, 40); + g.drawString("GO", 210, 120); + + g.setColor("#ffffff"); + g.setFontAlign(0, 0); // center font + g.drawString("Timer (minutes)", 120, 90); + + g.setFont("6x8", 4); // bitmap font, 8x magnified + + if (!logging_started) + g.flip(); +} + +function btn1Pressed() { + if (!logging_started) { + if (counter < 60) + counter += 1; + else + counter = 1; + update_timer(); + } +} + +function btn3Pressed() { + if (!logging_started) { + if (counter > 1) + counter -= 1; + else + counter = 60; + update_timer(); + } +} + +function btn2Pressed() { + launchtime = 0 | getTime(); + file.write(launchtime + "," + "\n"); + logging_started = true; + counter = counter * 60; + interval = setInterval(countDown, 1000); + Bangle.setHRMPower(1); +} + +function fmtMSS(e) { + var m = Math.floor(e % 3600 / 60).toString().padStart(2, '0'), + s = Math.floor(e % 60).toString().padStart(2, '0'); + return m + ':' + s; +} + +function countDown() { + g.clear(); + counter--; + if (counter == 0) { + Bangle.setHRMPower(0); + clearInterval(interval); + g.drawString("Finished", g.getWidth() / 2, g.getHeight() / 2); + Bangle.buzz(500, 1); + } + else + g.drawString(fmtMSS(counter), g.getWidth() / 2, g.getHeight() / 2); +} + +update_timer(); + +setWatch(btn1Pressed, BTN1, { repeat: true }); +setWatch(btn2Pressed, BTN2, { repeat: true }); +setWatch(btn3Pressed, BTN3, { repeat: true }); + +Bangle.on('HRM', function (hrm) { + for (let i = 0; i < hrm.raw.length; i++) { + value = hrm.raw[i]; + if (value < -2) + value = -2; + if (value > 6) + value = 6; + file.write(value + "," + "\n"); + } +});