reinweb Geschrieben November 25, 2016 at 10:56 Geschrieben November 25, 2016 at 10:56 @photron: Anhang dabei... ich teste heute abend mit einem modifizierten IpConnection Modul... Zitieren
reinweb Geschrieben November 26, 2016 at 15:34 Geschrieben November 26, 2016 at 15:34 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 Zitieren
reinweb Geschrieben November 28, 2016 at 12:25 Geschrieben November 28, 2016 at 12:25 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 Zitieren
reinweb Geschrieben November 28, 2016 at 19:38 Geschrieben November 28, 2016 at 19:38 Wieder aufgetreten. Manchmal enthält das $packet "2" - manchmal auch "" (also nix). Wenn es auftritt, dann immer mehrmals (2-3x) hintereinander. Vielleicht sollte ich einfach einen längeren Sleep einbauen. Zitieren
photron Geschrieben November 29, 2016 at 17:00 Geschrieben November 29, 2016 at 17:00 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. Zitieren
reinweb Geschrieben December 13, 2016 at 10:22 Geschrieben December 13, 2016 at 10:22 Ä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.... Zitieren
Quantasy Geschrieben December 15, 2016 at 23:24 Geschrieben December 15, 2016 at 23:24 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! Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.