Browse Source

Pre-AlphaV7

EpiTest
Raz492 2 years ago
parent
commit
d3a1380658

+ 55
- 31
app/src/main/java/de/edotzlaff/detection/EarthquakeLocation.java View File

import android.hardware.SensorManager; import android.hardware.SensorManager;
import android.os.Build; import android.os.Build;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.provider.ContactsContract;
import android.util.Log; import android.util.Log;


import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import de.edotzlaff.detection.detektion.Detektionssignal; import de.edotzlaff.detection.detektion.Detektionssignal;
import de.edotzlaff.detection.detektion.Epizentrum; import de.edotzlaff.detection.detektion.Epizentrum;
import de.edotzlaff.detection.detektion.Erdbeben; import de.edotzlaff.detection.detektion.Erdbeben;
import de.edotzlaff.detection.detektion.berechnung.mathObjekte.Koordinaten;


import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
private GoogleMap mMap; private GoogleMap mMap;
private static final String TAGEPIZENTRUM = "Epizentrum"; private static final String TAGEPIZENTRUM = "Epizentrum";
private DatabaseReference mDatenbank; private DatabaseReference mDatenbank;
private double latitudeD1, latitudeD2, latitudeD3, latitudeD4;
private double longitudeD1, longitudeD2, longitudeD3, longitudeD4;
private String dev1, dev2, dev3, dev4;


@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_earthquake_location); setContentView(R.layout.activity_earthquake_location);
getLocationInfo();
// Obtain the SupportMapFragment and get notified when the map is ready to be used. // Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this); mapFragment.getMapAsync(this);
//################################################################## vvv DB Code vvv ##################################################################################### //################################################################## vvv DB Code vvv #####################################################################################




public void getDataBaseInfo(int k)
public void getLocationInfo()
{ {
mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection"); mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection");
mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() { mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
if (!task.isSuccessful()) { if (!task.isSuccessful()) {
System.out.println("Datenbank Fehler in getDataBaseValuesNoListener"); System.out.println("Datenbank Fehler in getDataBaseValuesNoListener");
} }
else {
mapToDetektionssignale(task.getResult());
else{
defineGPSforMapping(task.getResult());
//ermittleEpizentrum(task.getResult());
//mapToDetektionssignale(task.getResult());
} }
} }
}); });
} }


public double getLocationInfo(String specific,int index)
public void defineGPSforMapping(DataSnapshot data)
{ {
double kp = 5;
mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection");
mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (!task.isSuccessful()) {
System.out.println("Datenbank Fehler in getDataBaseValuesNoListener");
}
else {
}
}

});
String breitengradString;
String laengengradString;
String androidID;
for(int i =1; i<=3; i++)
{
breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString();
laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString();
androidID = data.child("IDG" + i).child("a_androidid").getValue().toString();
double breitengrad = Double.parseDouble(breitengradString);
double laengengrad = Double.parseDouble(laengengradString);


return kp;
switch (i){
case 1:
latitudeD1 = breitengrad;
longitudeD1 = laengengrad;
dev1 = androidID;
break;
case 2:
latitudeD2 = breitengrad;
longitudeD2 = laengengrad;
dev2 = androidID;
break;
case 3:
latitudeD3 = breitengrad;
longitudeD3 = laengengrad;
dev3 = androidID;
break;
default:
break;
}
}
} }




@RequiresApi(api = Build.VERSION_CODES.O) @RequiresApi(api = Build.VERSION_CODES.O)
public Epizentrum ermittleEpizentrum(DataSnapshot data) public Epizentrum ermittleEpizentrum(DataSnapshot data)
{ {
System.out.println("############## EPIZENTRUM ###############");
Erdbeben erdbeben = new Erdbeben(); Erdbeben erdbeben = new Erdbeben();
erdbeben.addDetektionssignalList(mapToDetektionssignale(data)); erdbeben.addDetektionssignalList(mapToDetektionssignale(data));


} }





