Jump to content

Recommended Posts

  • Replies 81
  • Created
  • Letzte Antwort

Top Posters In This Topic

Geschrieben

also, der Inhalt der $packet Variable ist leer - drum gibt es auch nix zum "unpack" und den "unknown Index" Fehler.

Aufgetreten ist der Fehler zuletzt im Zusammenhang mit Enummerierung nach einem ReConnect aufgetreten ist.

Also zuerst kommt eine "did not respond in time" Exception. Dann mach ich ein Disconnect und ein Connect. Im Connect-Callback wird die Enumeration ausgelöst.

Und der nächste DispatchCallback bringt dann leere $packets.

Ich hab jetzt in der IpConnection.php die Zeile 1110 folgendermassen verändert:

    private function handleResponse($packet, $directCallbackDispatch)
             {if (strlen($packet)<4) {debug("REINWEB_TF_DEBUG");debug($packet);sleep(2);throw new TinkerforgeException("Empty Packet Received");}

Ich wollte die Zeilenanzahl nicht verändern, drum hab ich alle Commands so grauslich in die Zeile 1110 gepackt.

Es wird wohl wieder ein paar Stunden dauern, bis der Fehler wieder auftritt.

 

Anmerken möcht ich noch, dass ich den Stack als solches nicht reseten oder power-cyclen musste. Einfach das PHP Programm neu starten und es hat wieder ordentliche "$packet" gegeben.

lg, Reinhard

Geschrieben

Nun ist es wieder passiert.

Diesmal war aber $packet nicht leer - sondern der Inhalt war "2"!?!?

Aufgetreten ist es wieder im Rahmen eines erneuten Enummerierungs-Callbacks.

Ist 2x hintereinander vorgekommen und dann nach einiger Zeit nochmals.

 

Durch meine Source-Änderung im IpConnection wurde die TinkerforgeException geworfen und mein Programm ist einwandfrei weitergelaufen (d.h. es sind danach wieder ordentliche Packets gekommen...)

lg, Reinhard

Geschrieben

Gibt debug() den $packet als ASCII oder UTF-8 aus? Das erklärt vielleicht deine "2", denn $packet enthält Binärdaten die nicht ASCII und auch nicht UTF-8 sind.

 

Gib mal bitte bin2hex($packet) statt direkt $packet aus.

 

Test auch bitte auf "strlen($packet) < 8" statt < 4.

  • 2 weeks later...
Geschrieben

Änderungen umgesetzt.

Ich erkenne eine Korrelation zwischen "Neu-Enummerierung" eines Bricklets und dem leeren Packet.

Möglicherweise tritt das Problem dann auf, wenn zeitleich eine Neu-Enummerierung abläuft und das gleiche Bricklet einen Callback auslöst.

Wobei "gleichzeitig" bei PHP ja so eine Sache ist....

 

Geschrieben

YES, WiFi2.0 Firmware 2.0.3

 

Nachdem ich die Möglichkeit erhalten habe, die neue WiFi2.0 mit Firmware 2.0.3 einzusetzen laufen sämtliche Stapel seit mehreren Tagen ununterbrochen!

Rock-Solid!

 

Folgende Tests über mehr als 48h gemacht:

Weihnachtsbeleuchtung als zufälliges 'Kerzenflackern' mit Frameduration 100ms. (Temperatur -4°C)

1x WiFi2.0 (2.0.3)

1x Master2.1 (2.4.1) -> LEDStripBricklet1.0 (2.0.6) -> 200xWS2801

 

Läuft stets! mit kleine Stotterer zwischendurch aber keine Timeouts!

 

Grosses LED-Panel im brickv (Moving Color Dot / Moving Color Gradient)

1x Master2.1(2.4.1) -> LEDStripBricklet1.0(2.0.6) -> 240x SK6812RGBW

1x WiFi2.0 (2.0.3)

1x Master2.1(2.4.1) -> LEDStripBricklet1.0(2.0.6) -> 235x SK6812RGBW

1x Stepdown 1.1

 

Läuft stets! mit kleine Stotterer zwischendurch und ca. 1-2 Timeouts pro Stunde!

 

und natürlich auch der Test aus dem Posting vom November 16, 2016, 16:34:22: Läuft stets, wie erwartet.

 

 

Nun bin ich wieder begeistert von Tinkerforge! Danke.

(Es wäre nun toll, wenn dies bei der WiFi 1 auch gelingen würde, oder aber diese mit einem Warnhinweis versehen würde.

 

Schöne Festtage und Happy Tinkering!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


×
×
  • Neu erstellen...