In https://forum.fhem.de/index.php/topic,53535.msg459152.html#msg459152 werden Änderungen in den Routinen TCM_Read($) und TCM_Write($$$) vorgeschlagen:
my $po = $hash->{USBDev};
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
my $ClearedErrorFlags = $po->reset_error;
Ich kann nicht beurteilen, ob dies sinnvoll ist und keine Nebenwirkungen hat. Ich bitte um eine Bewertung und ggf. Alternativen, danke.
Die angezeigten Aenderungen sind Serialport@Windows spezifisch, und in diesem Forum hat bisher keiner mit seinen Windows-Serialport Kenntnissen angegeben, womoeglich gibt es solche Personen gar nicht :) -> Will sagen, du hoffst mAn hier vergeblich auf qualifizierten Feedback.
Wenn die (verlinkte) Theorie stimmt, dass bei gesetzten ErrorFlags eine Wiederholung des Schreibens/Lesens sinnvoll ist, dann sollte die Aenderung eher in DevIO.pm stattfinden. Ich erwarte eigentlich Errorhandling dieser Art vom OS.
Vielleicht kann sich ja ein DevIO-Kundiger eine Lösung überlegen und dem Anwender zum Test zur Verfügung stellen.
Die DevIo_OpenDev() Funktion sichert bisher zu, dass nach dem Aufruf die Verbindung zum Geraet steht. Man muesste also einen zusaetzlichen Callback spezifizieren, damit nonblocking Connect aufgerufen werden kann -> Ohne Aenderung im jeweiligen Modul gibt es kein nonblocking Connect.
Gibt es dafuer einen Bedarf?
P.S.: Sorry, bitte Beitrag ignorieren, habs verwechselt mit https://forum.fhem.de/index.php?topic=53309