Browse Source

Miko und Beschleunigung: funktioniert

Mikro_Beschleunigung
Franziska Bausewein 1 year ago
parent
commit
c931f816cd
1 changed files with 34 additions and 28 deletions
  1. 34
    28
      app/src/main/java/com/example/greenwatch/Mikrofon_Beschleunigung.java

+ 34
- 28
app/src/main/java/com/example/greenwatch/Mikrofon_Beschleunigung.java View File

} }
kalibrieren = 0; kalibrieren = 0;
start_messen = false; start_messen = false;
kalibrierung_do = true;
// kalibrierung_do = true;
} }


public static String getTimestamp(){ public static String getTimestamp(){
} }






@Override @Override
protected Void doInBackground(Long... params) { protected Void doInBackground(Long... params) {


boolean erlaubt_rise = true; boolean erlaubt_rise = true;
boolean erlaubt_fall = true; boolean erlaubt_fall = true;


if(kalibrierung_do){
// Warten für 3 Sekunden
/*long startTime = System.currentTimeMillis(); // Startzeit
while (System.currentTimeMillis() - startTime < 3000) {
//Warten
}*/
//3s warten auf weitere Ausführung
try {
Thread.sleep(3000);


} catch (InterruptedException e) {
e.printStackTrace();
}
int anzahlIterationen = 100;
float sum = 0;
for(int i = 0; i < anzahlIterationen; i++){
int z = recorder.read(puffer, 0, puffer.length);
Verarbeitungsergebnis kalibrierung = verarbeiten(puffer, z);
sum += (float) kalibrierung.db;
System.out.println("Aktueller_Wert Kalibrierung" +kalibrierung.db);
}
System.out.println("Summe:"+sum);
threshold = sum/anzahlIterationen;
kalibrierung_do = false;
}


for (; ; ) { for (; ; ) {
if (isCancelled()) { if (isCancelled()) {
Verarbeitungsergebnis ergebnis = verarbeiten(puffer, n); Verarbeitungsergebnis ergebnis = verarbeiten(puffer, n);
anzahlVerarbeitet += n; anzahlVerarbeitet += n;


//kalibrierung
if(kalibrierung_do){
// Warten für 3 Sekunden
/*long startTime = System.currentTimeMillis(); // Startzeit
while (System.currentTimeMillis() - startTime < 3000) {
//Warten
}*/
//3s warten auf weitere Ausführung
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//int z = recorder.read(puffer, 0, puffer.length);
//Verarbeitungsergebnis kalibrierung = verarbeiten(puffer, z);
int anzahlIterationen = 3000;
float sum = 0;
for(int i = 0; i < anzahlIterationen; i++){
sum += ergebnis.db;
}
threshold = sum/anzahlIterationen;
kalibrierung_do = false;
}



zaehlerZeitMessung++; zaehlerZeitMessung++;
if (zaehlerZeitMessung == maxZaehlerZeitMessung) { if (zaehlerZeitMessung == maxZaehlerZeitMessung) {
String status; String status;
short maxAmp = -1; short maxAmp = -1;
int db = 0; int db = 0;
int db_wert = 0;


if (n == AudioRecord.ERROR_INVALID_OPERATION) { if (n == AudioRecord.ERROR_INVALID_OPERATION) {
status = "ERROR_INVALID_OPERATION"; status = "ERROR_INVALID_OPERATION";
maxAmp = ringPuffer.maximum(); maxAmp = ringPuffer.maximum();
} }
//Umwandlung Amplitudenwert in dB //Umwandlung Amplitudenwert in dB
db = (int) (20*Math.log10(maxAmp));
db_wert = (int) (20*Math.log10(maxAmp));
if (db_wert > 0){
db = db_wert;
}


return new Verarbeitungsergebnis(status, maxAmp,0, db); return new Verarbeitungsergebnis(status, maxAmp,0, db);
} }
Daten = "Wir haben uns beim Sensor angemeldet"; Daten = "Wir haben uns beim Sensor angemeldet";
} else { } else {
Daten = "Das anmelden hat nicht geklappt"; Daten = "Das anmelden hat nicht geklappt";
}
}}
SharedPreferences p = getPreferences(Context.MODE_PRIVATE); SharedPreferences p = getPreferences(Context.MODE_PRIVATE);
threshold = p.getFloat(KEY_WERT, 40); threshold = p.getFloat(KEY_WERT, 40);
kalibrierung_do = p.getBoolean(KEY_KALIBRIERUNG, true); kalibrierung_do = p.getBoolean(KEY_KALIBRIERUNG, true);
aufnahmeTask = new AufnahmeTask(); aufnahmeTask = new AufnahmeTask();
aufnahmeTask.execute(); aufnahmeTask.execute();
} }
}}
}


@Override @Override
protected void onPause () { protected void onPause () {

Loading…
Cancel
Save