From 63cbd45cc6672b50455b5fb710389bd1783e20e5 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Wed, 26 Jul 2023 07:00:31 +0100 Subject: [PATCH] btadv: add sensor location entry --- apps/btadv/app.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/apps/btadv/app.ts b/apps/btadv/app.ts index 5e4930865..bc7371fc4 100644 --- a/apps/btadv/app.ts +++ b/apps/btadv/app.ts @@ -43,6 +43,10 @@ const enum BleChar { // HRM = "0x2a37", + // org.bluetooth.characteristic.body_sensor_location + // u8 + SensorLocation = "0x2a38", + // org.bluetooth.characteristic.elevation // s24, meters 0.01 Elevation = "0x2a6c", @@ -84,6 +88,16 @@ type LenFunc = { maxLen: number, } +const enum SensorLocations = { + Other = 0, + Chest = 1, + Wrist = 2, + Finger = 3, + Hand = 4, + EarLobe = 5, + Foot = 6, +} + let acc: undefined | AccelData; let bar: undefined | PressureData; let gps: undefined | GPSFix; @@ -515,12 +529,22 @@ const serviceToAdvert = (serv: BleServ, initial = false): BleServAdvert => { readable: true, notify: true, }; + const os: BleCharAdvert = { + maxLen: 1, + readable: true, + notify: true, + }; + if (hrm) { o.value = encodeHrm(hrm); + os.value = SensorLocations.Wrist; hrm = undefined; } - return { [BleChar.HRM]: o }; + return { + [BleChar.HRM]: o, + [BleChar.SensorLocation]: os, + }; } return {};