@RequiresApi(api = Build.VERSION_CODES.O) @RequiresApi(api = Build.VERSION_CODES.O)
public ArrayList<Detektionssignal> mapToDetektionssignale(DataSnapshot data) public ArrayList<Detektionssignal> mapToDetektionssignale(DataSnapshot data)
{ {
System.out.println("################# ARRAYLIST ####################");
ArrayList<Detektionssignal> detektionssignale = new ArrayList<>(); ArrayList<Detektionssignal> detektionssignale = new ArrayList<>();
for(int i=1; i<=3; i++) for(int i=1; i<=3; i++)
{ {
//ID als String //ID als String
detektionssignal.setDeviceId(data.child("IDG" + i).child("a_androidid").getValue().toString()); detektionssignal.setDeviceId(data.child("IDG" + i).child("a_androidid").getValue().toString());


//Koordinaten als ???
//Koordinaten
String breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString(); String breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString();
String laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString(); String laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString();
double breitengrad = Double.parseDouble(breitengradString); double breitengrad = Double.parseDouble(breitengradString);
double laengengrad = Double.parseDouble(laengengradString); double laengengrad = Double.parseDouble(laengengradString);
//TODO @Jan In welchem Datenformat muss breitengrad und laengengrad hier rein? Außerdem welche Einheit? m/s oder km/s?
//detektionssignal.setKoordinaten(breitengrad, laengengrad);
Koordinaten koordinaten = new Koordinaten(breitengrad, laengengrad);
detektionssignal.setKoordinaten(koordinaten);


//Wellengeschwindigkeit als int
//Welle in m/s
String welle = data.child("IDG" + i).child("w_wellengeschwindigkeit").getValue().toString(); String welle = data.child("IDG" + i).child("w_wellengeschwindigkeit").getValue().toString();
int wellengeschwindigkeit = Integer.parseInt(welle); int wellengeschwindigkeit = Integer.parseInt(welle);
detektionssignal.setGeschwErdbeben(wellengeschwindigkeit); detektionssignal.setGeschwErdbeben(wellengeschwindigkeit);


//Detektionssignal
detektionssignale.add(detektionssignal); detektionssignale.add(detektionssignal);
} }
return detektionssignale; return detektionssignale;
//########################################################################################################################################################################## //##########################################################################################################################################################################





//########################################################################################################################################################################## //##########################################################################################################################################################################
//################################################################## vvv Maps Code vvv ################################################################################### //################################################################## vvv Maps Code vvv ###################################################################################




//TODO Aron: Daten aus DB in die jeweiligen Devices einsetzten //TODO Aron: Daten aus DB in die jeweiligen Devices einsetzten
//aus DB für Device 1 long lat //aus DB für Device 1 long lat
LatLng divice1 = new LatLng(-34, 152);
mMap.addMarker(new MarkerOptions().position(divice1).title("Device 1").icon(BitmapDescriptorFactory
LatLng device1 = new LatLng(latitudeD1, longitudeD1);
mMap.addMarker(new MarkerOptions().position(device1).title("Device 1").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));


//aus DB für Device 2 long lat //aus DB für Device 2 long lat
LatLng divice2 = new LatLng(-33, 152);
mMap.addMarker(new MarkerOptions().position(divice2).title("Device 2").icon(BitmapDescriptorFactory
LatLng device2 = new LatLng(latitudeD2, longitudeD2);
mMap.addMarker(new MarkerOptions().position(device2).title("Device 2").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));


//aus DB für Device 3 long lat //aus DB für Device 3 long lat
LatLng divice3 = new LatLng(-34, 150);
mMap.addMarker(new MarkerOptions().position(divice3).title("Device 3").icon(BitmapDescriptorFactory
LatLng device3 = new LatLng(latitudeD3, longitudeD3);
mMap.addMarker(new MarkerOptions().position(device3).title("Device 3").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));


//man könnten noch eine IF Abfrage einbauen falls es 4 Devices gibt //man könnten noch eine IF Abfrage einbauen falls es 4 Devices gibt

+ 0
- 27
app/src/main/java/de/edotzlaff/detection/MainActivity.java View File

//################################################################## ^^^^ DB Code ^^^^ ################################################################################### //################################################################## ^^^^ DB Code ^^^^ ###################################################################################
//########################################################################################################################################################################## //##########################################################################################################################################################################




//##########################################################################################################################################################################
//################################################################## vvv Set Text of Device 1/2/3 on MainActivity vvv ####################################################

private void setText(){
TextView txtDevice1 = (TextView) findViewById(R.id.txtdevice1);
TextView txtDevice2 = (TextView) findViewById(R.id.txtdevice2);
TextView txtDevice3 = (TextView) findViewById(R.id.txtdevice3);
TextView txtDevice4 = (TextView) findViewById(R.id.txtdevice4);


txtDevice1.setText("Device 1"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");

txtDevice2.setText("Device 2"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");

txtDevice3.setText("Device 3"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");

txtDevice4.setText("Device 4"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");

}

//################################################################## ^^^^ Set Text of Device 1/2/3 on MainActivity ^^^^ ##################################################
//##########################################################################################################################################################################



//########################################################################################################################################################################## //##########################################################################################################################################################################
//################################################################## vvv Maps Code vvv ################################################################################### //################################################################## vvv Maps Code vvv ###################################################################################



+ 2
- 1
app/src/main/java/de/edotzlaff/detection/detektion/berechnung/EpizentrumRechnung.java View File

package de.edotzlaff.detection.detektion.berechnung; package de.edotzlaff.detection.detektion.berechnung;




import android.location.Location;
import android.os.Build; import android.os.Build;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
public LocalDateTime berechneEntstehungsZeitpunktLongLatt(Detektionssignal detektionssignal, Koordinaten koordEpi) public LocalDateTime berechneEntstehungsZeitpunktLongLatt(Detektionssignal detektionssignal, Koordinaten koordEpi)
{ {
float[] results = new float[1]; float[] results = new float[1];
LocalDateTime.distanceBetween(detektionssignal.getKoordinaten().getX(), detektionssignal.getKoordinaten().getY(), koordEpi.getX(), koordEpi.getY());
Location.distanceBetween(detektionssignal.getKoordinaten().getX(), detektionssignal.getKoordinaten().getY(), koordEpi.getX(), koordEpi.getY(), results);
float distanceInMeters = results[0]; float distanceInMeters = results[0];
int sec = (int) distanceInMeters/ detektionssignal.geschwErdbeben; int sec = (int) distanceInMeters/ detektionssignal.geschwErdbeben;
return detektionssignal.getAnkunftsZeit().minusSeconds(sec); return detektionssignal.getAnkunftsZeit().minusSeconds(sec);

Loading…
Cancel
Save