From f9ba3e1d449971e22c29d06d7dd083201f4e3f10 Mon Sep 17 00:00:00 2001 From: Severin Kaderli Date: Wed, 7 Dec 2022 23:53:04 +0100 Subject: [PATCH] More adjustments to the prototype Signed-off-by: Severin Kaderli --- .../main/java/dev/kaderli/magsend/BaseSensorActivity.kt | 5 +---- .../src/main/java/dev/kaderli/magsend/ReceiveActivity.kt | 9 +++++---- src/website/scripts/Constants.js | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt b/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt index aefa402..1060df3 100644 --- a/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt +++ b/src/MagSend/app/src/main/java/dev/kaderli/magsend/BaseSensorActivity.kt @@ -9,9 +9,6 @@ import android.os.Bundle import kotlin.math.pow import kotlin.math.sqrt -const val SAMPLING_RATE = 0 - - abstract class BaseSensorActivity : BaseActivity(), SensorEventListener { private lateinit var sensorManager: SensorManager; private lateinit var sensor: Sensor; @@ -20,7 +17,7 @@ abstract class BaseSensorActivity : BaseActivity(), SensorEventListener { super.onResume() sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager sensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); - sensorManager.registerListener(this, sensor, SAMPLING_RATE); + sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_UI); } override fun onStop() { diff --git a/src/MagSend/app/src/main/java/dev/kaderli/magsend/ReceiveActivity.kt b/src/MagSend/app/src/main/java/dev/kaderli/magsend/ReceiveActivity.kt index c01c3b3..69ee708 100644 --- a/src/MagSend/app/src/main/java/dev/kaderli/magsend/ReceiveActivity.kt +++ b/src/MagSend/app/src/main/java/dev/kaderli/magsend/ReceiveActivity.kt @@ -82,7 +82,7 @@ class ReceiveActivity : BaseSensorActivity() { continue } - if (secondValue.timestamp - firstValue.timestamp > 2900 && thirdValue.timestamp - secondValue.timestamp > 2900 && fourthValue.timestamp - thirdValue.timestamp > 2900) { + if (secondValue.timestamp - firstValue.timestamp > 2900 && thirdValue.timestamp - secondValue.timestamp > 2900) { return true } } @@ -91,6 +91,7 @@ class ReceiveActivity : BaseSensorActivity() { } private fun cleanSignal(signal: List>): List> { + // TODO: Improve this method // Remove outliers from the signal (single signal spikes or drops) val cleanSignal = signal.filterIndexed { index, sample -> var elementCount = 1 @@ -107,7 +108,7 @@ class ReceiveActivity : BaseSensorActivity() { nextIndex++ } - elementCount > 5 + elementCount > 3 } return cleanSignal @@ -142,7 +143,7 @@ class ReceiveActivity : BaseSensorActivity() { timeDifferences.add(sample.timestamp - compressedSignal[index - 1].timestamp) } - val clockTimeThreshold = 460//timeDifferences.max() * 0.75 + val clockTimeThreshold = 900//timeDifferences.max() * 0.75 val packetData = ArrayList() compressedSignal.forEachIndexed { index, sample -> @@ -160,7 +161,7 @@ class ReceiveActivity : BaseSensorActivity() { } } - //Log.i(TAG, "$timeDifferences") + Log.i(TAG, "$timeDifferences") //Log.i(TAG, "$cleanSignal") return packetData diff --git a/src/website/scripts/Constants.js b/src/website/scripts/Constants.js index 9b1cd94..389a088 100644 --- a/src/website/scripts/Constants.js +++ b/src/website/scripts/Constants.js @@ -5,7 +5,7 @@ class Constants { * @type {Number} */ static get CLOCK_TIME() { - return 500; + return 1000; } /**