Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.189
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    52

Alle erstellten Inhalte von photron

  1. Der Servo Brick selbst ist dann über USB versorgt. Die Servo Motoren müssen entweder über den schwarzen Eingang auf dem Servo Brick versorgt werden, oder über eine Step-Down Power Supply. Die Step-Down Power Supply speist 5V und die extern angelegte Spannung in den Stack ein. Diese extern angelegte Spannung wird vom Servo Brick für die Servo Motoren verwendet, wenn keine Spannung am schwarzen Eingang des Servo Bricks selbst anliegt. Richtig, alle Bricks können für sich über USB verwendet werden. Einen Master Brick brauchst du nur, wenn du einen Stack baust, oder Extensions (RS485, WIFI, etc) verwenden willst. Die Step-Down Power Supply ist hier speziell, die funktioniert mit jedem Brick auch einzeln.
  2. Das sollte potentiell auch mit 5m Kabel funktionieren, da auf dem Servo Brick ein extra Treiber IC für die 7 Ausgänge sitzt.
  3. Bindings: C/C++ 1.0.24, C# 1.1.16, Delphi 1.0.8, Java 1.0.22, PHP 1.0.17, Python 1.0.25, Ruby 1.0.14 Add API for Voltage/Current Bricklet Add API for GPS Bricklet Download: C/C++, C#, Delphi, Java, PHP, Python, Ruby
  4. Bindings: C/C++ 1.0.24, C# 1.1.16, Delphi 1.0.8, Java 1.0.22, PHP 1.0.17, Python 1.0.25, Ruby 1.0.14 API für Voltage/Current Bricklet hinzugefügt API für GPS Bricklet hinzugefügt Download: C/C++, C#, Delphi, Java, PHP, Python, Ruby
  5. Brick Viewer 1.1.16 Add plugin for Voltage/Current Bricklet Add plugin for GPS Bricklet Downloads: Windows, Linux, Mac OS X
  6. Brick Viewer 1.1.16 Plugin für Voltage/Current Bricklet hinzugefügt Plugin für GPS Bricklet hinzugefügt Downloads: Windows, Linux, Mac OS X
  7. Hört sich alles soweit richtig an. Brick scheint grundsätzlich zu funktionieren (LED und Lauflicht leuchten), Brick Daemon scheint so weit zu funktionieren, da sich der Brick Viewer connecten kann. Brickd meldet Errors und Warnings im Application Event Log, das befindet sich in der Computer Verwaltung (da wo auch die Services aufgelistet sind) und dann unter "System Tools > Event Viewer > Application". Stehen dort Einträge mit Source Brickd? Wenn ja, was stehen da für Fehlermeldungen?
  8. Meinst du dass die WIFI Extension selbst als Access Point arbeitet und du dich dann dazu verbinden kannst? Ja das geht: http://www.tinkerforge.com/doc/Hardware/Master_Extensions/WIFI_Extension.html#access-point-modus-und-ad-hoc-modus
  9. Es wird als Ersatz für die Funktionalität von ipcon_join_thread dann ipcon_wait und ipcon_unwait geben. ipcon_wait blockiert so lange bis ipcon_unwait aufgerufen wird. Intern wird dazu eine Semaphore benutzt, ipcon_wait zählt runter und ipcon_unwait zählt rauf.
  10. Wen da "!Master Brick" im Gerätemanager steht dann ist höchstwahrscheinlich der Treiber nicht installiert.
  11. Den eigentliche Treiber (WinUSB.sys) liefern wir gar nicht aus, sondern den hat Windows schon selbst. Wir liefern im Prinzip nur die .inf Datei die Windows sagt, dass ein Brick ein WinUSB Gerät ist und Windows nutzt dann den passenden Treiber dafür. Zusätzlich liefern wir noch zwei notwendige Hilfsdateien (WdfCoInstaller01009.dll und winusbcoinstaller2.dll) die aber auch von Microsoft selbst kommen. So dass ich nicht weiß was ich da jetzt tun könnte/sollte. Zu DPC_WATCHDOG_VIOLATION findet man, dass das in Windows 8 vom neuerdings aktiven DPC/ISR Watchdog kommt der Treiber überwacht und einen BSOD auslöst wenn Treiberfunktionen zu lange dauern. Ich bin mir nicht sicher ob Microsoft sich da einen Gefallen getan hat. Meine Empfehlung ist, statt den Treiber der brickd beiliegt zu verwenden, den aktuelleren und signierten Treiber per Zadig zu installieren. Zadig bringt neuere Versionen von WdfCoInstaller01009.dll und winusbcoinstaller2.dll mit, WinUSB.sys kommt weiterhin von Windows selbst. Mit Firmwareversion 2.0 die in kürze für alle Bricks erscheinen wird ist dann unter Windows 8 keine Treiberinstallation mehr nötig. Da sich die Bricks dann selbst als WinUSB Gerät ausgeben können und die .inf Datei nicht mehr nötig ist. Bricks werden dann von Windows 8 automatisch erkannt und der passenden Treiber automatisch geladen, wie man dann z.B. von USB Sticks kennt. Damit sollte sich dann auch dieses Problem erledigt haben.
  12. Den Brick Daemon auf dem Rechner brauchst du nur wenn der Brick über USB angeschlossen ist. Bei WIFI und Ethernet Extension ist kein brickd auf dem Rechner nötig da die TCP/IP Verbindung direkt zum Brick geht. Es ist da also keine Erweiterung des brickd notwendig
  13. Sure, this is possible. You have two somewhat unrelated problems/tasks here: [*]Getting the illuminance value from the Ambient Light Bricklet [*]Writing the illuminance value into your database For the first task you can find example code in our API documentation: http://www.tinkerforge.com/doc/Software/Bricklets/AmbientLight_Bricklet_Java.html For the second task your Java program gets the illuminance value from the Ambient Light Bricklet and sends it to your webserver. How this is done in detail is up to you.
  14. Das Problem lag daran, dass ich nur mit gcc und nicht g++ getestet habe. Ist jetzt behoben in git. Danke für den Hinweise.
  15. Welche Fehler hast du denn ohne -fpermissive bekommen? Waren das Fehler in den C/C++ Bindings? Dann hätte ich sie gerne gewusst um das verbessern zu können.
  16. Ah. Du hältst mit pause() den Haupt-Thread an und arbeitest dann aus den Callback heraus. Ja das ist okay so Du hast also ipcon_join_thread so verwendet wie es gedacht war. Im Moment haben wir in Protokoll 2.0 keinen gleichwertigen Ersatz dafür. Deswegen meinte ich eben auch schon:
  17. Mir ist nicht klar wie du pause() verwenden willst hier. Du solltest aber definitiv nicht pause() in einem Callback aufrufen, vor allem nicht im Disconnected Callback, weil du damit den Callback Thread anhältst und der sich so dann nicht um das Auto-Reconnect kümmern kann. Du kannst generell nicht in einem Callback auf einen anderen warten, da es nur einen Callback Thread gibt.
  18. Ah, trickreich! Wenn brickd stirbt, dann reist die TCP/IP Verbindung ab. Dafür gab es vorher keinen richtigen Mechanismus das mitzubekommen. Dafür gibt es jetzt den Disconnected Callback: void disconnected(int disconnect_reason, void *user_data) { printf("disconnected: %d\n", diconnect_reason); } ipcon_register_callback(ipcon, IPCON_CALLBACK_DISCONNECTED, disconnected, NULL); disconnect_reason kann REQUEST, ERROR oder SHUTDOWN sein. Bei REQUEST hast du explizit vorher ipcon_disconnect aufgerufen. Bei SHUTDOWN hat die Gegenseite die Verbindung geschlossen. Bei ERROR ist ein Fehler aufgetreten. Standardmäßig ist Auto-Reconnect an, so dass die IPConnection in diesem Fall automatisch versucht die Verbindung wieder aufzubauen, nachdem sie dir den Callback über den Disconnect zugestellt hat. Das kann über ipcon_set_auto_reconnect kontrolliert werden. ipcon_set_auto_reconnect(ipcon, false) und ipcon_disconnect brechen ein laufendes Auto-Reconnect ab. Und ipcon_get_connection_state verät dir den aktuellen Zustand der TCP/IP Verbindung. Als gegenstück zum Disconnected Callback gibt es den Connected Callback, der mitteilt dass die TCP/IP Verbindung aufgebaut wurde.
  19. Die generellen API Änderungen sind hier beschrieben: http://www.tinkerforge.com/doc/Protocol_20.html Es wird auch noch eine Portierungsanleitung geben, hier mal die wichtigsten Punkte: Die host und port Parameter sind von sind von ipcon_create nach ipcon_connect gewandert. ipcon_create stellt nicht mehr die TCP/IP Verbindung her, dass tut jetzt ipcon_connect. ipcon_connect startet auch erst die internen Threads. ipcon_enumerate nimmt kein Callback Parameter mehr, dafür ist jetzt ipcon_register_callback da. Es gibt neue Callbacks neben Enumerate, die darüber informieren wenn die TCP/IP hergestellt und getrennt wurde. <device>_create nimmt jetzt neben der UID noch die IPConnection als Parameter und es gibt kein ipcon_add_device mehr. <device>_register_callback nimmt jetzt ein user_data Parameter und alle Callback Signaturen sind um ein user_data Parameter erweitert. Der user_data Wert der bei <device>_register_callback übergeben wird wir dann an den registrierten Callback weitergereicht. Die meiste Information aus <device>_get_version ist jetzt im neuen Enumerate Callback untergebracht. Es gibt statt <device>_get_version jetzt nur noch <device>_get_api_version. Mit <device>_set_response_expected kann man für Setter aktivieren, dass der Brick eine Antwort schickt um sicher gehen zu können, dass der Setter auch angekommen ist. ipcon_discconnect wartet standardmässig auf das Beenden der internen Threads. Da die internen Threads jetzt nicht mehr durchlaufen sondern in ipcon_connect erzeugt und in ipcon_disconnect beendet werden funktioniert ipcon_join_thread nicht mehr wie vorher und wurde entfernt. Falls du einen solchen Syncronisierungsmeachnismus benötigst musst du ihn die jetzt selber bauen. Interne verwendet die IPConnection solche Dinge weiterhin. Müssen wir mal gucken was wir da machen können um Programme die ipcon_join_thread verwendet haben weiter zu unterstützen. Schau dir auch die aktualisierten Beispiele an.
  20. C/C++ Bindings im git sind jetzt für Protokoll v2 umgebaut.
  21. Brick Viewer 1.1.15 Support for LCD 20x4 Bricklet hardware version 1.2 Downloads: Windows, Linux, Mac OS X
  22. Brick Viewer 1.1.15 Support für LCD 20x4 Bricklet Hardware Version 1.2 Downloads: Windows, Linux, Mac OS X
  23. Entweder im Makefile die Variablen so setzen: LIBUSB_CFLAGS := -I/mnt/clfs/cross-tools/include/libusb-1.0 LIBUSB_LDFLAGS := -L/mnt/clfs/cross-tools/lib LIBUSB_LIBS := -lusb-1.0 oder make so aufrufen: make WITH_LIBUDEV=no LIBUSB_CFLAGS=-I/mnt/clfs/cross-tools/include/libusb-1.0 LIBUSB_LDFLAGS=-L/mnt/clfs/cross-tools/lib LIBUSB_LIBS=-lusb-1.0
  24. Ich habe gerade das Makefile so geändert dass du jetzt make WITH_LIBUDEV=no ausführen kannst und einen brickd ohne libudev bekommst. Vorher einmal make clean, damit die neuen Rules auch wirken.
  25. Um was zu tun? Ohne libudev zu compilieren?
×
×
  • Neu erstellen...