diff --git a/apps/stetho/stetho-icon.js b/apps/stetho/stetho-icon.js new file mode 100644 index 000000000..6057036c4 --- /dev/null +++ b/apps/stetho/stetho-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+64A/AAOzxNknVl1oLHnVexOzFrtlnU6i06Eg2JrwMBGAIxaLgYuBF5IMBAARiaKAYhK1pfDAAWJFy2tLoNkxOtQAJQIBYWtAYIwBZ4xeQFwR7RMoJgW2brBsqqTMAQvVRwLaUMARftrAvVX4bZTwdYwYvWryQTRwRFTSAZgBDSOtwdeLyxKDMCITBwReR2ez1oCBMAZ7QLwK9SE4NlsmJxIpCVYRgO1uCUSVlnQACFIIYBMCC9T2dkFwYACLQROCM4ZeKXqOJnUWAAItBmhhBMAggLLwOCXqKNBFoYACMAiABMBOtLyfXrwuGF4iBMLwWnFyAvBFwwvGcIQwGLwQKHX5ouFmiJBF4RgKLyoWBL47vCcYwIF05eU6+zxKRBLwodFGAgACFwLsSEAgwDrwuHWwYwBwenGoKNBF6owDrAuIGAYrCvgzBFy7jDryqLGAV8viTCFy7CBwZeBIB1804tYAAQvQSIJdZF6l8F9unF/4vPwYvtwQv/04vc1ovBD5gvv0+h0/RF7uCF5fR0+gF7vRwd8EBaOB0KOcEIV8SBReBRzxRDMBReC04udMAYwIL0QkDGAWt6IAC07sfGA+gE4IAD0JdBF8YwEAAhmCF0TnEFoS7iAE4=")) \ No newline at end of file diff --git a/apps/stetho/stetho.js b/apps/stetho/stetho.js new file mode 100644 index 000000000..84658e85f --- /dev/null +++ b/apps/stetho/stetho.js @@ -0,0 +1,74 @@ +Bangle.setLCDPower(1); +Bangle.setLCDTimeout(0); +Bangle.ioWr(0x80,0) +x=0; +var min=0,max=0; +var wasHigh = 0, wasLow = 0; +var lastHigh = getTime(); +var hrmList = []; +var hrm; + +function readHRM() { + var a = analogRead(D29); + var h = getTime(); + min=Math.min(min*0.97+a*0.03,a); + max=Math.max(max*0.97+a*0.03,a); + y = E.clip(170 - (a*960*4),100,230); + if (x==0) { + g.clearRect(0,100,239,239); + g.moveTo(-100,0); + } + /*g.setColor(0,1,0); + var z = 170 - (min*960*4); g.fillRect(x,z,x,z); + var z = 170 - (max*960*4); g.fillRect(x,z,x,z);*/ + g.setColor(1,1,1); + g.lineTo(x,y); + if ((max-min)>0.005) { + if (4*a > (min+3*max)) { // high + g.setColor(1,0,0); + g.fillRect(x,230,x,239); + g.setColor(1,1,1); + if (!wasHigh && wasLow) { + var currentHrm = 60/(h-lastHigh); + lastHigh = h; + if (currentHrm<250) { + while (hrmList.length>12) hrmList.shift(); + hrmList.push(currentHrm); + // median filter + var t = hrmList.slice(); // copy + t.sort(); + // average the middle 3 + var mid = t.length>>1; + if (mid+2239)x=0; +} + +setInterval(readHRM,50); diff --git a/apps/stetho/stetho.json b/apps/stetho/stetho.json new file mode 100644 index 000000000..239fffb68 --- /dev/null +++ b/apps/stetho/stetho.json @@ -0,0 +1,5 @@ +{ + "name":"Stethoscope","type":"app", + "icon":"*stetho", + "src":"-stetho" +} diff --git a/apps/stetho/stetho.png b/apps/stetho/stetho.png new file mode 100644 index 000000000..c0f183d96 Binary files /dev/null and b/apps/stetho/stetho.png differ