Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Polar schemas #382

Merged
merged 10 commits into from
Jul 23, 2024
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
Loading