diff --git a/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java b/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java index 46205a5..89f7097 100644 --- a/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java +++ b/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java @@ -17,13 +17,13 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv private SensorManager bsmanager; private ArrayList Gesamt_be; - private int sensorType = Sensor.TYPE_GYROSCOPE, zaehler_runde =0, listen_groesse = 10000; + private int sensorType = Sensor.TYPE_GYROSCOPE, zaehler_runde =0, listen_groesse = 200, kalibrieren; private Sensor sens, sensor_l; private float x_value = 0, y_value, z_value, Vorbesetzung = 0, gesamt_runde =0; - private double Schwellwert = 0.5, mittelwertsumme = 0.0, Offset; + private double Schwellwert = 0.2, mittelwertsumme = 0.0, Offset = 0.1; String Daten, Warnung, Zeitstempel; TextView Daten_Bsensor, Warnung_Bsensor, test; - private boolean toggle = true, ts_setzen = true, kalibrieren; + private boolean toggle = true, ts_setzen = true, start_messen; @Override protected void onCreate(Bundle savedInstanceState) { @@ -42,15 +42,16 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv sens = bsmanager.getSensorList(sensorType).get(0); } Gesamt_be = new ArrayList(); - for (int i = 0; i < listen_groesse; i++){ + for (int i = 0; i < listen_groesse ; i++){ Gesamt_be.add(Vorbesetzung); } - kalibrieren = true; + kalibrieren = 0; + start_messen = false; } public static String getTimestamp(){ Long tslong = System.currentTimeMillis(); - SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy, HH:mm:ss"); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); Date date = new Date(tslong); String result = sdf.format(date); @@ -69,6 +70,7 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv Gesamt_be.remove(zaehler_runde); Gesamt_be.add(zaehler_runde, gesamt_runde); mittelwertsumme = 0.0; + //Mittelwert des Arrays berechnen for (int i = 0; i < listen_groesse; i++){ if (Gesamt_be.get(i) < 0){ @@ -78,17 +80,18 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv } } mittelwertsumme = mittelwertsumme/listen_groesse; - if (kalibrieren == true){ + if (kalibrieren < listen_groesse){ Offset = mittelwertsumme; - kalibrieren = false; + kalibrieren++; + }else { + start_messen = true; } - mittelwertsumme = mittelwertsumme - Offset; StringBuilder testsb = new StringBuilder(); testsb.append(mittelwertsumme); String tests = testsb.toString(); test.setText(tests); - if((mittelwertsumme > Schwellwert ) & (ts_setzen == true)){ + if((mittelwertsumme > (Schwellwert+Offset) ) & (ts_setzen == true) &(start_messen == true)){ Zeitstempel = getTimestamp(); StringBuilder ts = new StringBuilder(); ts.append("Warnung: ") @@ -98,8 +101,8 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv Warnung = ts.toString(); Warnung_Bsensor.setText(Warnung); ts_setzen = false; - }else if((mittelwertsumme > Schwellwert) & (ts_setzen == false)){ - } else if ((mittelwertsumme < Schwellwert) & (ts_setzen == false)) { + }else if((mittelwertsumme > (Schwellwert+Offset)) & (ts_setzen == false)){ + } else if ((mittelwertsumme < (Schwellwert+Offset)) & (ts_setzen == false)) { Warnung_Bsensor.setText(""); ts_setzen = true; }