00_TCM: Änderungen an den Routinen TCM_Read($) und TCM_Write($$$)

Begonnen von klaus.schauer, 07 Juni 2016, 14:53:33

Vorheriges Thema - Nächstes Thema

klaus.schauer

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.

rudolfkoenig

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.

klaus.schauer

Vielleicht kann sich ja ein DevIO-Kundiger eine Lösung überlegen und dem Anwender zum Test zur Verfügung stellen.

rudolfkoenig

#3
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