FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: tupol am 05 Januar 2015, 15:32:24

Titel: BlockingCall - Begrenzte Länge des Rückgabewertes?
Beitrag von: tupol am 05 Januar 2015, 15:32:24
Hallo Rudi,

ich habe beim Modul 72_FRITZBOX.pm vermehrte Rückmeldungen, dass die Funktion ( {finishFn("returnvalue")} nach dem Ende des verzweigten "blockingCall" nicht aufgerufen wird.
Deshalb dazu eine Frage: Gibt es eine Längenbegrenzung beim Rückgabewert?

Gruß
tupol
Titel: Antw:BlockingCall - Begrenzte Länge des Rückgabewertes?
Beitrag von: rudolfkoenig am 05 Januar 2015, 19:38:33
Da ist mWn nichts begrenzt, allerdings wird die Funktion so aufgerufen:
{$finishFn($param)}
wobei $param in '' eingeschlossen wird, und vorher eine '->\' bzw. ;->;; Ersetzung stattfindet.
Ich sehe gerade: \n wird nicht(!) ersetzt. Das Ergebnis muss in FHEM-telnet akzeptiert werden.
-> Solange dein Rueckgabewert keine \n enthaelt, sollte es funktionieren.

Gib mal dein Rueckgabewert irgendie aus :)
Titel: Antw:BlockingCall - Begrenzte Länge des Rückgabewertes?
Beitrag von: tupol am 06 Januar 2015, 21:41:52
Danke für die Hilfe. Ich hoffe, ich habe die Ursache gefunden. Scheint aber nicht an blockingcall zu liegen sondern an einem seltsamen Verhalten von einigen Perl-Versionen beim Funktionsaufruf.
Titel: Antw:BlockingCall - Begrenzte Länge des Rückgabewertes?
Beitrag von: hexenmeister am 25 Januar 2015, 14:20:42
Hallo,

mir ist gerade etwas aufgefallen, was hoffentlich zum Thema passt. ;)
Wenn in dem Rückgabestring ein #-Zeichen vorhanden ist, wird die Finish-Funktion auch nicht aufgerufen.
Ich überlege gerade ob es noch weitere "gefährliche" Zeichen gibt und wie ich dies umschiffen kann.
Habe leider im Forum nichts dazu gefunden. Hat jemand einen Patentrezept?

Titel: Antw:BlockingCall - Begrenzte Länge des Rückgabewertes?
Beitrag von: rudolfkoenig am 25 Januar 2015, 14:52:22
Ja. All das was man in der FHEM Kommandozeile ausfuehren kann, funktioniert.
Titel: Antw:BlockingCall - Begrenzte Länge des Rückgabewertes?
Beitrag von: hexenmeister am 25 Januar 2015, 16:01:15
Danke!
Habe mein Problem mit Ersetzen/Zurückersetzen 'umgangen'.