BlockingCall - Begrenzte Länge des Rückgabewertes?

Begonnen von tupol, 05 Januar 2015, 15:32:24

Vorheriges Thema - Nächstes Thema

tupol

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

rudolfkoenig

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 :)

tupol

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.

hexenmeister

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?


rudolfkoenig

Ja. All das was man in der FHEM Kommandozeile ausfuehren kann, funktioniert.

hexenmeister

Danke!
Habe mein Problem mit Ersetzen/Zurückersetzen 'umgangen'.