USB RS232 Adapter - rausbekommen ob der Adapter abgesteckt wurde



  • Ich hab ne Anwendung die über einen USB RS232 Adapter mit einem Gerät plaudert.
    Dazu hat die permanent ein Handle auf die COM Schnittstelle dieses RS232 Adapters offen.

    Und jetzt bräuchte ich eine sichere Möglichkeit draufzukommen wenn der USB RS232 Adapter abgesteckt wurde.
    Natürlich failen dann haufenweise Calls, aber ich müsste eben wissen dass der Grund dafür ist "Gerät wurde abgesteckt".

    Wie macht man das?

    Den von mir erwarteten Fehlercode ERROR_DEVICE_NOT_CONNECTED bekomme ich auf jeden Fall nicht von den fehlschlagenden Funktionen zurück.
    Hmm...







  • @Meep Meep
    Danke! 🙂

    Bin aber kein Fan von Notifications und "stateful" Geschichten wenn es stateless auch geht.
    Da ich das Device sowieso pollen muss, und sowieso schon mitbekomme wenn ein Kommando fehlschlägt, möchte ich das auch über Polling lösen.
    Also quasi "wenn Fehler dann prüfen ob Device noch connected".

    Worst Case werd ich wohl einfach sagen "wenn 10x Fehler in Folge dann einfach annehmen Device ist nicht mehr da und in Reconnect Zustand wechseln".



  • @Mr C
    Den ganzen Code zur Kommunikation mit dem Device hab' ich ja schon, das funktioniert alles schon tip top.
    Jetzt ist nur die neue Anforderung dazugekommen dass ich nen Reconnect machen muss wenn das Gerät ab- und neu angesteckt wurde.

    Und wenn das passiert, dann bleibt das alte Handle ungültig - es wird nicht automagisch mit dem neuen Device verknüpft (was mMn. auch logisch vollkommen richtig und gut so ist).
    D.h. ich muss im Programm mitbekommen "ist abgesteckt => muss Handle zu und neu aufmachen".

    Ich glaube nicht dass dieser Fall in irgendwelchen Standardprogrammen zur Kommunikation über serielle Schnittstellen irgendwie berücksichtigt wird.


Log in to reply