Ich habe den Python Code in Java übersetzt. Leider klappt der java Code nicht, er kommt nie aus der ersten While. Was kann ich machen?

... komplette Frage anzeigen

2 Antworten

Du musst ein anderes Thread aufnehmen, was GPIO high machen kann. Du sollst dafür GPIO im Python für Java umschreiben, oder das Thread von GPIO bitten.

Antwort bewerten Vielen Dank für Deine Bewertung

Macht das Programm das, was es soll?

Du gehst davon aus, dass am Anfang echo.isLow wahr ist. Dann setzt du solange das start, bis echo.isLow nicht mehr wahr ist.

Das gleiche mit echo.isHigh

Du vergleichst also quasi den spätesten Zeitpunkt von start mit dem spätesten Zeitpunkt von end.

Ist es das, was du eigentlich möchtest?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von javinator
24.11.2015, 23:00

Das Python Programm läuft einwandfrei, nur das Java Programm kommt aus der ersten while schleife nicht raus...
"while(echo.isLow()){"

Das hat mich auch im Python Programm stutzig gemacht, aber versuchen wir es doch mal gemeinsam nachzuvollziehen.
Ultraschallsensor feuert einen Schall in den Raum ab und wir wollen wissen wielange dauert es bis der schall wieder zurück ist um die Entfernung zu berechnen.

 trigger.high(); Thread.sleep(1); trigger.low();

In dem Code wird quasi ein Impuls erzeugt wir machen den sender für den bruchteil einer Sekunde an und dann wieder aus.
Damit ist der Schall unterwegs.

 while(echo.isLow()){ start = System.currentTimeMillis(); System.out.println("start..."+start); }

Jetzt zählen wir die Zeit solange bis unser Echo NICHT mehr low ist, also wir wieder den Schall aufgefangen haben richtig?
Die zweite while schleife müssten dann solange an sein wie wir dieses Signal auffangen bis es abbricht und zählen. Ich habe den Python code aus dem Internet und habe ihn nach meiner Kenntniss in Java übersetzt, leider gibt es KEIN funktionierendes Beispiel auf Java.

0

Was möchtest Du wissen?