From 45194a542868a4f83da98b73754e5925c72ec39c Mon Sep 17 00:00:00 2001 From: Ivor Hewitt Date: Mon, 13 Dec 2021 16:00:56 +0000 Subject: [PATCH] Add CoreTemp app --- apps.json | 15 +++++++++++++++ apps/coretemp/ChangeLog | 1 + apps/coretemp/boot.js | 23 +++++++++++++++++++++++ apps/coretemp/coretemp-icon.js | 1 + apps/coretemp/coretemp.js | 19 +++++++++++++++++++ apps/coretemp/coretemp.png | Bin 0 -> 4870 bytes 6 files changed, 59 insertions(+) create mode 100644 apps/coretemp/ChangeLog create mode 100644 apps/coretemp/boot.js create mode 100644 apps/coretemp/coretemp-icon.js create mode 100644 apps/coretemp/coretemp.js create mode 100644 apps/coretemp/coretemp.png diff --git a/apps.json b/apps.json index 2752e2a0f..95484dbe9 100644 --- a/apps.json +++ b/apps.json @@ -4931,5 +4931,20 @@ {"name":"awairmonitor.app.js","url":"app.js"}, {"name":"awairmonitor.img","url":"app-icon.js","evaluate":true} ] + }, + { + "id": "coretemp", + "name": "Core Temp Display", + "version": "0.01", + "description": "Display CoreTemp sensor data", + "icon": "coretemp.png", + "type": "app", + "tags": "health", + "supports": ["BANGLEJS","BANGLEJS2"], + "storage": [ + {"name":"coretemp.boot.js","url":"boot.js"}, + {"name":"coretemp.app.js","url":"coretemp.js"}, + {"name":"coretemp.img","url":"coretemp-icon.js","evaluate":true} + ] } ] diff --git a/apps/coretemp/ChangeLog b/apps/coretemp/ChangeLog new file mode 100644 index 000000000..c7b309a74 --- /dev/null +++ b/apps/coretemp/ChangeLog @@ -0,0 +1 @@ +0.1: New app diff --git a/apps/coretemp/boot.js b/apps/coretemp/boot.js new file mode 100644 index 000000000..59e227dad --- /dev/null +++ b/apps/coretemp/boot.js @@ -0,0 +1,23 @@ +(function() { + var gatt; + + //Would it be better to scan by uuid rather than name? + NRF.requestDevice({ timeout: 20000, filters: [{ name: 'CORE [a]' }] }).then(function(device) { + return device.gatt.connect(); + }).then(function(g) { + gatt = g; + return gatt.getPrimaryService("1809"); + }).then(function(service) { + return service.getCharacteristic("2A1C"); + }).then(function(characteristic) { + characteristic.on('characteristicvaluechanged', function(event) { + var dv = event.target.value; + var core = (dv.buffer[2]*256+dv.buffer[1])/100; + Bangle.emit('Core',{ + temp:core + }); + }); + return characteristic.startNotifications(); + }).then(function() { + }); +})(); diff --git a/apps/coretemp/coretemp-icon.js b/apps/coretemp/coretemp-icon.js new file mode 100644 index 000000000..051c6b953 --- /dev/null +++ b/apps/coretemp/coretemp-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("AAAAADgAAAAAADgAAAADxgDAAAH0zABgAAPAWAAwAB4AMDgYADAAIM4IAGABIYcAAIABIwMEAQABIwEEAwADIwAEBAA+IwEEDAB8IQMEGAHAIcYAGAAAIMQYGAQAMAAYEAwAGAAgAAwADABgIBgABgDEIBgAAP4wIDAAAPxgACAAAAOAACAAAAMDICAAAAADICAAAAADICAAAAADACAAAAADACAAAAYAICAAAAfgICAAAAf8IBAAAA/8IBgAABh8MAgAABgMMAAAABAEGAAAACAAGAGAAMAYDADAAIAQBAA4HIAgAAAACcAAAQAAAcBAAAAAAOHAAAAAAOGAAAAAAHwAABgAADAAAAgAACAAAAOAAMAAAAAAEAAAAAAH+AAA")); diff --git a/apps/coretemp/coretemp.js b/apps/coretemp/coretemp.js new file mode 100644 index 000000000..226508c83 --- /dev/null +++ b/apps/coretemp/coretemp.js @@ -0,0 +1,19 @@ +Bangle.setLCDPower(1); +Bangle.setLCDTimeout(0); +var btm = g.getHeight()-1; + +function onCore(c) { + var px = g.getWidth()/2; + g.setFontAlign(0,0); + g.clearRect(0,24,g.getWidth(),80); + var str = c.temp + "C"; + g.setFontVector(40).drawString(str,px,45); +} +Bangle.on('Core', onCore); + +g.clear(); +Bangle.loadWidgets(); +Bangle.drawWidgets(); + +g.reset().setFont("6x8",2).setFontAlign(0,0); +g.drawString("Please wait...",g.getWidth()/2,g.getHeight()/2 - 16); diff --git a/apps/coretemp/coretemp.png b/apps/coretemp/coretemp.png new file mode 100644 index 0000000000000000000000000000000000000000..a573828f8eddc2cfaaf74dbf03e3d1a796a98847 GIT binary patch literal 4870 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 literal 0 HcmV?d00001