From 16a25f245a0af695b42268af419346b1e1d18897 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 Aug 2025 15:16:01 +0100 Subject: [PATCH] recorder 0.48: Add ability to log average acceleration values --- apps/recorder/ChangeLog | 3 ++- apps/recorder/README.md | 1 + apps/recorder/lib.js | 22 ++++++++++++++++++++++ apps/recorder/metadata.json | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/apps/recorder/ChangeLog b/apps/recorder/ChangeLog index f5c0803bb..8042370f9 100644 --- a/apps/recorder/ChangeLog +++ b/apps/recorder/ChangeLog @@ -60,4 +60,5 @@ Lower accuracy of barometer data to ~1cm (saves about 15b/record) 0.47: Fix 'blip' on speed map on some recordings Ensure Battery voltage is only stored to 0.01v - Add graphs for Steps+Battery \ No newline at end of file + Add graphs for Steps+Battery +0.48: Add ability to log average acceleration values \ No newline at end of file diff --git a/apps/recorder/README.md b/apps/recorder/README.md index f24d6d5fb..52e598d93 100644 --- a/apps/recorder/README.md +++ b/apps/recorder/README.md @@ -19,6 +19,7 @@ You can record * **BAT** Battery percentage and voltage * **Steps** Steps counted by the step counter * **Baro** (Bangle.js 2) Using the built-in barometer to record Temperature, Pressure and Altitude +* **Accel** Average acceleration values in X,Y and Z * **Core** CoreTemp body temperature *if* you have a CoreTemp device and the https://banglejs.com/apps/?id=coretemp app installed You can then start/stop recording from the Recorder app itself (and as long as widgets are diff --git a/apps/recorder/lib.js b/apps/recorder/lib.js index b0f05ead4..6d17c3942 100644 --- a/apps/recorder/lib.js +++ b/apps/recorder/lib.js @@ -114,6 +114,28 @@ exports.getRecorders = function() { stop : () => {}, draw : (x,y) => g.reset().drawImage(atob("DAwBAAMMeeeeeeeecOMMAAMMMMAA"),x,y) }; + }, + accel:function() { + var ax=0,ay=0,az=0,n=0; + function onAccel(a) { + ax += a.x; + ay += a.y; + az += a.z; + n++; + } + return { + name : "Accel", + fields : ["Accel X", "Accel Y", "Accel Z"], + getValues : () => { + if (n<1) n=1; + var r = [(ax/n).toFixed(2), (ay/n).toFixed(2), (az/n).toFixed(2)]; + n = ax = ay = az = 0; + return r; + }, + start : () => { Bangle.on('accel', onAccel); }, + stop : () => { Bangle.removeListener('accel', onAccel); }, + draw : (x,y) => g.reset().drawImage(atob("DAwBAAMMeeeeeeeecOMMAAMMMMAA"),x,y) + }; } }; if (Bangle.getPressure){ diff --git a/apps/recorder/metadata.json b/apps/recorder/metadata.json index 2d7e54bdd..7d8251a6c 100644 --- a/apps/recorder/metadata.json +++ b/apps/recorder/metadata.json @@ -2,7 +2,7 @@ "id": "recorder", "name": "Recorder", "shortName": "Recorder", - "version": "0.47", + "version": "0.48", "description": "Record GPS position, heart rate and more in the background, then download to your PC.", "icon": "app.png", "tags": "tool,outdoors,gps,widget,clkinfo",