Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.050
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    39

Alle erstellten Inhalte von photron

  1. Okay, dass heißt also, dass die Kamera den Brick stört, selbst wenn dieser einfach nur vor sich hin den Motor fährt. Es findet keine aktive Kommunikation mit dem Brick zu diesem Zeitpunkt statt, welche von der Kamera gestörte werden könnte. Vielleicht ist es die Stromversorgung des Bricks, die die Kamera irgendwie stört. Wie versorgst du Brick und Motor? Ist der Brick über USB versorgt? Wenn ja hast du einen aktiven USB Hub den du zwischen PC und Brick stecken kannst, wobei die Kamera nicht an den Hub darf. Oder hast du eine Step-Down Power Supply um darüber den Brick zu versorgen.
  2. Ah, okay, das im Prinzip erwartet, dass beim abziehen des Bricks diese Fehler auftreten. Eigentlich sollte libusb es ordentlich mitbekommen, wenn ein USB Gerät entfernt wird. Allerdings ist Hotplug in libusb je nach der Version und Betriebssystem unterschiedlich gut unterstützt. Du kannst also abbrechende Read Transfers beim Abstecken des Bricks ignorieren. Die haben nichts mit deinem Problem zu tun. Was genau tust du denn? Konfigurierst du den Stepper Brick im Brick Viewer und lässt ihn dann per Forward Knopf einfach fahren? Und während der fährt und du im Brick Viewer nichts tust läuft der Motor nicht gleichmäßig und stottert? Das ist interessant, denn wenn du im Brick Viewer oder durch dein eigenes Programm keine Steuerbefehle absetzt, fährt der Stepper ja einfach vor sich hin ohne das über USB Kommuniziert wird.
  3. Okay, hier eine korrigierte Version zum Testen. tinkerforge_delphi_bindings_2_0_2_ca5b695c8174d4d75f180bb5460e61e1a2803129.zip
  4. Dass heißt, die 5 libusb Read Transfers, die brickd pro Brick benutzt um über USB Daten vom Brick zu lesen, brechen mit LIBUSB_TRANSFER_ERROR ab. Brick Daemon sollte dann versuchen diese Read Transfers neu abzuschicken. Kommen diese Warnings immer und immer wieder solange wie die Kamera angesteckt ist, oder nur einmal beim Anstecken der Kamera und dann ist wieder Ruhe? Deine Kamera schafft es irgendwie die USB Kommunikation zwischen Brick Daemon und Brick zu stören. Mir ist nicht klar wie oder warum. LIBUSB_TRANSFER_ERROR ist hier als Fehlermeldung leider nicht sehr aussagekräftig, der Fehler kann in libusb an vielen Stellen auftreten. Ich werde versuchen ob ich da libusb noch mehr Information entlocken kann. Hast du mal versucht Brick und Kamera an andere USB Anschlüsse anzuschließen? Vielleicht tritt das Problem nur in bestimmter Kombination auf.
  5. Okay, Move mit Länge 0 aufzurufen führt zu einen ERangeCheck. Das halte ich für übertrieben, da das an sich gültig ist. Aber ich habe jetzt einen extra Check ein gebaut um Move nur mit Längen > 0 aufzurufen. Doch das kann durchaus sein. Die Chip Temperatur ist nur proprtional zu wirklichen Temperatur. Der Wert kann einen solchen Offsetfehler haben. Wenn du den Mikrocontroller anwärmst, z.B. mit dem Daumen, dann solltest du die Temperatur steigen sehen. Wenn du mehrere Bricks da hast wirst du feststellen, das der Offsetfehler der Chip Temperatur eine große Streuung hat. Die Chip Temperatur ist daher nur dafür gut Temperaturveränderungen zu erkennen, aber nicht dafür geeignet die absolute Temperatur zu messen. Das ist richtig so wie es da implementiert ist. Was da allerdings fehlt sind explizite Casts für die Zuweisungen die Overflowen können, da sonst ERangeCheck Fehler auftreten können.
  6. Ich kann das TArray0To2OfUInt8 Problem reproduzieren. Ich könnte schwören ich hab das vor Release alles getestet und es hat funktioniert auch mit Delphi XE2. Ich bin gerade dabei das zu fixen.
  7. Ich denke du hast hier das gleiche Problem wie Bralph in diesem Thread: http://www.tinkerunity.org/forum/index.php/topic,1357.0.html Wenn ich das richtig sehe ist overwrite hier richtig, weil GetIdentity aus TDevice ja wirklich überschrieben werden soll. reintroduce überschreibt nicht wenn ich das richtig verstehe. Das Problem hier liegt in der mehrfachen Definition von TArray0To2OfUInt8. Ich bin dabei das zu korrigieren.
  8. Bindings: Python 2.0.2 Fix char list packing in Python3 Download: Python
  9. Bindings: Python 2.0.2 Char List Packing in Python3 korrigiert Download: Python
  10. Bindings: PHP 2.0.2 Fix UID encoding/decoding on 32bit systems Download: PHP
  11. Bindings: PHP 2.0.2 Encoding/Decoding der UID auf 32Bit Systemen korrigiert Download: PHP
  12. Bindings: Delphi 2.0.2 Rewrite socket code to use WinSock on Windows, allows to set TCP_NODELAY Download: Delphi
  13. Bindings: Delphi 2.0.2 Socket Code für Windows auf WinSock umgestellt, dies erlaubt es TCP_NODELAY zu setzen Download: Delphi
  14. Ich nehme an du hast ein 32bit Ubuntu. Damit konnte ich gerade das Problem reproduzieren. Auf 64bit tritt es nicht auf. Es hängt mit der Größe des internen Integertypes von PHP zusammen. Eine Lösung ist in Arbeit.
  15. No, the normal characters' bitmaps cannot be read from the LCD. I fixed generator to add the missing [].
  16. Der Brick Daemon funktioniert im Moment wirklich nur als Service. Es spricht aber nichts dagegen, ihn auch als normales Programm lauffähig zu machen. Bas brauch ein paar Änderungen, es sollte recht einfach sein. Ich setzte es mal auf die TODO Liste. Dementsprechend macht die optionale Service Installation im Moment keinen Sinn, das stimmt. Der Neustart hat denke ich historische Gründe, als brickd noch in Python war gab es wohl mal Probleme damit den Service ordentlich zu starten und ein Neustart des Systems war dann ein Workaround dafür, wenn auch ein drastischer. Ich persönlich hatte damit allerdings noch nie Probleme. Kommt auch auf die TODO Liste das noch mal anzusehen, ob man diesen Fall nicht besser behandeln kann, bzw ob er überhaupt noch besteht.
  17. Mit "nach dem Flashen" meinst du nach dem der Fortschrittsbalken für Write und Verify durch ist? Dann kann das eigentlich nur das Auslösen des Resets sein. Wenn du die Bricks dann manuell neustartest, dann funktionieren sie und haben auch die passende Firmwareversion? Wenn ja dann ist der Fehler harmlos. Wobei mir nicht klar ist warum das Flashen funktioniert das Neustarten aber nicht. Ich werde die Fehlermeldungen mal detaillierter machen damit man das in Zukunft besser nachvollziehen kann, denn ein "Serial write error" wird im Moment an mehreren Stellen ausgegeben.
  18. Das Problem war das in den Delphi Bindings TTcpClient verwendet wurde und da konnte ich nicht herausfinden wie ich da TCP_NODELAY setze. TTcpClient hat werder eine direkte Option für TCP_NODELAY noch eine SetSockOpt Funktion. TIdSocketHandle aus dem Indy Package hat SetSockOpt aber da wollte ich mich nicht auf die Verfügbarkeit von Indy verlassen müssen. Ich bin gerade dabei das einfach mit WinSock neu zuschreiben, da hab ich dann setsockopt und alles ist gut. Dennoch Danke für die Hinweise. Es gibt dann gleich eine neue Version der Delphi Bindings.
  19. Richtig, über den Enumerate Listener und einen ipcon.enumerate() Aufruf kannst du alle angeschlossenen Bricks und Bricklets dazu veranlassen sich zu melden. dr.setMonoflop(relay, true, ms); Das wirft keine TimeoutException da auf Setter wie setMonoflop standardmässig keine Antwort vom Brick(let) kommt. Dadurch können die Bindings dann nicht erkennen ob die Anfrage angekommen ist un nehmen an sie wäre es. Das kannst du ändern, indem du mittels dr.setResponseExpectedAll(true) für alle Funktionen des Dual Relay Bricklets eine Antwort erzwingst. Alternative kann das auch mittels dr.setResponseExpected(BrickletDualRelay.FUNCTION_SET_MONOFLOP, true) nur für setMonoflop erzwungen werden. Eine Antwort zu erzwingen hat den Vorteil, dass du in deinem Fall dann eine TimeoutException bekommst wenn kein Dual Relay Bricklet mit passender UID angeschlossen ist. Es hat aber auch den Nachteil, dass mehr Nachrichten dafür verschickt werden müssen.
  20. BorgelMorgel, daran ist einen Fehler in der 2.0.0 Firmware des Joysticks schuld, wodurch das Bricklet nicht auf alle Anfragen richtig geantwortet hat. In Version 2.0.1 ist der Fehler behoben. Danke für den Hinweis. Durch eine Änderung der Logik des Joystick Bricklets (war schon im Juni 2012) funktionierte das Find Corners Example nicht mehr wie vorgesehen. Das ist allerdings erst jetzt aufgefallen . Daher gibt es jetzt stattdessen das Find Borders Example.
  21. It was com.tinkerforge.IPConnection.TimeoutException in bindings version 1.x.y. I moved the TimeoutException to com.tinkerforge.TimeoutException in version 2.0.0, but missed to remove it from com.tinkerforge.IPConnection. The inner version of TimeoutException is not used anymore in the bindings and I just remove it in version 2.0.2. You only need com.tinkerforge.TimeoutException in your program. Sorry for this oversight.
  22. Bindings: Java 2.0.2 Remove unused IPConnection.*Exception classes Download: Java
  23. Bindings: Java 2.0.2 Unbenutzte IPConnection.*Exception Klassen entfernt Download: Java
×
×
  • Neu erstellen...