Added sensor validation option and function

This commit is contained in:
2026-05-04 22:19:42 +00:00
parent ecc1804519
commit 09a17f3623
7 changed files with 856 additions and 1 deletions

View File

@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f1f5f9"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sensor Frequency Validation"
android:textColor="#111827"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
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:textColor="#4b5563"
android:textSize="14sp" />
<TextView
android:id="@+id/validationStatusTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:background="#f59e0b"
android:padding="10dp"
android:text="Service: not connected"
android:textColor="#ffffff"
android:textSize="14sp" />
<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="Test setup"
android:textColor="#111827"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Expected frequency (Hz)" />
<EditText
android:id="@+id/validationExpectedHzEt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:text="3.0" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Pass tolerance (%)" />
<EditText
android:id="@+id/validationToleranceEt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:text="5.0" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Validation window" />
<Spinner
android:id="@+id/validationDurationSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationStartButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Start" />
<Button
android:id="@+id/validationStopButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Stop" />
</LinearLayout>
<TextView
android:id="@+id/validationProgressTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Progress: 0 / 750 samples"
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="Result"
android:textColor="#111827"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/validationResultTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="No test run yet."
android:textColor="#111827"
android:textSize="15sp" />
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/validationChart"
android:layout_width="match_parent"
android:layout_height="320dp"
android:layout_marginTop="12dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="horizontal">
<Button
android:id="@+id/validationSaveRawButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Save Raw CSV" />
<Button
android:id="@+id/validationSaveSpectrumButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Save Spectrum CSV" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@@ -100,6 +100,10 @@
android:icon="@drawable/ic_action_settings"
app:showAsAction="never|withText"
android:title="@string/settings" />
<item
android:id="@+id/action_sensor_validation"
android:title="Sensor Validation Test"
android:showAsAction="never|withText" />
</group>