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

Empatica embraceplus #373

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion commons/catalogue/unit.avsc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"name": "Unit",
"doc": "Measurement units.",
"symbols": [
"BEATS_PER_MIN" ,
"BEATS_PER_MIN",
"CALORIES_PER_SEC",
"CELSIUS",
"DEGREE",
Expand All @@ -21,6 +21,11 @@
"RMSSD_IN_MILLI_SEC",
"SECOND",
"MICRO_VOLT",
"ADC_COUNTS",
"COUNTS",
"MILLI_SEC",
"BREATHS_PER_MIN",
"NANO_SEC",
"UNKNOWN"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusAcceleration",
"doc": "Data from 3-axis accelerometer sensor embedded in the inertial measurement unit (IMU), expressed in ADC counts.",
"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 (ADC counts)." },
{ "name": "y", "type": "int", "doc": "Acceleration in the y-axis (ADC counts)." },
{ "name": "z", "type": "int", "doc": "Acceleration in the z-axis (ADC counts)." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusBatteryLevel",
"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." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusBloodVolumePulse",
"doc": "Data from photoplethysmograph.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "bloodVolumePulse", "type": "float", "doc": "Light absorption (nW)." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusElectroDermalActivity",
"doc": "Data from the electrodermal activity sensor expressed as microsiemens (µS). Uses a galvanic skin response sensor.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "electroDermalActivity", "type": "float", "doc": "EDA skin conductance level (µS)." },
{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusGyroscope",
"doc": "Data from 3-axis gyroscope embedded in the inertial measurement unit (IMU), expressed in ADC counts.",
"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": "Angular velocity in the x-axis (ADC counts)." },
{ "name": "y", "type": "int", "doc": "Angular velocity in the y-axis (ADC counts)." },
{ "name": "z", "type": "int", "doc": "Angular velocity in the z-axis (ADC counts)." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusMovementIntensity",
"doc": "Data on movement intensity.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "activityCounts", "type": "int", "doc": "Activity counts (counts)." },
{ "name": "accelerometersStdG", "type": "float", "doc": "Standard deviation of the accelerometer magnitude (g)." },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove the G from the name

{ "name": "stepCount", "type": "int", "doc": "Number of steps (counts)." },
{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusOxygenSaturation",
"doc": "Blood oxygen saturation (SpO2) during rest.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "spo2Percentage", "type": "int", "doc": "SpO2 level (percentage)." },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly "percentage" can be removed from the name here. Units can be removed from the names as they are part of the docs.

{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusPulseRate",
"doc": "Data from photoplethysmograph.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "pulseRateBpm", "type": "int", "doc": "Pulse rate in beats per minute (BPM)." },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similar with Bpm

{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusPulseRateVariability",
"doc": "Data from photoplethysmograph.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "prvRmssd", "type": "float", "doc": "Root mean square of successive differences between normal heartbeats (RMSSD) from PRV (ms)." },
{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusRespiratoryRate",
"doc": "Data from photoplethysmograph.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "respiratoryRateBrpm", "type": "int", "doc": "Respiratory rate in breaths per minute (BRPM)." },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brpm can be removed

{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusSleepDetection",
"doc": "Data from photoplethysmograph.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "sleepDetectionStage", "type": "int", "doc": "Sleep stage." },
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be called "sleepStage"

{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
11 changes: 11 additions & 0 deletions commons/passive/empaticaembraceplus/empaticaembraceplus_steps.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusSteps",
"doc": "Data on number of steps taken in the time interval defined by the sampling frequency (counts).",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "steps", "type": "int", "doc": "Number of steps taken in the time interval defined by the sampling frequency (counts)." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusSystolicPeaks",
"doc": "Timestamps of the systolic peaks in the 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": "peakTimes", "type": "float", "doc": "Timestamps in UTC (ns) of systolic peaks' positions." }
]
}
11 changes: 11 additions & 0 deletions commons/passive/empaticaembraceplus/empaticaembraceplus_tags.avsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusTags",
"doc": "Event mark corresponding to a physical button press on the device; the same time as the status LED is first illuminated. The time is synchronized with initial time of the session indicated in the related data files from the corresponding session.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "tagsTime", "type": "float", "doc": "Timestamps in UTC (μs) of the event marks." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusTemperature",
"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)." }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"namespace": "org.radarcns.passive.empaticaembraceplus",
"type": "record",
"name": "EmpaticaEmbracePlusWearingDetection",
"doc": "Wearing detection as percentage.",
"fields": [
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." },
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." },
{ "name": "wearingDetectionPercentage", "type": "int", "doc": "Wearing detection percentage." },
{ "name": "missingValueReason", "type": "string", "doc": "Reason for missing value." }
]
}
118 changes: 118 additions & 0 deletions specifications/passive/empatica_embraceplus_1.0.0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
#====================================== EmbracePlus Wristband =====================================#
vendor: EMPATICA
model: Embraceplus
version: 1.0.0
app_provider: .empaticaembraceplus.EmpaticaEmbracePlusServiceProvider
data:
- type: ACCELEROMETER
sample_rate:
frequency: 32
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

embrace has 64hz acc sensor

unit: ADC_COUNTS
processing_state: RAW
topic: android_empatica_embraceplus_acceleration
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusAcceleration
- type: BATTERY
sample_rate:
dynamic: true
unit: PERCENTAGE
processing_state: RAW
topic: android_empatica_embraceplus_battery_level
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusBatteryLevel
- type: BLOOD_VOLUME_PULSE
sample_rate:
frequency: 32
unit: NANO_WATT
processing_state: RAW
topic: android_empatica_embraceplus_blood_volume_pulse
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusBloodVolumePulse
- type: ELECTRODERMAL_ACTIVITY
sample_rate:
frequency: 4
unit: MICRO_SIEMENS
processing_state: RAW
topic: android_empatica_embraceplus_electrodermal_activity
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusElectroDermalActivity
- type: GYROSCOPE
sample_rate:
frequency: 32
unit: ADC_COUNTS
processing_state: RAW
topic: android_empatica_embraceplus_gyroscope
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusGyroscope
- type: MOVEMENT_INTENSITY #Biomarker
sample_rate:
frequency: 32
unit: COUNTS
processing_state: RAW
topic: android_empatica_embraceplus_movement_intensity
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusMovementIntensity
- type: OXYGEN_SATURATION #Biomarker
sample_rate:
frequency: 32
unit: PERCENTAGE
processing_state: RAW
topic: android_empatica_embraceplus_oxygen_saturation
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusOxygenSaturation
- type: PULSE_RATE #Biomarker
sample_rate:
frequency: 32
unit: BEATS_PER_MIN
processing_state: RAW
topic: android_empatica_embraceplus_pulse_rate
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusPulseRate
- type: PULSE_RATE_VARIABILITY #Biomarker
sample_rate:
frequency: 32
unit: MILLI_SEC
processing_state: RAW
topic: android_empatica_embraceplus_pulse_rate_variability
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusPulseRateVariability
- type: RESPIRATORY_RATE #Biomarker
sample_rate:
frequency: 32
unit: BREATHS_PER_MIN
processing_state: RAW
topic: android_empatica_embraceplus_respiratory_rate
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusRespiratoryRate
- type: SLEEP_DETECTION #Biomarker
sample_rate:
frequency: 32
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again not sure sleep biomarkers would be delivered with such high frequency. I would just change this to dynamic.

unit: NON_DIMENSIONAL
processing_state: RAW
topic: android_empatica_embraceplus_sleep_detection
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusSleepDetection
- type: STEPS
sample_rate:
frequency: 32
unit: COUNTS
processing_state: RAW
topic: android_empatica_embraceplus_steps
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusSteps
- type: SYSTOLIC_PEAKS
sample_rate:
dynamic: true
unit: NANO_SEC
processing_state: VENDOR
topic: android_empatica_embraceplus_systolic_peaks
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusSystolicPeaks
- type: TAGS
sample_rate:
frequency: 32
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i presume this would be dynamic as associated with button press on the device?

unit: MILLI_SEC
processing_state: RAW
topic: android_empatica_embraceplus_tags
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusTags
- type: THERMOMETER
sample_rate:
frequency: 4
unit: CELSIUS
processing_state: RAW
topic: android_empatica_embraceplus_temperature
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusTemperature
- type: WEARING_DETECTION #Biomarker
sample_rate:
frequency: 4
unit: PERCENTAGE
processing_state: RAW
topic: android_empatica_embraceplus_wearing_detection
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusWearingDetection
Loading