Add sensor validation for heart rate monitor

This commit is contained in:
2026-05-05 10:30:46 +00:00
parent 09a17f3623
commit 671a6d6fb4
2 changed files with 313 additions and 6 deletions

View File

@@ -14,7 +14,7 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sensor Frequency Validation"
android:text="Sensor Validation"
android:textColor="#111827"
android:textSize="22sp"
android:textStyle="bold" />
@@ -23,7 +23,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="Use a known simulated motion frequency and measure the long-window FFT output from the watch data. This does not affect seizure detection."
android:text="Measure long-window accelerometer frequency output or collect timestamped heart-rate data. This does not affect seizure detection."
android:textColor="#4b5563"
android:textSize="14sp" />
@@ -49,7 +49,7 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Test setup"
android:text="Accelerometer frequency test"
android:textColor="#111827"
android:textSize="18sp"
android:textStyle="bold" />
@@ -102,7 +102,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Start" />
android:text="Start Accel" />
<Button
android:id="@+id/validationStopButton"
@@ -110,7 +110,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Stop" />
android:text="Stop Accel" />
</LinearLayout>
<TextView
@@ -122,6 +122,78 @@
android:textColor="#374151" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:background="#ffffff"
android:orientation="vertical"
android:padding="12dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Heart-rate monitor test"
android:textColor="#111827"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Uses the same 30/60 second window. Saves one timestamped heart-rate datapoint per second using the average of the HR reads seen during that second."
android:textColor="#4b5563"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationStartHrButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Start HR" />
<Button
android:id="@+id/validationStopHrButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Stop HR" />
</LinearLayout>
<TextView
android:id="@+id/validationHrProgressTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="HR progress: 0.0 / 30 sec, 0 one-second points saved"
android:textColor="#374151" />
<TextView
android:id="@+id/validationHrResultTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="No HR test run yet."
android:textColor="#111827"
android:textSize="15sp" />
<Button
android:id="@+id/validationSaveHrButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Save HR CSV" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"