Timer für Fehlalare verbessert

This commit is contained in:
Michael Pilhoefer 2023-06-20 11:00:52 +02:00
parent 72527f9797
commit 07a7a273a5

View File

@ -4,7 +4,6 @@ import android.graphics.ImageFormat;
import android.media.Image; import android.media.Image;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.util.Log;
import android.util.Size; import android.util.Size;
import android.widget.TextView; import android.widget.TextView;
@ -27,24 +26,22 @@ public class KameraAktivitaet extends AppCompatActivity {
// PREVIEW // PREVIEW
// private PreviewView previewView; // private PreviewView previewView;
private boolean isMotionDetected; private boolean isMotionDetected;
private boolean camera_alarm; private boolean camera_alarm = false;
private TextView alarm; private TextView alarm;
private TextView test;
// Bildverarbeitung Variablen // Bildverarbeitung Variablen
private ByteBuffer previousBuffer; private ByteBuffer previousBuffer;
private int previousWidth; private int previousWidth;
private int previousHeight; private int previousHeight;
private int threshold = 50; private final int threshold = 50;
private int startX; private int startX;
private int startY; private int startY;
private int endX; private int endX;
private int endY; private int endY;
private static final long ALARM_RESET_DELAY = 5000; private static final long ALARM_RESET_DELAY = 5000;
private boolean isAlarmSet = false; private Runnable alarmResetRunnable;
private Handler alarmResetHandler = new Handler(); private final Handler alarmResetHandler = new Handler();
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -53,9 +50,7 @@ public class KameraAktivitaet extends AppCompatActivity {
// NUR FÜR TESTS // NUR FÜR TESTS
alarm = findViewById(R.id.textView); alarm = findViewById(R.id.textView);
test = findViewById(R.id.textView2);
// PREVIEW //
// previewView = findViewById(R.id.previewView); // previewView = findViewById(R.id.previewView);
final ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(this); final ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(this);
@ -99,9 +94,15 @@ public class KameraAktivitaet extends AppCompatActivity {
currentImage.close(); currentImage.close();
if (isMotionDetected) { if (isMotionDetected) {
alarm.setText("ALARM"); alarm.setText("ALARM");
camera_alarm = true; camera_alarm = true;
if(alarmResetRunnable != null) {
alarmResetHandler.removeCallbacks(alarmResetRunnable);
}
alarmResetRunnable = this::resetAlarmStatus;
alarmResetHandler.postDelayed(alarmResetRunnable, ALARM_RESET_DELAY); alarmResetHandler.postDelayed(alarmResetRunnable, ALARM_RESET_DELAY);
} }
} }
@ -182,9 +183,7 @@ public class KameraAktivitaet extends AppCompatActivity {
} }
} }
float averageLuminance = (float) sumLuminance / countPixels; return (float) sumLuminance / countPixels;
return averageLuminance;
} }
private int kleinstesQuadrat(int height, int width) { private int kleinstesQuadrat(int height, int width) {
@ -197,12 +196,10 @@ public class KameraAktivitaet extends AppCompatActivity {
} }
} }
private Runnable alarmResetRunnable = new Runnable() { private void resetAlarmStatus() {
@Override camera_alarm = false;
public void run() { alarm.setText("OK");
camera_alarm = false; alarmResetRunnable = null;
alarm.setText("OK"); }
}
};
} }