Hallo,
ich nutze die RXTX-Bibliothek zur Ansteuerung eines Geräts über USB mit Hilfe eines FTDI-Wandler. RXTX hat die Eigenschaft, eine IOException zu werfen, wenn das USB-Kabel ausgesteckt wird. Hier ein Auszug aus der Konsole:
Da ich nicht direkt auf den RXTX-Sourcecode zugreifen kann, will ich nun die Ausgabe auf der Console überwachen. Wenn dann die obigen Fehlermeldungen erscheinen, will ich entsprechend reagieren können. Soweit die Theorie.
Leider klappts mit dem Auslesen noch nicht so ganz. Das ganze reagiert einfach nicht. Meine Idee war jetzt, dass es sich beim Fehlerstring um eine "Error"-Message handelt, in meinem Code setze ich aber auf einem normalen Input-String auf. Wie kann ich aber den Errorstring auslesen? Oder denke ich einfach zu kompliziert?
Hier mein Code:
Danke!
ich nutze die RXTX-Bibliothek zur Ansteuerung eines Geräts über USB mit Hilfe eines FTDI-Wandler. RXTX hat die Eigenschaft, eine IOException zu werfen, wenn das USB-Kabel ausgesteckt wird. Hier ein Auszug aus der Konsole:
Code:
Error 0x5 at /home/bob/foo/rxtx-devel/build/../src/termios.c(482): Zugriff verweigert
Error 0x5 at /home/bob/foo/rxtx-devel/build/../src/termios.c(2714): Zugriff verweigert
Error 0x5 at /home/bob/foo/rxtx-devel/build/../src/termios.c(482): Zugriff verweigert
Da ich nicht direkt auf den RXTX-Sourcecode zugreifen kann, will ich nun die Ausgabe auf der Console überwachen. Wenn dann die obigen Fehlermeldungen erscheinen, will ich entsprechend reagieren können. Soweit die Theorie.
Leider klappts mit dem Auslesen noch nicht so ganz. Das ganze reagiert einfach nicht. Meine Idee war jetzt, dass es sich beim Fehlerstring um eine "Error"-Message handelt, in meinem Code setze ich aber auf einem normalen Input-String auf. Wie kann ich aber den Errorstring auslesen? Oder denke ich einfach zu kompliziert?
Hier mein Code:
Code:
/*
* Erzeugt Fehlermeldung wenn USB-Kabel abgesteckt wird
* und leitet disconnect ein.
*/
public class ConnectorControl implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
if (readln().contains("Error 0x5")){
System.exit(0);
}
}
}
public static String readln()
{
try
{
// initiate input-reader
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in) );
// read input
String s = in.readLine();
// return input
return s;
}
catch( IOException e )
{
System.out.println( e.getMessage() );
}
return "No Input.";
}
Danke!