} | } | ||||
else{ | else{ | ||||
defineGPSforMapping(task.getResult()); | defineGPSforMapping(task.getResult()); | ||||
//ermittleEpizentrum(task.getResult()); | |||||
ermittleEpizentrum(task.getResult()); | |||||
//mapToDetektionssignale(task.getResult()); | //mapToDetektionssignale(task.getResult()); | ||||
} | } | ||||
} | } | ||||
@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)); | ||||
if(Objects.isNull(epizentrum)) | if(Objects.isNull(epizentrum)) | ||||
{ | { | ||||
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!Kein Epizentrum vorhanden!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); | |||||
Log.i(TAGEPIZENTRUM, "Kein Epizentrum vorhanden"); | Log.i(TAGEPIZENTRUM, "Kein Epizentrum vorhanden"); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
Log.i(TAGEPIZENTRUM, "Epizentrum konnte ermittelt werden, Koordinaten: " + epizentrum.getKoordinaten().getX() + " " + epizentrum.getKoordinaten().getY()); | Log.i(TAGEPIZENTRUM, "Epizentrum konnte ermittelt werden, Koordinaten: " + epizentrum.getKoordinaten().getX() + " " + epizentrum.getKoordinaten().getY()); | ||||
} | } | ||||
return epizentrum; | return epizentrum; | ||||
} | } | ||||
@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++) | ||||
{ | { | ||||
detektionssignale.add(detektionssignal); | detektionssignale.add(detektionssignal); | ||||
} | } | ||||
System.out.println("detektionsingale size: " + detektionssignale.size()); | |||||
return detektionssignale; | return detektionssignale; | ||||
} | } | ||||
mDatenbank.child("IDG" + k).child("e_laengengrad").setValue(currentLocation.getLongitude()); | mDatenbank.child("IDG" + k).child("e_laengengrad").setValue(currentLocation.getLongitude()); | ||||
mDatenbank.child("IDG" + k).child("h_timestamp").setValue(Calendar.getInstance().getTimeInMillis()); | mDatenbank.child("IDG" + k).child("h_timestamp").setValue(Calendar.getInstance().getTimeInMillis()); | ||||
mDatenbank.child("IDG" + k).child("i_amplitude").setValue(1000); | mDatenbank.child("IDG" + k).child("i_amplitude").setValue(1000); | ||||
mDatenbank.child("IDG" + k).child("w_wellengeschwindigkeit").setValue(4500); | |||||
mDatenbank.child("IDG" + k).child("w_wellengeschwindigkeit").setValue(10); | |||||
} | } | ||||
//###### Bei Eintragungen in der DB #### | //###### Bei Eintragungen in der DB #### | ||||
{ | { | ||||
if(analyzeForFullIDG(data,i)) | if(analyzeForFullIDG(data,i)) | ||||
{ | { | ||||
//Ein voller IDG slot | |||||
takenIDG++; | takenIDG++; | ||||
} | } | ||||
} | } | ||||
if(takenIDG>=1 && takenIDG <=5) | if(takenIDG>=1 && takenIDG <=5) | ||||
{ | { | ||||
//Schreibt bei einer neuen vollen IDG ins Display | |||||
//Kommt bei einer neuen vollen IDG ins Display | |||||
for(writtenDevices = writtenDevices; writtenDevices <= takenIDG; writtenDevices++) | for(writtenDevices = writtenDevices; writtenDevices <= takenIDG; writtenDevices++) | ||||
{ | { | ||||
setDisplayText(data,writtenDevices); | setDisplayText(data,writtenDevices); | ||||
txtDevice4.setText("Device ID 4: "+ androidid + "\n" + "Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad +"\n" + "Time Stamp: "+ timestamp + "\n" + "LocalDateTime: " + localedatetime +"\n"+ "Amplitude: "+ ampltiude+"\n"); | txtDevice4.setText("Device ID 4: "+ androidid + "\n" + "Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad +"\n" + "Time Stamp: "+ timestamp + "\n" + "LocalDateTime: " + localedatetime +"\n"+ "Amplitude: "+ ampltiude+"\n"); | ||||
break; | break; | ||||
default: | default: | ||||
System.out.println("Default Case trifft zu"); | |||||
break; | break; | ||||
} | } | ||||
} | } |
public class Erdbeben { | public class Erdbeben { | ||||
//ToDO anpassen an Szenario umso mehr umso wahrscheinlich ein Ergebnis, oder Abbruchbedingung mit do while | //ToDO anpassen an Szenario umso mehr umso wahrscheinlich ein Ergebnis, oder Abbruchbedingung mit do while | ||||
public static final Integer SCHLEIFENDURCHLAUFTE = 400; | |||||
public static final Integer SCHLEIFENDURCHLAUFTE = 5000; | |||||
private Epizentrum epizentrum; | private Epizentrum epizentrum; |
public class EpizentrumRechnung { | public class EpizentrumRechnung { | ||||
//ToDo Schrittweite und Abstand auf Szenario anpassen | //ToDo Schrittweite und Abstand auf Szenario anpassen | ||||
private static final double SCHRITTWEITE = 0.02; | |||||
private static final double MAX_ABSTAND = 0.009; | |||||
private static final double SCHRITTWEITE = 0.0001; | |||||
private static final double MAX_ABSTAND = 0.001; | |||||
private static final int DOUBLESTELLEN = 8; | private static final int DOUBLESTELLEN = 8; | ||||
} | } | ||||
public boolean genuegendSchnittpunktevorhanden(ArrayList<EndpunktVerbindung> endpunktVerbindungen) { | public boolean genuegendSchnittpunktevorhanden(ArrayList<EndpunktVerbindung> endpunktVerbindungen) { | ||||
System.out.println("<<<<<<<<<<<<<<<<<<<<<<genuegendSchnittpunktevorhanden"); | |||||
for (EndpunktVerbindung endpunktVerbindung : endpunktVerbindungen) { | for (EndpunktVerbindung endpunktVerbindung : endpunktVerbindungen) { | ||||
ArrayList<Schnittpunkt> templist; | ArrayList<Schnittpunkt> templist; |