Skip to content

Commit

Permalink
Merge pull request #382 from RADAR-base/polar
Browse files Browse the repository at this point in the history
Add Polar schemas
  • Loading branch information
fschulting authored Jul 23, 2024
2 parents 89e129f + 9ce6b40 commit 4c31e4a
Show file tree
Hide file tree
Showing 8 changed files with 136 additions and 0 deletions.
2 changes: 2 additions & 0 deletions commons/catalogue/unit.avsc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"CALORIES_PER_SEC",
"CELSIUS",
"DEGREE",
"MILLI_G",
"G",
"KILO_OHM",
"LUX",
Expand All @@ -21,6 +22,7 @@
"RMSSD_IN_MILLI_SEC",
"SECOND",
"MICRO_VOLT",
"VOLT",
"UNKNOWN"
]
}
14 changes: 14 additions & 0 deletions commons/passive/polar/polar_acceleration.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"namespace": "org.radarcns.passive.polar",
"type": "record",
"name": "PolarAcceleration",
"doc": "Accelerometer data. Axis specific acceleration data in mG.",
"fields": [
{ "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)." },
{ "name": "z", "type": "int", "doc": "Acceleration in the z-axis (mG)." }
]
}
12 changes: 12 additions & 0 deletions commons/passive/polar/polar_battery_level.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.polar",
"type": "record",
"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." }
]
}
12 changes: 12 additions & 0 deletions commons/passive/polar/polar_ecg.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.polar",
"type": "record",
"name": "PolarEcg",
"doc": "Data from ECG in yV.",
"fields": [
{ "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)." }
]
}
16 changes: 16 additions & 0 deletions commons/passive/polar/polar_heart_rate.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"namespace": "org.radarcns.passive.polar",
"type": "record",
"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 (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." },
{ "name": "rrAvailable", "type": "boolean", "doc": "Data for rrAvailable." },
{ "name": "contactStatus", "type": "boolean", "doc": "Data for contactStatus." },
{ "name": "contactStatusSupported", "type": "boolean", "doc": "Data for contactStatusSupported." }
]
}
17 changes: 17 additions & 0 deletions commons/passive/polar/polar_pp_interval.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"namespace": "org.radarcns.passive.polar",
"type": "record",
"name": "PolarPpInterval",
"doc": "PP interval 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." },
{ "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." }
]
}
15 changes: 15 additions & 0 deletions commons/passive/polar/polar_ppg.avsc
Original file line number Diff line number Diff line change
@@ -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": "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." },
{ "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." }
]
}
48 changes: 48 additions & 0 deletions specifications/passive/polar-1.0.0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#====================================== 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: 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
unit: BEATS_PER_MIN
processing_state: VENDOR
topic: android_polar_heart_rate
value_schema: .passive.polar.PolarHeartRate
- 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

0 comments on commit 4c31e4a

Please sign in to comment.