Hallo!
Ich versuche auf einem BeagleBone Black Board per Java die Inputs (GPIO) zu lesen. Das klappt auch, da ich die Datei:
lesen kann und so den Zustand ermittel.
Das öffnen und schließen der Dateien ist aber nicht sehr performant.
Angeblich kann ich auch mit einem Interrupt arbeiten. Hierzu habe ich den Input 1 auf "edge" geschaltet und er sollte den Zugriff auf die Datei "value" blockieren, bis der Wert sich geändert hat.
Nun müsste ich in java aber die Datei "value" so lesen, dass das Blocking von Linux auch funktioniert:
Dieser Code läuft aber nun im loop ohne zu warten.
ist
nicht passend? Ich weiß leider nicht, wie das blocking im Detail funktioniert.
Oder klappt die Kombination Linux und java so nicht?
Wäre schön wenn jemand hier mit Erfahrung sich melden könnte.
Danke!
Ich versuche auf einem BeagleBone Black Board per Java die Inputs (GPIO) zu lesen. Das klappt auch, da ich die Datei:
Code:
/sys/class/gpio/gpio*/value
Das öffnen und schließen der Dateien ist aber nicht sehr performant.
Angeblich kann ich auch mit einem Interrupt arbeiten. Hierzu habe ich den Input 1 auf "edge" geschaltet und er sollte den Zugriff auf die Datei "value" blockieren, bis der Wert sich geändert hat.
Nun müsste ich in java aber die Datei "value" so lesen, dass das Blocking von Linux auch funktioniert:
Java:
in = new FileInputStream(pfad + "gpio" + p.pinMap
+ "/value");
value = in.read() - 48;
System.out.println("Read " + p.description + ": "
+ value);
ist
Java:
in.read()
Oder klappt die Kombination Linux und java so nicht?
Wäre schön wenn jemand hier mit Erfahrung sich melden könnte.
Danke!