Ich verwende rxtx, um eine Verbindung zu einem seriellen Port herzustellen. Alles funktioniert gut, aber es gibt ein Problem, das ich nicht lösen kann.Java-Fehler beim Trennen des Geräts vom COM-Port
Sobald verbunden und lesen, gibt es die Möglichkeit, dass die Benutzer das Gerät trennen (ja ... Benutzer ...). Wenn dies geschieht, bekomme ich folgende Fehlermeldung:
ich keine Ausnahme erhalten, es tötet nur Java SE (java.exe). Wenn ich eine Ausnahme erhalten würde, würde ich einfach entsprechend handeln, aber in diesem Szenario funktioniert meine App nicht mehr und ist geschlossen.
Ich benutze InputStream, um von der seriellen Schnittstelle zu lesen. InputStream input = serialPort.getInputStream();
Ich denke, das Problem ist, dass der Stream geöffnet ist und es nicht erkennt, wenn das Gerät geschlossen ist. Es passiert, wenn ich mit dieser Zeile lese:
byte singleData = (byte) input.read();
Ich konnte keine Methode finden, die mir helfen würde, den Zustand vor dem Lesen zu testen. Auch wenn ich nicht lesen (oder mit dem InputStream arbeiten), nach ein paar Sekunden tritt der Fehler trotzdem auf (ich denke jemand versucht, die Eingabe oder etwas zu schließen).
Wie bekomme ich dieses Ereignis (Gerät nicht angeschlossen)? Wie soll ich den Port und den Eingabestream schließen?
Vielen Dank im Voraus.
Bitte keine Links zu externen Informationen veröffentlichen. Links werden schlecht. Ihre Frage sollte in sich geschlossen sein, damit sie auch in Zukunft ihren Wert behält. Der Fehler, den Sie sehen, liegt wahrscheinlich im C-Code, der der Java-Bibliothek zugrunde liegt (über JNI). Dies ist wahrscheinlich ein Fehler in RXTX. Der beste Ort, um Hilfe zu erhalten, wäre wahrscheinlich die [RXTX Github Site] (https://github.com/rxtx/rxtx). –
Jim, danke für deine Antwort. Stackoverflow ließ mich das Bild nicht posten, gab mir nur diese Option. Ich suche deinen Link. Ich lasse diese Frage trotzdem und hoffe, dass mir jemand helfen kann. – Damian