CUL - Entwicklung > Fehlerberichte

Problem mit DevIO.pm

<< < (5/5)

Ralf9:

--- Zitat ---Ich meine nicht DevIo_OpenDev, sondern die Modul-Eigene DefFn.
Und da sollte der Maintainer schon wissen, in welchem Fall sie eine Fehlermeldung statt undef zurueckliefert.
--- Ende Zitat ---

Ich meinte wie kann ich erkennen, wenn DevIo_OpenDev den connect z.B. wegen einem fehlerhaften define ablehnt?
Damit?

--- Code: ---if ($ret) {
  ...

--- Ende Code ---

Sidey:
Die Anzahl an Definitionen ist für den Fehler uninteressant.

Der Timer der gestartet wird ruft SIGNALduino_IdList auf.
Ob die Verbindung zum physischen Gerät besteht ist für die Funktion nicht relevant.

Relevant ist aber, ob $defs{<Name>} den Gerätehash liefert.

Das klappt nicht, weil im Core dieser Key gelöscht wird.

Dass der Key vom Core gelöscht wird, ohne das undefFn aufgerufen wird, war mir einfach nicht transparent.

Ich denke robuster Code kommt zu großen Teilen aus den Modules aber durchaus auch aus dem Core.

rudolfkoenig:

--- Zitat ---Ich meinte wie kann ich erkennen, wenn DevIo_OpenDev den connect z.B. wegen einem fehlerhaften define ablehnt?
--- Ende Zitat ---
Bei einem Problem wird die Fehlermeldung dem callback mitgeteilt, falls sie spezifiziert wurde (d.h. asynchroner Ablauf fuer http/websocket), ansonsten kommt die Fehlermeldung im Rueckgabewert.

Aber danke fuer den Denkanstoss: im aktuellen Code liefert DevIo_OpenDev _mit_ callback je nach Fehler (z.Bsp. DNS-Problem ohne gesetzten dnsServer) _auch_ als Rueckgabewert (und nicht nur im callback). Das ist mAn irrefuehrend, und fuehrte(?) in diesem Fall zum Problem, weil SIGNALduino_Define diesen Wert zurueckgeliefert hat.
Ich habe DevIo.pm angepasst, damit beim gesetzten callback _nie_ ein Fehler direkt zurueckgeliefert wird, sondern nur uebers callback.



--- Zitat ---Ich denke robuster Code kommt zu großen Teilen aus den Modules aber durchaus auch aus dem Core.
--- Ende Zitat ---
Das ist vermutlich richtig, es hat aber einen Preis und diverse Nebeneffekte.

roelleke:
Hallo,
komme erst gerade wieder dazu ins Forum zu schauen.

Ich have 2 Signalduinos angeschlossen. Einer über USB und der andere über LAN (Signalesp).
Ich habe keinen von beiden umbenannt und ich habe auch nicht erkennen können ob so etwas automatisch passiert, aber meiner Meinung ist nichts umbenannt worden.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln