From 73bd8e5b17efe5f6467647519f3b1eeea96ba58c Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 13 Jan 2022 09:21:33 +0000 Subject: [PATCH] add accelgraph --- apps.json | 20 +++++++++++++++++--- apps/accelgraph/ChangeLog | 1 + apps/accelgraph/app-icon.js | 1 + apps/accelgraph/app.js | 24 ++++++++++++++++++++++++ apps/accelgraph/app.png | Bin 0 -> 944 bytes apps/accelgraph/screenshot.png | Bin 0 -> 3737 bytes 6 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 apps/accelgraph/ChangeLog create mode 100644 apps/accelgraph/app-icon.js create mode 100644 apps/accelgraph/app.js create mode 100644 apps/accelgraph/app.png create mode 100644 apps/accelgraph/screenshot.png diff --git a/apps.json b/apps.json index 4c6f3bdcf..36c770e00 100644 --- a/apps.json +++ b/apps.json @@ -102,7 +102,7 @@ "version": "0.06", "description": "Display notifications/music/etc sent from the Gadgetbridge app on Android. This replaces the old 'Gadgetbridge' Bangle.js widget.", "icon": "app.png", - "tags": "tool,system,messages,notifications", + "tags": "tool,system,messages,notifications,gadgetbridge", "dependencies": {"messages":"app"}, "supports": ["BANGLEJS","BANGLEJS2"], "readme": "README.md", @@ -309,7 +309,7 @@ "description": "(NOT RECOMMENDED) Displays Gadgetbridge notifications from Android. Please use the 'Android' Bangle.js app instead.", "icon": "app.png", "type": "widget", - "tags": "tool,system,android,widget", + "tags": "tool,system,android,widget,gadgetbridge", "supports": ["BANGLEJS","BANGLEJS2"], "dependencies": {"notify":"type"}, "readme": "README.md", @@ -326,7 +326,7 @@ "version":"0.01", "description": "Debug info for Gadgetbridge. Run this app and when Gadgetbridge messages arrive they are displayed on-screen.", "icon": "app.png", - "tags": "", + "tags": "tool,debug,gadgetbridge", "supports" : ["BANGLEJS2"], "readme": "README.md", "storage": [ @@ -3008,6 +3008,20 @@ ], "data": [{"wildcard":"accellog.?.csv"}] }, + { "id": "accelgraph", + "name": "Accelerometer Graph", + "shortName":"Accel Graph", + "version":"0.01", + "description": "A simple app to draw a graph of data from the accelerometer on the screen", + "icon": "app.png", + "tags": "tool,debug", + "supports" : ["BANGLEJS","BANGLEJS2"], + "screenshots": [{"url":"bangle1-counter-screenshot.png"}], + "storage": [ + {"name":"accelgraph.app.js","url":"app.js"}, + {"name":"accelgraph.img","url":"app-icon.js","evaluate":true} + ] + }, { "id": "cprassist", "name": "CPR Assist", diff --git a/apps/accelgraph/ChangeLog b/apps/accelgraph/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/accelgraph/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/accelgraph/app-icon.js b/apps/accelgraph/app-icon.js new file mode 100644 index 000000000..d45b8cc63 --- /dev/null +++ b/apps/accelgraph/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEw4UA/4AB304ief85L/ABNVAAwKCgILHoALBgoLHqALOrVVr4BEBZIFBBYiaCAAPq2oLQEYlqF5VrBZWnBZWvBZNWz4LGBoQLHJ4O///6v/1BZHa/4LFLYOlr9pR49r1ILJ09qr4ZBBY2vrWdBY5PBq2uyoLIquqBY5bBKoZTFLYILJJ4STDBY77IJ4QLUJ4QLU1QAE0oLPqoAGBZ0BBY9ABYMABY4KCAH4AGA=")) diff --git a/apps/accelgraph/app.js b/apps/accelgraph/app.js new file mode 100644 index 000000000..a59d636d2 --- /dev/null +++ b/apps/accelgraph/app.js @@ -0,0 +1,24 @@ +Bangle.loadWidgets(); +g.clear(1); +Bangle.drawWidgets(); +var R = Bangle.appRect; + +var x = 0; +var last; + +function getY(v) { + return (R.y+R.y2 + v*R.h/2)/2; +} +Bangle.on('accel', a => { + g.reset(); + if (last) { + g.setColor("#f00").drawLine(x-1,getY(last.x),x,getY(a.x)); + g.setColor("#0f0").drawLine(x-1,getY(last.y),x,getY(a.y)); + g.setColor("#00f").drawLine(x-1,getY(last.z),x,getY(a.z)); + } + last = a;x++; + if (x>=g.getWidth()) { + x = 1; + g.clearRect(R); + } +}); diff --git a/apps/accelgraph/app.png b/apps/accelgraph/app.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ba00ee7d21156b56f5587b3b796df877dc2cb8 GIT binary patch literal 944 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 TvV(ZMY{xRvH`6Q8!AJcM7Rt%z literal 0 HcmV?d00001