diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e6408bb..08bd489 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,6 +9,9 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.GreenWatch">
+
diff --git a/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java b/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java
index c565c6d..46205a5 100644
--- a/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java
+++ b/app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java
@@ -1,47 +1,139 @@
package com.example.greenwatch;
-import android.content.Context;
+import androidx.appcompat.app.AppCompatActivity;
+
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
-import androidx.appcompat.app.AppCompatActivity;
+import android.widget.TextView;
-public class Beschleunigungssensor extends AppCompatActivity implements SensorEventListener {
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+public class Beschleunigungssensor extends AppCompatActivity implements SensorEventListener{
private SensorManager bsmanager;
- private int sensorType = Sensor.TYPE_ACCELEROMETER;
- private Sensor Beschleunigungssensor;
+ private ArrayList Gesamt_be;
+ private int sensorType = Sensor.TYPE_GYROSCOPE, zaehler_runde =0, listen_groesse = 10000;
+ 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;
+ String Daten, Warnung, Zeitstempel;
+ TextView Daten_Bsensor, Warnung_Bsensor, test;
+ private boolean toggle = true, ts_setzen = true, kalibrieren;
- public Beschleunigungssensor() {
- bsmanager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
- if(bsmanager.getSensorList(sensorType).size()==0)
- {
- //logger.log("Es gibt den gewünschten Sensor
- //nicht");
- Beschleunigungssensor = null;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_beschleunigungssensor);
+
+ Daten_Bsensor = (TextView) findViewById(R.id.DatenBsensor);
+ Warnung_Bsensor = (TextView) findViewById(R.id.WarnungBsensor);
+ test = (TextView) findViewById(R.id.test);
+
+ bsmanager = (SensorManager) getSystemService(SENSOR_SERVICE);
+ if (bsmanager.getSensorList(Sensor.TYPE_GYROSCOPE).size() == 0) {
+ sens = null;
+ Daten = "kein B Sensor voranden";
+ } else {
+ sens = bsmanager.getSensorList(sensorType).get(0);
}
- else
- {
- Beschleunigungssensor = bsmanager.getSensorList(sensorType).get(0);
+ Gesamt_be = new ArrayList();
+ for (int i = 0; i < listen_groesse; i++){
+ Gesamt_be.add(Vorbesetzung);
}
+ kalibrieren = true;
}
+ public static String getTimestamp(){
+ Long tslong = System.currentTimeMillis();
+ SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy, HH:mm:ss");
+ Date date = new Date(tslong);
+ String result = sdf.format(date);
+ return result;
+ }
@Override
public void onSensorChanged(SensorEvent event) {
StringBuilder sb = new StringBuilder();
- sb.append("t=").append(event.timestamp)
- .append("\nx=").append(event.values[0])
+ sb.append("x=").append(event.values[0])//.append(event.timestamp)
.append("\ny=").append(event.values[1])
.append("\nz=").append(event.values[2]);
+ Daten = sb.toString();
+ Daten_Bsensor.setText(Daten);
+ gesamt_runde = event.values[0] + event.values[1] + event.values[2];
+ 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){
+ mittelwertsumme += (Gesamt_be.get(i) * (-1));
+ }else {
+ mittelwertsumme += Gesamt_be.get(i);
+ }
+ }
+ mittelwertsumme = mittelwertsumme/listen_groesse;
+ if (kalibrieren == true){
+ Offset = mittelwertsumme;
+ kalibrieren = false;
+ }
+ mittelwertsumme = mittelwertsumme - Offset;
+ StringBuilder testsb = new StringBuilder();
+ testsb.append(mittelwertsumme);
+ String tests = testsb.toString();
+ test.setText(tests);
+ if((mittelwertsumme > Schwellwert ) & (ts_setzen == true)){
+ Zeitstempel = getTimestamp();
+ StringBuilder ts = new StringBuilder();
+ ts.append("Warnung: ")
+ .append(Zeitstempel)
+ .append("\n")
+ .append(mittelwertsumme);
+ Warnung = ts.toString();
+ Warnung_Bsensor.setText(Warnung);
+ ts_setzen = false;
+ }else if((mittelwertsumme > Schwellwert) & (ts_setzen == false)){
+ } else if ((mittelwertsumme < Schwellwert) & (ts_setzen == false)) {
+ Warnung_Bsensor.setText("");
+ ts_setzen = true;
+ }
+ if (zaehler_runde < (listen_groesse -1)){
+ zaehler_runde++;
+ }else {
+ zaehler_runde = 0;
+ }
+ }
+ //Einstellen um bei Pausen keine Werte zu speichern -> höhere Priorität auf großen Bewegungen
+ //Vektor verlängern um Pausen geringer zu gewichten
+ //Kalibrierung: Vektor einmal füllen -> Durchschnitt berechnen,
+ //bei Schwellwert Ruhe Erwartungswert abziehen
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (sens != null) {
+ if (bsmanager.registerListener(this, sens, SensorManager.SENSOR_DELAY_GAME)) {
+ Daten = "Wir haben uns beim Sensor angemeldet";
+ } else {
+ Daten = "Das anmelden hat nicht geklappt";
+ }
+ }
}
@Override
- public void onAccuracyChanged(Sensor sensor, int accuracy) {}
- // if Abfrage ob values sich verändert haben
-}
+ protected void onPause() {
+ super.onPause();
+ if (sens != null) {
+ bsmanager.unregisterListener(this, sens);
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/greenwatch/MainActivity.java b/app/src/main/java/com/example/greenwatch/MainActivity.java
index 98aa213..d630a83 100644
--- a/app/src/main/java/com/example/greenwatch/MainActivity.java
+++ b/app/src/main/java/com/example/greenwatch/MainActivity.java
@@ -2,13 +2,40 @@ package com.example.greenwatch;
import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
public class MainActivity extends AppCompatActivity {
+ private Button Beschleunigungssensor;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+
+ final Button Beschleunigungssensor = (Button) findViewById(R.id.beschleunigungssensor);
+ Beschleunigungssensor.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(MainActivity.this, Beschleunigungssensor.class);
+ startActivity(intent);
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_beschleunigungssensor.xml b/app/src/main/res/layout/activity_beschleunigungssensor.xml
new file mode 100644
index 0000000..f952c92
--- /dev/null
+++ b/app/src/main/res/layout/activity_beschleunigungssensor.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 4fc2444..1947c8f 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -6,13 +6,42 @@
android:layout_height="match_parent"
tools:context=".MainActivity">
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file