matthiku Geschrieben November 18, 2013 at 21:12 Geschrieben November 18, 2013 at 21:12 Hallo, bin gerade dabei NetIO mit TF auszuprobieren. Die Shell-Bindings laufen unter Windows 7. Der Computer mit dem BrickD ist nur ueber ein WAN verbunden, daher muss ich z.B. beim 'enumerate'-Befehl den Parameter '--duration 1000' anhaengen, damit die Antworten der Bricks und Bricklets ankommen, also: python tinkerforge --host <ip-addr> enumerate --duration 1000 Wenn ich aber mit den 'listen'-Befehl absetzen will, weiss ich nicht, wohin ich den duration-Parameter stellen soll, er wird ueberall abgewiesen. Wenn ich den listen-Befehl wie folgt absetze: python tinkerforge --host 25.120.190.207 listen --enable-execute ... bekomme nach dem Starten der NetIO-App folgenden Fehler im Fenster mit den Shell-Bindings immer wieder angezeigt: TypeError: Type str doesn't support the buffer API Die gesamte Fehlermeldung sieht wie folgt aus: 192.168.10.192 connected Exception in thread Client-Processor: Traceback (most recent call last): File "C:\Python33\lib\threading.py", line 639, in _bootstrap_inner self.run() File "C:\Python33\lib\threading.py", line 596, in run self._target(*self._args, **self._kwargs) File "tinkerforge", line 8469, in client_loop i = pending_data.find(group_terminator) TypeError: Type str doesn't support the buffer API Any ideas? Zitieren
photron Geschrieben November 19, 2013 at 09:52 Geschrieben November 19, 2013 at 09:52 Wenn ich aber mit den 'listen'-Befehl absetzen will, weiss ich nicht, wohin ich den duration-Parameter stellen soll, er wird ueberall abgewiesen. listen hat kein duration-Parameter. listen lauscht auf eingehende Anfragen bis du das Skript abbrichst. Wenn ich den listen-Befehl wie folgt absetze: python tinkerforge --host 25.120.190.207 listen --enable-execute ... bekomme nach dem Starten der NetIO-App folgenden Fehler im Fenster mit den Shell-Bindings immer wieder angezeigt: TypeError: Type str doesn't support the buffer API Du verwendest Python3. Das String-Handling zwischen Python2 und Python3 unterscheidet sich deutlich. Ich habe wohl vergessen das String-Handling für den listen Befehl unter Python3 zu testen Angehängt eine verbesserte Version zum Testen.tinkerforge Zitieren
matthiku Geschrieben November 19, 2013 at 15:14 Autor Geschrieben November 19, 2013 at 15:14 Super, vielen Dank! Werde ich heute abend gleich testen! listen hat kein duration-Parameter. listen lauscht auf eingehende Anfragen bis du das Skript abbrichst. Das stimmt, aber der duration-Parameter wird ja fuer die Kommunikation mit dem Brick-Daemon benoetigt, nicht fuer die Kommunikation mit NetIO. Zitieren
photron Geschrieben November 19, 2013 at 16:06 Geschrieben November 19, 2013 at 16:06 listen hat kein duration-Parameter. listen lauscht auf eingehende Anfragen bis du das Skript abbrichst. Das stimmt, aber der duration-Parameter wird ja fuer die Kommunikation mit dem Brick-Daemon benoetigt, nicht fuer die Kommunikation mit NetIO. Ich bin mir nicht sicher, ob ich richtig verstehe wie du das meinst. Das --duration Parameter gibt an wie lange eine enumerate oder dispatch Befehl eingehende Callbacks von Bricks und Bricklets verarbeitet. Bei enumerate ist der Standardwert 250ms und bei dispatch ist es -1 (unbegrenzt). python tinkerforge --host <ip-addr> enumerate --duration 1000 Dieser Befehl fragt eine Enumerate an und verarbeitet dann 1s lang eingehenden Enumerate Callbacks. python tinkerforge --host <ip-addr> dispatch --duration 5000 temperature-bricklet XYZ temperature Dieser Befehl verarbeitet 5s lang eingehenden temperature Callbacks vom Temperature Bricklet mit UID XYZ. Wenn du die duration für einen enumerate oder dispatch Befehl, den du von NetIO sendest, ändern willst dann musst du das --duration Parameter in diesem Befehl angeben. Das hat nichts mit dem listen Befehl zu tun. Zitieren
matthiku Geschrieben November 20, 2013 at 14:07 Autor Geschrieben November 20, 2013 at 14:07 Jetzt ist alles klar! Der schwarze Peter liegt sozusagen dann bei der NetIO-Konfiguration. Der listen Befehl baut ja "nur" einen Proxy auf zwischen BrickD und NetIO ... Ich hatte mir halt vorgestellt, dass der listen Befehl den duration parameter dann immer anhaengt. Nochmals danke fuer die Aufklaerung! Zitieren
matthiku Geschrieben November 21, 2013 at 19:56 Autor Geschrieben November 21, 2013 at 19:56 Also der Fehler tritt nicht mehr auf. Aber ich bekomme noch keine Daten in meine NetIO demo app. Muss noch etwas rumprobieren. Mit Wireshark sehe ich, dass der korrekte 'get' Befehl vom Smartphone ankommt. Aber ich sehe keine Rueckantwort oder uebersehe sie. Gibt es eigentlich einen debug modus fuer den listen Befehl? Zitieren
photron Geschrieben November 22, 2013 at 09:40 Geschrieben November 22, 2013 at 09:40 Der listen Befehl gibt standardmäßig Daten auf die Konsole aus, die empfangen und versendet werden. 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.