From a8b9d11338331515426efe58397f6047b33f5c26 Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Thu, 4 Apr 2024 11:54:52 +0200 Subject: [PATCH 01/10] Add Polar Vantage V3 specs --- commons/catalogue/unit.avsc | 2 + .../passive/polar_vantage_v3-1.0.0.yml | 62 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 specifications/passive/polar_vantage_v3-1.0.0.yml diff --git a/commons/catalogue/unit.avsc b/commons/catalogue/unit.avsc index 0a4585d3..d55276f4 100644 --- a/commons/catalogue/unit.avsc +++ b/commons/catalogue/unit.avsc @@ -8,6 +8,7 @@ "CALORIES_PER_SEC", "CELSIUS", "DEGREE", + "MILLI_G", "G", "KILO_OHM", "LUX", @@ -21,6 +22,7 @@ "RMSSD_IN_MILLI_SEC", "SECOND", "MICRO_VOLT", + "VOLT", "UNKNOWN" ] } diff --git a/specifications/passive/polar_vantage_v3-1.0.0.yml b/specifications/passive/polar_vantage_v3-1.0.0.yml new file mode 100644 index 00000000..28c5f77d --- /dev/null +++ b/specifications/passive/polar_vantage_v3-1.0.0.yml @@ -0,0 +1,62 @@ +#====================================== Faros 90/180/360 device =====================================# +vendor: Polar +model: VantageV3 +version: 1.0.0 +app_provider: .polar.VantageV3ServiceProvider +data: + - type: ACCELEROMETER + sample_rate: + frequency: 50 + unit: MILLI_G + processing_state: RAW + topic: android_polar_vantage_v3_acceleration + value_schema: .passive.polar.PolarVantageV3Acceleration + - type: BATTERY + sample_rate: + dynamic: true + unit: PERCENTAGE + processing_state: RAW + topic: android_polar_vantage_v3_battery_level + value_schema: .passive.polar.PolarVantageV3BatteryLevel + - type: ECG + sample_rate: + dynamic: true + unit: VOLT + processing_state: RAW + topic: android_polar_vantage_v3_ecg + value_schema: .passive.polar.PolarVantageV3Ecg + - type: GYROSCOPE + sample_rate: + frequency: 50 + unit: MILLI_G + processing_state: RAW + topic: android_polar_vantage_v3_gyroscope + value_schema: .passive.polar.PolarVantageV3Gyroscope + - type: HEART_RATE + sample_rate: + frequency: 1 + unit: BEATS_PER_MIN + processing_state: VENDOR + topic: android_polar_vantagev3_heart_rate + value_schema: .passive.polar.PolarVantageV3HeartRate + - type: MAGNETOMETER + sample_rate: + frequency: 50 + unit: MILLI_G + processing_state: RAW + topic: android_polar_vantage_v3_magnetometer + value_schema: .passive.polar.PolarVantageV3Magnetometer + - type: PULSE_TO_PULSE_INTERVAL + sample_rate: + dynamic: true + unit: SECOND + processing_state: VENDOR + topic: android_polar_vantage_v3_pulse_to_pulse_interval + value_schema: .passive.polar.PolarVantageV3PpInterval + - type: THERMOMETER + sample_rate: + dynamic: true + unit: CELSIUS + processing_state: VENDOR + topic: android_polar_vantage_v3_temperature + value_schema: .passive.polar.PolarVantageV3Temperature From 8fa3e2dadd8c0e90be15b89d2071506dadd10f42 Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Thu, 4 Apr 2024 11:55:03 +0200 Subject: [PATCH 02/10] Add Polar Vantage V3 schemes --- .../polar/polar_vantage_v3_acceleration.avsc | 13 +++++++++++++ .../polar/polar_vantage_v3_battery_level.avsc | 11 +++++++++++ commons/passive/polar/polar_vantage_v3_ecg.avsc | 11 +++++++++++ .../polar/polar_vantage_v3_gyroscope.avsc | 13 +++++++++++++ .../polar/polar_vantage_v3_heart_rate.avsc | 15 +++++++++++++++ .../polar/polar_vantage_v3_magnetometer.avsc | 13 +++++++++++++ .../polar/polar_vantage_v3_pp_interval.avsc | 16 ++++++++++++++++ .../polar/polar_vantage_v3_temperature.avsc | 11 +++++++++++ 8 files changed, 103 insertions(+) create mode 100644 commons/passive/polar/polar_vantage_v3_acceleration.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_battery_level.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_ecg.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_gyroscope.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_heart_rate.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_magnetometer.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_pp_interval.avsc create mode 100644 commons/passive/polar/polar_vantage_v3_temperature.avsc diff --git a/commons/passive/polar/polar_vantage_v3_acceleration.avsc b/commons/passive/polar/polar_vantage_v3_acceleration.avsc new file mode 100644 index 00000000..04a3823f --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_acceleration.avsc @@ -0,0 +1,13 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3Acceleration", + "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "x", "type": "int", "doc": "Acceleration in the x-axis (mG)." }, + { "name": "y", "type": "int", "doc": "Acceleration in the y-axis (mG)." }, + { "name": "z", "type": "int", "doc": "Acceleration in the z-axis (mG)." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_battery_level.avsc b/commons/passive/polar/polar_vantage_v3_battery_level.avsc new file mode 100644 index 00000000..c31ea273 --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_battery_level.avsc @@ -0,0 +1,11 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3BatteryLevel", + "doc": "Device battery level.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "batteryLevel", "type": "float", "doc": "Battery level from 0 to 1." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_ecg.avsc b/commons/passive/polar/polar_vantage_v3_ecg.avsc new file mode 100644 index 00000000..d17477c3 --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_ecg.avsc @@ -0,0 +1,11 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3Ecg", + "doc": "Data from ECG in Voltage.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." } , + { "name": "ecgSignal", "type": "int", "doc": "ECG signal (V)." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_gyroscope.avsc b/commons/passive/polar/polar_vantage_v3_gyroscope.avsc new file mode 100644 index 00000000..fe7db1b9 --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_gyroscope.avsc @@ -0,0 +1,13 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3Gyroscope", + "doc": "Gyroscope data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "x", "type": "float", "doc": "Acceleration in the x-axis (mG)." }, + { "name": "y", "type": "float", "doc": "Acceleration in the y-axis (mG)." }, + { "name": "z", "type": "float", "doc": "Acceleration in the z-axis (mG)." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_heart_rate.avsc b/commons/passive/polar/polar_vantage_v3_heart_rate.avsc new file mode 100644 index 00000000..3f215976 --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_heart_rate.avsc @@ -0,0 +1,15 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3HeartRate", + "doc": "Heart rate as beats per minute.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "contactStatus", "type": "boolean", "doc": "Data for contactStatus." }, + { "name": "contactStatusSupported", "type": "boolean", "doc": "Data for contactStatusSupported." }, + { "name": "heartRate", "type": "int", "doc": "Heart rate (bpm)." }, + { "name": "rrAvailable", "type": "boolean", "doc": "Data for rrAvailable." }, + { "name": "rrsMs", "type": "int", "doc": "Data for rrsMs." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_magnetometer.avsc b/commons/passive/polar/polar_vantage_v3_magnetometer.avsc new file mode 100644 index 00000000..0fb91111 --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_magnetometer.avsc @@ -0,0 +1,13 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3Magnetometer", + "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "x", "type": "float", "doc": "Acceleration in the x-axis (mG)." }, + { "name": "y", "type": "float", "doc": "Acceleration in the y-axis (mG)." }, + { "name": "z", "type": "float", "doc": "Acceleration in the z-axis (mG)." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_pp_interval.avsc b/commons/passive/polar/polar_vantage_v3_pp_interval.avsc new file mode 100644 index 00000000..8d69a403 --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_pp_interval.avsc @@ -0,0 +1,16 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3PpInterval", + "doc": "PP interval (milliseconds) representing cardiac pulse-to-pulse interval extracted from PPG signal.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "blockerBit", "type": "boolean", "doc": "Data for blockerBit." }, + { "name": "errorEstimate", "type": "int", "doc": "Data for errorEstimate." }, + { "name": "heartRate", "type": "int", "doc": "Data for errorEstimate." }, + { "name": "ppInterval", "type": "int", "doc": "The duration (s) of the detected inter-beat interval (i.e., the distance in seconds from the previous beat)." }, + { "name": "skinContactStatus", "type": "boolean", "doc": "Data for skinContactStatus." }, + { "name": "skinContactSupported", "type": "boolean", "doc": "Data for skinContactSupported." } + ] +} diff --git a/commons/passive/polar/polar_vantage_v3_temperature.avsc b/commons/passive/polar/polar_vantage_v3_temperature.avsc new file mode 100644 index 00000000..5552d63a --- /dev/null +++ b/commons/passive/polar/polar_vantage_v3_temperature.avsc @@ -0,0 +1,11 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarVantageV3Temperature", + "doc": "Data from temperature sensor expressed degrees on the Celsius (°C) scale.", + "fields": [ + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "temperature", "type": "float", "doc": "Temperature (°C)." } + ] +} From 4dd0fba38e5f24a6c080e772dee65cf4810e848e Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Tue, 23 Apr 2024 14:50:49 +0200 Subject: [PATCH 03/10] Add generic Polar schemes --- ...eleration.avsc => polar_acceleration.avsc} | 2 +- ...ry_level.avsc => polar_battery_level.avsc} | 2 +- ...lar_vantage_v3_ecg.avsc => polar_ecg.avsc} | 2 +- ...v3_gyroscope.avsc => polar_gyroscope.avsc} | 2 +- ..._heart_rate.avsc => polar_heart_rate.avsc} | 10 +-- ...netometer.avsc => polar_magnetometer.avsc} | 2 +- ...p_interval.avsc => polar_pp_interval.avsc} | 2 +- ...emperature.avsc => polar_temperature.avsc} | 2 +- specifications/passive/polar-1.0.0.yml | 62 +++++++++++++++++++ .../passive/polar_vantage_v3-1.0.0.yml | 62 ------------------- 10 files changed, 74 insertions(+), 74 deletions(-) rename commons/passive/polar/{polar_vantage_v3_acceleration.avsc => polar_acceleration.avsc} (93%) rename commons/passive/polar/{polar_vantage_v3_battery_level.avsc => polar_battery_level.avsc} (90%) rename commons/passive/polar/{polar_vantage_v3_ecg.avsc => polar_ecg.avsc} (92%) rename commons/passive/polar/{polar_vantage_v3_gyroscope.avsc => polar_gyroscope.avsc} (94%) rename commons/passive/polar/{polar_vantage_v3_heart_rate.avsc => polar_heart_rate.avsc} (67%) rename commons/passive/polar/{polar_vantage_v3_magnetometer.avsc => polar_magnetometer.avsc} (93%) rename commons/passive/polar/{polar_vantage_v3_pp_interval.avsc => polar_pp_interval.avsc} (96%) rename commons/passive/polar/{polar_vantage_v3_temperature.avsc => polar_temperature.avsc} (91%) create mode 100644 specifications/passive/polar-1.0.0.yml delete mode 100644 specifications/passive/polar_vantage_v3-1.0.0.yml diff --git a/commons/passive/polar/polar_vantage_v3_acceleration.avsc b/commons/passive/polar/polar_acceleration.avsc similarity index 93% rename from commons/passive/polar/polar_vantage_v3_acceleration.avsc rename to commons/passive/polar/polar_acceleration.avsc index 04a3823f..bc3d2d06 100644 --- a/commons/passive/polar/polar_vantage_v3_acceleration.avsc +++ b/commons/passive/polar/polar_acceleration.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3Acceleration", + "name": "PolarAcceleration", "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/commons/passive/polar/polar_vantage_v3_battery_level.avsc b/commons/passive/polar/polar_battery_level.avsc similarity index 90% rename from commons/passive/polar/polar_vantage_v3_battery_level.avsc rename to commons/passive/polar/polar_battery_level.avsc index c31ea273..5b9f17f0 100644 --- a/commons/passive/polar/polar_vantage_v3_battery_level.avsc +++ b/commons/passive/polar/polar_battery_level.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3BatteryLevel", + "name": "PolarBatteryLevel", "doc": "Device battery level.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/commons/passive/polar/polar_vantage_v3_ecg.avsc b/commons/passive/polar/polar_ecg.avsc similarity index 92% rename from commons/passive/polar/polar_vantage_v3_ecg.avsc rename to commons/passive/polar/polar_ecg.avsc index d17477c3..5d7b8b04 100644 --- a/commons/passive/polar/polar_vantage_v3_ecg.avsc +++ b/commons/passive/polar/polar_ecg.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3Ecg", + "name": "PolarEcg", "doc": "Data from ECG in Voltage.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/commons/passive/polar/polar_vantage_v3_gyroscope.avsc b/commons/passive/polar/polar_gyroscope.avsc similarity index 94% rename from commons/passive/polar/polar_vantage_v3_gyroscope.avsc rename to commons/passive/polar/polar_gyroscope.avsc index fe7db1b9..7ac99ed7 100644 --- a/commons/passive/polar/polar_vantage_v3_gyroscope.avsc +++ b/commons/passive/polar/polar_gyroscope.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3Gyroscope", + "name": "PolarGyroscope", "doc": "Gyroscope data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/commons/passive/polar/polar_vantage_v3_heart_rate.avsc b/commons/passive/polar/polar_heart_rate.avsc similarity index 67% rename from commons/passive/polar/polar_vantage_v3_heart_rate.avsc rename to commons/passive/polar/polar_heart_rate.avsc index 3f215976..06bc4af2 100644 --- a/commons/passive/polar/polar_vantage_v3_heart_rate.avsc +++ b/commons/passive/polar/polar_heart_rate.avsc @@ -1,15 +1,15 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3HeartRate", + "name": "PolarHeartRate", "doc": "Heart rate as beats per minute.", "fields": [ - { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "time", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, - { "name": "contactStatus", "type": "boolean", "doc": "Data for contactStatus." }, - { "name": "contactStatusSupported", "type": "boolean", "doc": "Data for contactStatusSupported." }, { "name": "heartRate", "type": "int", "doc": "Heart rate (bpm)." }, + { "name": "rrsMs", "type": {"type": "array", "items": "int"}, "doc": "Data for rrsMs." }, { "name": "rrAvailable", "type": "boolean", "doc": "Data for rrAvailable." }, - { "name": "rrsMs", "type": "int", "doc": "Data for rrsMs." } + { "name": "contactStatus", "type": "boolean", "doc": "Data for contactStatus." }, + { "name": "contactStatusSupported", "type": "boolean", "doc": "Data for contactStatusSupported." } ] } diff --git a/commons/passive/polar/polar_vantage_v3_magnetometer.avsc b/commons/passive/polar/polar_magnetometer.avsc similarity index 93% rename from commons/passive/polar/polar_vantage_v3_magnetometer.avsc rename to commons/passive/polar/polar_magnetometer.avsc index 0fb91111..f80e9305 100644 --- a/commons/passive/polar/polar_vantage_v3_magnetometer.avsc +++ b/commons/passive/polar/polar_magnetometer.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3Magnetometer", + "name": "PolarMagnetometer", "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/commons/passive/polar/polar_vantage_v3_pp_interval.avsc b/commons/passive/polar/polar_pp_interval.avsc similarity index 96% rename from commons/passive/polar/polar_vantage_v3_pp_interval.avsc rename to commons/passive/polar/polar_pp_interval.avsc index 8d69a403..a0cfadbc 100644 --- a/commons/passive/polar/polar_vantage_v3_pp_interval.avsc +++ b/commons/passive/polar/polar_pp_interval.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3PpInterval", + "name": "PolarPpInterval", "doc": "PP interval (milliseconds) representing cardiac pulse-to-pulse interval extracted from PPG signal.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/commons/passive/polar/polar_vantage_v3_temperature.avsc b/commons/passive/polar/polar_temperature.avsc similarity index 91% rename from commons/passive/polar/polar_vantage_v3_temperature.avsc rename to commons/passive/polar/polar_temperature.avsc index 5552d63a..c81a4b8b 100644 --- a/commons/passive/polar/polar_vantage_v3_temperature.avsc +++ b/commons/passive/polar/polar_temperature.avsc @@ -1,7 +1,7 @@ { "namespace": "org.radarcns.passive.polar", "type": "record", - "name": "PolarVantageV3Temperature", + "name": "PolarTemperature", "doc": "Data from temperature sensor expressed degrees on the Celsius (°C) scale.", "fields": [ { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, diff --git a/specifications/passive/polar-1.0.0.yml b/specifications/passive/polar-1.0.0.yml new file mode 100644 index 00000000..12bc7b13 --- /dev/null +++ b/specifications/passive/polar-1.0.0.yml @@ -0,0 +1,62 @@ +#====================================== POLAR H10 or Vantage V3 device =====================================# +vendor: POLAR +model: GENERIC +version: 1.0.0 +app_provider: .polar.PolarProvider +data: + - type: ACCELEROMETER + sample_rate: + frequency: 50 + unit: MILLI_G + processing_state: RAW + topic: android_polar_acceleration + value_schema: .passive.polar.PolarAcceleration + - type: BATTERY + sample_rate: + dynamic: true + unit: PERCENTAGE + processing_state: RAW + topic: android_polar_battery_level + value_schema: .passive.polar.PolarBatteryLevel + - type: ECG + sample_rate: + dynamic: true + unit: VOLT + processing_state: RAW + topic: android_polar_ecg + value_schema: .passive.polar.PolarEcg + - type: GYROSCOPE + sample_rate: + frequency: 50 + unit: MILLI_G + processing_state: RAW + topic: android_polar_gyroscope + value_schema: .passive.polar.PolarGyroscope + - type: HEART_RATE + sample_rate: + frequency: 1 + unit: BEATS_PER_MIN + processing_state: VENDOR + topic: android_polar_heart_rate + value_schema: .passive.polar.PolarHeartRate + - type: MAGNETOMETER + sample_rate: + frequency: 50 + unit: MILLI_G + processing_state: RAW + topic: android_polar_magnetometer + value_schema: .passive.polar.PolarMagnetometer + - type: PULSE_TO_PULSE_INTERVAL + sample_rate: + dynamic: true + unit: SECOND + processing_state: VENDOR + topic: android_polar_pulse_to_pulse_interval + value_schema: .passive.polar.PolarPpInterval + - type: THERMOMETER + sample_rate: + dynamic: true + unit: CELSIUS + processing_state: VENDOR + topic: android_polar_temperature + value_schema: .passive.polar.PolarTemperature diff --git a/specifications/passive/polar_vantage_v3-1.0.0.yml b/specifications/passive/polar_vantage_v3-1.0.0.yml deleted file mode 100644 index 28c5f77d..00000000 --- a/specifications/passive/polar_vantage_v3-1.0.0.yml +++ /dev/null @@ -1,62 +0,0 @@ -#====================================== Faros 90/180/360 device =====================================# -vendor: Polar -model: VantageV3 -version: 1.0.0 -app_provider: .polar.VantageV3ServiceProvider -data: - - type: ACCELEROMETER - sample_rate: - frequency: 50 - unit: MILLI_G - processing_state: RAW - topic: android_polar_vantage_v3_acceleration - value_schema: .passive.polar.PolarVantageV3Acceleration - - type: BATTERY - sample_rate: - dynamic: true - unit: PERCENTAGE - processing_state: RAW - topic: android_polar_vantage_v3_battery_level - value_schema: .passive.polar.PolarVantageV3BatteryLevel - - type: ECG - sample_rate: - dynamic: true - unit: VOLT - processing_state: RAW - topic: android_polar_vantage_v3_ecg - value_schema: .passive.polar.PolarVantageV3Ecg - - type: GYROSCOPE - sample_rate: - frequency: 50 - unit: MILLI_G - processing_state: RAW - topic: android_polar_vantage_v3_gyroscope - value_schema: .passive.polar.PolarVantageV3Gyroscope - - type: HEART_RATE - sample_rate: - frequency: 1 - unit: BEATS_PER_MIN - processing_state: VENDOR - topic: android_polar_vantagev3_heart_rate - value_schema: .passive.polar.PolarVantageV3HeartRate - - type: MAGNETOMETER - sample_rate: - frequency: 50 - unit: MILLI_G - processing_state: RAW - topic: android_polar_vantage_v3_magnetometer - value_schema: .passive.polar.PolarVantageV3Magnetometer - - type: PULSE_TO_PULSE_INTERVAL - sample_rate: - dynamic: true - unit: SECOND - processing_state: VENDOR - topic: android_polar_vantage_v3_pulse_to_pulse_interval - value_schema: .passive.polar.PolarVantageV3PpInterval - - type: THERMOMETER - sample_rate: - dynamic: true - unit: CELSIUS - processing_state: VENDOR - topic: android_polar_vantage_v3_temperature - value_schema: .passive.polar.PolarVantageV3Temperature From 8f64a8e70e22d419d0bbe554184f3d4e369cdf4e Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Tue, 7 May 2024 17:18:53 +0200 Subject: [PATCH 04/10] Change ECG units (yV and ns) --- commons/passive/polar/polar_ecg.avsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/commons/passive/polar/polar_ecg.avsc b/commons/passive/polar/polar_ecg.avsc index 5d7b8b04..7ec924d2 100644 --- a/commons/passive/polar/polar_ecg.avsc +++ b/commons/passive/polar/polar_ecg.avsc @@ -2,10 +2,10 @@ "namespace": "org.radarcns.passive.polar", "type": "record", "name": "PolarEcg", - "doc": "Data from ECG in Voltage.", + "doc": "Data from ECG in yV.", "fields": [ - { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." } , - { "name": "ecgSignal", "type": "int", "doc": "ECG signal (V)." } + { "name": "ecgSignal", "type": "int", "doc": "ECG signal (yV)." } ] } From 807f91622926ba534176dc354475188ad0d96836 Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Fri, 10 May 2024 09:20:29 +0200 Subject: [PATCH 05/10] Change ACC units (to ns) --- commons/passive/polar/polar_acceleration.avsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commons/passive/polar/polar_acceleration.avsc b/commons/passive/polar/polar_acceleration.avsc index bc3d2d06..fbccaed1 100644 --- a/commons/passive/polar/polar_acceleration.avsc +++ b/commons/passive/polar/polar_acceleration.avsc @@ -4,7 +4,7 @@ "name": "PolarAcceleration", "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", "fields": [ - { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, + { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "x", "type": "int", "doc": "Acceleration in the x-axis (mG)." }, { "name": "y", "type": "int", "doc": "Acceleration in the y-axis (mG)." }, From 3026defd359bebe653d9fd4f2cf65620af65b1ab Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Wed, 15 May 2024 10:51:58 +0200 Subject: [PATCH 06/10] Removed schemas --- commons/passive/polar/polar_gyroscope.avsc | 13 ------------ commons/passive/polar/polar_magnetometer.avsc | 13 ------------ commons/passive/polar/polar_temperature.avsc | 11 ---------- specifications/passive/polar-1.0.0.yml | 21 ------------------- 4 files changed, 58 deletions(-) delete mode 100644 commons/passive/polar/polar_gyroscope.avsc delete mode 100644 commons/passive/polar/polar_magnetometer.avsc delete mode 100644 commons/passive/polar/polar_temperature.avsc diff --git a/commons/passive/polar/polar_gyroscope.avsc b/commons/passive/polar/polar_gyroscope.avsc deleted file mode 100644 index 7ac99ed7..00000000 --- a/commons/passive/polar/polar_gyroscope.avsc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "namespace": "org.radarcns.passive.polar", - "type": "record", - "name": "PolarGyroscope", - "doc": "Gyroscope data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", - "fields": [ - { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, - { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, - { "name": "x", "type": "float", "doc": "Acceleration in the x-axis (mG)." }, - { "name": "y", "type": "float", "doc": "Acceleration in the y-axis (mG)." }, - { "name": "z", "type": "float", "doc": "Acceleration in the z-axis (mG)." } - ] -} diff --git a/commons/passive/polar/polar_magnetometer.avsc b/commons/passive/polar/polar_magnetometer.avsc deleted file mode 100644 index f80e9305..00000000 --- a/commons/passive/polar/polar_magnetometer.avsc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "namespace": "org.radarcns.passive.polar", - "type": "record", - "name": "PolarMagnetometer", - "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", - "fields": [ - { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, - { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, - { "name": "x", "type": "float", "doc": "Acceleration in the x-axis (mG)." }, - { "name": "y", "type": "float", "doc": "Acceleration in the y-axis (mG)." }, - { "name": "z", "type": "float", "doc": "Acceleration in the z-axis (mG)." } - ] -} diff --git a/commons/passive/polar/polar_temperature.avsc b/commons/passive/polar/polar_temperature.avsc deleted file mode 100644 index c81a4b8b..00000000 --- a/commons/passive/polar/polar_temperature.avsc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "namespace": "org.radarcns.passive.polar", - "type": "record", - "name": "PolarTemperature", - "doc": "Data from temperature sensor expressed degrees on the Celsius (°C) scale.", - "fields": [ - { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, - { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, - { "name": "temperature", "type": "float", "doc": "Temperature (°C)." } - ] -} diff --git a/specifications/passive/polar-1.0.0.yml b/specifications/passive/polar-1.0.0.yml index 12bc7b13..233c27c8 100644 --- a/specifications/passive/polar-1.0.0.yml +++ b/specifications/passive/polar-1.0.0.yml @@ -25,13 +25,6 @@ data: processing_state: RAW topic: android_polar_ecg value_schema: .passive.polar.PolarEcg - - type: GYROSCOPE - sample_rate: - frequency: 50 - unit: MILLI_G - processing_state: RAW - topic: android_polar_gyroscope - value_schema: .passive.polar.PolarGyroscope - type: HEART_RATE sample_rate: frequency: 1 @@ -39,13 +32,6 @@ data: processing_state: VENDOR topic: android_polar_heart_rate value_schema: .passive.polar.PolarHeartRate - - type: MAGNETOMETER - sample_rate: - frequency: 50 - unit: MILLI_G - processing_state: RAW - topic: android_polar_magnetometer - value_schema: .passive.polar.PolarMagnetometer - type: PULSE_TO_PULSE_INTERVAL sample_rate: dynamic: true @@ -53,10 +39,3 @@ data: processing_state: VENDOR topic: android_polar_pulse_to_pulse_interval value_schema: .passive.polar.PolarPpInterval - - type: THERMOMETER - sample_rate: - dynamic: true - unit: CELSIUS - processing_state: VENDOR - topic: android_polar_temperature - value_schema: .passive.polar.PolarTemperature From 7da3dae8bd387554ee9838a80393385c05de7ce3 Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Wed, 15 May 2024 10:52:13 +0200 Subject: [PATCH 07/10] Add DeviceName column to schemas --- commons/passive/polar/polar_acceleration.avsc | 1 + commons/passive/polar/polar_battery_level.avsc | 1 + commons/passive/polar/polar_ecg.avsc | 1 + commons/passive/polar/polar_heart_rate.avsc | 1 + commons/passive/polar/polar_pp_interval.avsc | 1 + 5 files changed, 5 insertions(+) diff --git a/commons/passive/polar/polar_acceleration.avsc b/commons/passive/polar/polar_acceleration.avsc index fbccaed1..41f8a738 100644 --- a/commons/passive/polar/polar_acceleration.avsc +++ b/commons/passive/polar/polar_acceleration.avsc @@ -4,6 +4,7 @@ "name": "PolarAcceleration", "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", "fields": [ + { "name": "deviceName", "type": "string", "doc": "Polar device name" }, { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "x", "type": "int", "doc": "Acceleration in the x-axis (mG)." }, diff --git a/commons/passive/polar/polar_battery_level.avsc b/commons/passive/polar/polar_battery_level.avsc index 5b9f17f0..1371dcf3 100644 --- a/commons/passive/polar/polar_battery_level.avsc +++ b/commons/passive/polar/polar_battery_level.avsc @@ -4,6 +4,7 @@ "name": "PolarBatteryLevel", "doc": "Device battery level.", "fields": [ + { "name": "deviceName", "type": "string", "doc": "Polar device name" }, { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "batteryLevel", "type": "float", "doc": "Battery level from 0 to 1." } diff --git a/commons/passive/polar/polar_ecg.avsc b/commons/passive/polar/polar_ecg.avsc index 7ec924d2..2ae1126e 100644 --- a/commons/passive/polar/polar_ecg.avsc +++ b/commons/passive/polar/polar_ecg.avsc @@ -4,6 +4,7 @@ "name": "PolarEcg", "doc": "Data from ECG in yV.", "fields": [ + { "name": "deviceName", "type": "string", "doc": "Polar device name" }, { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." } , { "name": "ecgSignal", "type": "int", "doc": "ECG signal (yV)." } diff --git a/commons/passive/polar/polar_heart_rate.avsc b/commons/passive/polar/polar_heart_rate.avsc index 06bc4af2..acc078c0 100644 --- a/commons/passive/polar/polar_heart_rate.avsc +++ b/commons/passive/polar/polar_heart_rate.avsc @@ -4,6 +4,7 @@ "name": "PolarHeartRate", "doc": "Heart rate as beats per minute.", "fields": [ + { "name": "deviceName", "type": "string", "doc": "Polar device name" }, { "name": "time", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "heartRate", "type": "int", "doc": "Heart rate (bpm)." }, diff --git a/commons/passive/polar/polar_pp_interval.avsc b/commons/passive/polar/polar_pp_interval.avsc index a0cfadbc..5b7d2552 100644 --- a/commons/passive/polar/polar_pp_interval.avsc +++ b/commons/passive/polar/polar_pp_interval.avsc @@ -4,6 +4,7 @@ "name": "PolarPpInterval", "doc": "PP interval (milliseconds) representing cardiac pulse-to-pulse interval extracted from PPG signal.", "fields": [ + { "name": "deviceName", "type": "string", "doc": "Polar device name" }, { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "blockerBit", "type": "boolean", "doc": "Data for blockerBit." }, From bfce2247a3c825d28841189f94faffb2e2a83765 Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Tue, 4 Jun 2024 17:49:37 +0200 Subject: [PATCH 08/10] Change HR time to ns (radar-schemas-0.1.2) --- commons/passive/polar/polar_heart_rate.avsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commons/passive/polar/polar_heart_rate.avsc b/commons/passive/polar/polar_heart_rate.avsc index acc078c0..b13dd0b2 100644 --- a/commons/passive/polar/polar_heart_rate.avsc +++ b/commons/passive/polar/polar_heart_rate.avsc @@ -5,7 +5,7 @@ "doc": "Heart rate as beats per minute.", "fields": [ { "name": "deviceName", "type": "string", "doc": "Polar device name" }, - { "name": "time", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, + { "name": "time", "type": "long", "doc": "Device receiver timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "heartRate", "type": "int", "doc": "Heart rate (bpm)." }, { "name": "rrsMs", "type": {"type": "array", "items": "int"}, "doc": "Data for rrsMs." }, From 4c3eda7fde24c12f43c027e7f36162736d0b7dc0 Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Tue, 4 Jun 2024 17:49:54 +0200 Subject: [PATCH 09/10] Add PPG topic (radar-schemas-0.1.3) --- commons/passive/polar/polar_ppg.avsc | 15 +++++++++++++++ specifications/passive/polar-1.0.0.yml | 7 +++++++ 2 files changed, 22 insertions(+) create mode 100644 commons/passive/polar/polar_ppg.avsc diff --git a/commons/passive/polar/polar_ppg.avsc b/commons/passive/polar/polar_ppg.avsc new file mode 100644 index 00000000..0e452a92 --- /dev/null +++ b/commons/passive/polar/polar_ppg.avsc @@ -0,0 +1,15 @@ +{ + "namespace": "org.radarcns.passive.polar", + "type": "record", + "name": "PolarPpg", + "doc": "Data from PPG channels.", + "fields": [ + { "name": "deviceName", "type": "string", "doc": "Polar device name" }, + { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, + { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." } , + { "name": "ppg0", "type": "int", "doc": "PPG0." }, + { "name": "ppg1", "type": "int", "doc": "PPG1." }, + { "name": "ppg2", "type": "int", "doc": "PPG2." }, + { "name": "ambient", "type": "int", "doc": "Ambient channel representing the background noise caused by other light sources, so it can be used to remove the background noise from ppg channels." } + ] +} diff --git a/specifications/passive/polar-1.0.0.yml b/specifications/passive/polar-1.0.0.yml index 233c27c8..5622ef5c 100644 --- a/specifications/passive/polar-1.0.0.yml +++ b/specifications/passive/polar-1.0.0.yml @@ -25,6 +25,13 @@ data: processing_state: RAW topic: android_polar_ecg value_schema: .passive.polar.PolarEcg + - type: PPG + sample_rate: + dynamic: true + unit: UNKNOWN + processing_state: RAW + topic: android_polar_ppg + value_schema: .passive.polar.PolarPpg - type: HEART_RATE sample_rate: frequency: 1 From 9ce6b40ad55f88a632d85799e6643f3e27b201bb Mon Sep 17 00:00:00 2001 From: Famke Schulting Date: Sun, 21 Jul 2024 13:05:31 +0200 Subject: [PATCH 10/10] Fix linter errors and changing time types to 'Double' (radar-schemas-0.1.4) --- commons/passive/polar/polar_acceleration.avsc | 6 +++--- commons/passive/polar/polar_battery_level.avsc | 2 +- commons/passive/polar/polar_ecg.avsc | 4 ++-- commons/passive/polar/polar_heart_rate.avsc | 4 ++-- commons/passive/polar/polar_pp_interval.avsc | 4 ++-- commons/passive/polar/polar_ppg.avsc | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/commons/passive/polar/polar_acceleration.avsc b/commons/passive/polar/polar_acceleration.avsc index 41f8a738..3839db43 100644 --- a/commons/passive/polar/polar_acceleration.avsc +++ b/commons/passive/polar/polar_acceleration.avsc @@ -2,10 +2,10 @@ "namespace": "org.radarcns.passive.polar", "type": "record", "name": "PolarAcceleration", - "doc": "Accelerometer data with sample rate of 50 Hz and range of 8 G. Axis specific acceleration data in mG.", + "doc": "Accelerometer data. Axis specific acceleration data in mG.", "fields": [ - { "name": "deviceName", "type": "string", "doc": "Polar device name" }, - { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, + { "name": "deviceName", "type": "string", "doc": "Polar device name." }, + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "x", "type": "int", "doc": "Acceleration in the x-axis (mG)." }, { "name": "y", "type": "int", "doc": "Acceleration in the y-axis (mG)." }, diff --git a/commons/passive/polar/polar_battery_level.avsc b/commons/passive/polar/polar_battery_level.avsc index 1371dcf3..ccb3c3c7 100644 --- a/commons/passive/polar/polar_battery_level.avsc +++ b/commons/passive/polar/polar_battery_level.avsc @@ -4,7 +4,7 @@ "name": "PolarBatteryLevel", "doc": "Device battery level.", "fields": [ - { "name": "deviceName", "type": "string", "doc": "Polar device name" }, + { "name": "deviceName", "type": "string", "doc": "Polar device name." }, { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "batteryLevel", "type": "float", "doc": "Battery level from 0 to 1." } diff --git a/commons/passive/polar/polar_ecg.avsc b/commons/passive/polar/polar_ecg.avsc index 2ae1126e..3f8f4d96 100644 --- a/commons/passive/polar/polar_ecg.avsc +++ b/commons/passive/polar/polar_ecg.avsc @@ -4,8 +4,8 @@ "name": "PolarEcg", "doc": "Data from ECG in yV.", "fields": [ - { "name": "deviceName", "type": "string", "doc": "Polar device name" }, - { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, + { "name": "deviceName", "type": "string", "doc": "Polar device name." }, + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." } , { "name": "ecgSignal", "type": "int", "doc": "ECG signal (yV)." } ] diff --git a/commons/passive/polar/polar_heart_rate.avsc b/commons/passive/polar/polar_heart_rate.avsc index b13dd0b2..1a4466eb 100644 --- a/commons/passive/polar/polar_heart_rate.avsc +++ b/commons/passive/polar/polar_heart_rate.avsc @@ -4,8 +4,8 @@ "name": "PolarHeartRate", "doc": "Heart rate as beats per minute.", "fields": [ - { "name": "deviceName", "type": "string", "doc": "Polar device name" }, - { "name": "time", "type": "long", "doc": "Device receiver timestamp in UTC (ns)." }, + { "name": "deviceName", "type": "string", "doc": "Polar device name." }, + { "name": "time", "type": "double", "doc": "Device receiver timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "heartRate", "type": "int", "doc": "Heart rate (bpm)." }, { "name": "rrsMs", "type": {"type": "array", "items": "int"}, "doc": "Data for rrsMs." }, diff --git a/commons/passive/polar/polar_pp_interval.avsc b/commons/passive/polar/polar_pp_interval.avsc index 5b7d2552..8c358b2c 100644 --- a/commons/passive/polar/polar_pp_interval.avsc +++ b/commons/passive/polar/polar_pp_interval.avsc @@ -2,9 +2,9 @@ "namespace": "org.radarcns.passive.polar", "type": "record", "name": "PolarPpInterval", - "doc": "PP interval (milliseconds) representing cardiac pulse-to-pulse interval extracted from PPG signal.", + "doc": "PP interval representing cardiac pulse-to-pulse interval extracted from PPG signal.", "fields": [ - { "name": "deviceName", "type": "string", "doc": "Polar device name" }, + { "name": "deviceName", "type": "string", "doc": "Polar device name." }, { "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, { "name": "blockerBit", "type": "boolean", "doc": "Data for blockerBit." }, diff --git a/commons/passive/polar/polar_ppg.avsc b/commons/passive/polar/polar_ppg.avsc index 0e452a92..c65efa6e 100644 --- a/commons/passive/polar/polar_ppg.avsc +++ b/commons/passive/polar/polar_ppg.avsc @@ -4,8 +4,8 @@ "name": "PolarPpg", "doc": "Data from PPG channels.", "fields": [ - { "name": "deviceName", "type": "string", "doc": "Polar device name" }, - { "name": "time", "type": "long", "doc": "Device timestamp in UTC (ns)." }, + { "name": "deviceName", "type": "string", "doc": "Polar device name." }, + { "name": "time", "type": "double", "doc": "Device timestamp in UTC (ns)." }, { "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." } , { "name": "ppg0", "type": "int", "doc": "PPG0." }, { "name": "ppg1", "type": "int", "doc": "PPG1." },