Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.066
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    42

Alle erstellten Inhalte von photron

  1. @duaw Die API Bindings sind generiert, ja, dass heißt aber nicht, dass auch der Release Prozess von 20 verschiedenen API Bindings vollständig automatisch ist (bzw. überhaupt vollständig automatisierbar wäre). Das dauert schon mal einen halben Tag. Daher ist es schon ein großer Unterschied, ob Erik hier im Forum mal eben eine Testversion eines API Bindings jemandem zum Testen gibt (die hier im Thread angehängten C/C++ Bindings für André), oder ob ich alle API Bindings ordentlich veröffentliche. Die MQTT Bindings wurde einzeln wegen des Bugfixes in der Version veröffentlicht und aufgrund der linearen Entwicklung der Bindings ist damit dann auch die neue API für das Barometer Bricklet damit hinein gekommen. Undokumentiert war die neue API, weil ich Dokumentation seit dem noch nicht neu generiert wurde. Die I2C Mode Funktion für das Barometer Bricklet (1.0) ist jetzt vollständig in allen Aspekten veröffentlicht.
  2. Bindings: C/C++ 2.1.29, C# 2.1.27, Delphi/Lazarus 2.1.28, Go 2.0.8, Java 2.1.27, JavaScript 2.1.28, LabVIEW 2.1.26, Mathematica 2.1.26, MATLAB/Octave 2.0.27, Perl 2.1.27, PHP 2.1.26, Python 2.1.26, Ruby 2.1.26, Rust 2.0.15, Shell 2.1.26, Visual Basic .NET 2.1.26 Add get-all-voltages and set/get-all-voltages-callback-configuration functions and all-voltages callback to Industrial Dual Analog In Bricklet 2.0 API [All] Add set/get-i2c-mode functions to Barometer Bricklet API [All] Add Automatic-Module-Name to manifest [Java] Download: C/C++, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Rust, Shell, Visual Basic .NET
  3. Bindings: C/C++ 2.1.29, C# 2.1.27, Delphi/Lazarus 2.1.28, Go 2.0.8, Java 2.1.27, JavaScript 2.1.28, LabVIEW 2.1.26, Mathematica 2.1.26, MATLAB/Octave 2.0.27, Perl 2.1.27, PHP 2.1.26, Python 2.1.26, Ruby 2.1.26, Rust 2.0.15, Shell 2.1.26, Visual Basic .NET 2.1.26 get-all-voltages und set/get-all-voltages-callback-configuration Funktionen und all-voltages Callback zur Industrial Dual Analog In Bricklet 2.0 API hinzugefügt [Alle] set/get-i2c-mode Funktionen zur Barometer Bricklet API hinzugefügt [Alle] Automatic-Module-Name zum Manifest hinzugefügt [Java] Download: C/C++, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Rust, Shell, Visual Basic .NET
  4. Da fehlt nichts. Der HAT Zero Brick kommt auf das Raspberry Pi. Am HAT Zero Brick wird das Accelerometer Bricklet 2.0 mit einem 7p-7p Bricklet Kabel angeschlossen. Das war's auch schon auf der Hardwareseite. Auf Softwareseite muss auf dem Raspberry Pi Brick Daemon installieren werden, der dann den Zugriff auf das Accelerometer Bricklet 2.0 für Brick Viewer und die verschiedenen API Bindings bereit stellt.
  5. Fixes have been released as part of MQTT bindings version 2.0.10.
  6. Bindings: MQTT 2.0.10 Add all_voltages callback to Industrial Dual Analog In Bricklet 2.0 API Add set/get_i2c_mode function to Barometer Bricklet API Fix _device_name lookup for get_identity function and enumerate callback Fix string handling for Python 2 Download: MQTT
  7. Bindings: MQTT 2.0.10 all_voltages Callback zur Industrial Dual Analog In Bricklet 2.0 API hinzugefügt set/get_i2c_mode Funktion zur Barometer Bricklet API hinzugefügt _device_name Auflösung für get_identity Funktion und enumerate Callback repariert String Behandlung für Python 2 repariert Download: MQTT
  8. @cl- Hattest du zu dem Zeitpunkt als die brickd Probleme begonnen haben gerade auf macOS 10.15.4 aktualisiert? Ist brickd dann ganz tot, oder kannst du durch ab- und anstecken von Bricks an USB noch Meldungen im brickd.log erzeugen? Welchen Fehler bekommst du genau beim Verbindungsversuch, wenn die Verbindung scheitert? Timeout? Connection refused? Brick Viewer zeigt das leider (noch) nicht an. Dazu kannst du mit den API Bindings einen Verbindungsversuch machen, oder eindach ein per "telnet localhost 4223" einen Verbindungsversuch machen. @duaw Hast du bei dir denn auch macOS 10.15.4 laufen?
  9. Der Callback muss natürlich registriert sein bevor der Callback ausgelöst wird. Das ist aber in euren beiden Beispiele für den Enumerate Callback der Fall. @PaulPaulaner Du gibst dir aber sPro auch aus, oder? Nicht, dass einfach ipcon_connect oder ipcon_enumerate einen Fehler melden du den aber nicht siehst. Du hast aber auch Bricks/Bricklets angeschlossen, im Brick Viewer tauch was auf?
  10. Der ipcon_enumerate führt zum Auslösen des Callbacks, aber nicht synchron, sondern asynchron. Dass heißt ipcon_enumerate returned höchstwahrscheinlich bevor der Callback ankommt. Sprich, was passiert in deinem Programm nach dem Konstrukturaufruf? Wie lange lebt das CTF_Steuerung Objekt danach noch? Räumst du die IP Connection im Desktruktor wieder auf?
  11. Die Bricks mit 10 Pol Stecker haben I2C auf dem 10 Pol Stecker. Dies ist aber nur für interne Zwecke und nicht über die API der Bricks zugreifbar. Darüber kannst du keinen beliebigen I2C Sensor auslesen. Der HAT Brick schließt am I2C Anschluss des Raspberry Pis eine Real-Time Clock an und lädt den passenden Kernel Treiber per Device Tree dafür. Dadurch ist die I2C Schnittstelle des Raspberry Pis belegt. Der HAT Zero Brick (der auch auf einem normal großen Raspberry Pi passt) lässt den I2C Anschluss des Raspberry Pis frei. Allerdings musst du dir dann einen Adapter basteln, um an die Pins zu kommen. Dort kannst du dann mit python-smbus arbeiten. Alternativ zum HAT (Zero) Brick, kannst du auch einen Master Brick per USB anschließen, um Tinkerforge Bricks und Bricklets zu verwenden und hast so den Pin Header des Raspberry Pis frei, um dessen I2C Anschluss nutzen zu können.
  12. Das ist nicht normal. Was hast du denn so am Industrial Counter, Analog In und IO-16 Bricklet angeschlossen? Wie lang sind die Bricklet Kabel und sonstige Kabel? Wie versorgst du den Stapel mit Strom? PoE, Step-Down Power Supply oder USB Netzteil? Über das Multimeter solltest du keine statische Entladung hinbekommen, außer deine Hand kommt dem Aufbau dabei sehr nah. Bist du sicher, dass das nicht vielleicht ein Wackelkontakt ist und du beim messen/berühren den Aufbau bewegst und das das Problem erzeugt? Was musst du tun, damit die Ethernet Extension wieder erreichbar wird? Kannst du ein Foto vom aufbau zeigen?
  13. Windows speichert sich in der Registry Informationen zu jedem jemals angeschlossenen USB Gerät. Das diese Informationen so verfälscht/beschädigt werden können, dass das zu diesem Verhalten führt war mir nicht bekannt. Gut zu wissen.
  14. Nein, das ist ein anderes Problem. Das Problem vom FlyingDoc ist ein internes Socket Problem, das brickd aus dem Tritt bringt. Du hast eher einen Wackelkontakt in der USB Verkabelung der zu Fehlern in der USB Kommunikation führt. Es geht hier um eine IMU, die an einem PC funktioniert, aber an einem anderen nicht mehr? Von den Fehlermeldungen her sieht das wie gestörte USB Kommunikation aus. Da die IMU an einem PC funktioniert, gehe ich davon aus, dass das Problem nicht direkt an der IMU liegt. Ich tippe auf ein beschädigtes USB Kabel oder auf einen Wackelkontakt an der USB Buchse am PC. Verwendest du in beiden Fällen das selbe USB Kabel, oder testet du mit zwei verschiedenen USB Kabeln? Wenn du mit zwei verschiedenen USB Kabeln testet, dann teste bitte das Kabel vom funktionierenden PC am nicht-funktionierenden PC, um zu sehen ob es am Kabel liegt. Teste am nicht-funktionierenden PC andere USB Buchsen, um zu sehen ob es die eine USB Buchse ist. Teste am nicht-funktionierenden PC andere USB Geräte an der Buchse an der die IMU nicht funktioniert, um zu sehen ob es die eine USB Buchse ist.
  15. Bindings: JavaScript 2.1.27 Also call return-callbacks for pure setters Download: JavaScript
  16. Bindings: JavaScript 2.1.27 Return-Callbacks auch für reinen Settern aufrufen Download: JavaScript
  17. Firmware: LCD 128x64 Bricklet 2.0.8 Keine leeren Tabs anzeigen Keine falsche Antwort für die remove-gui-tab Funktion senden Download: LCD 128x64
  18. Firmware: LCD 128x64 Bricklet 2.0.8 Don't draw empty tabs if less than 3 are active Don't send wrong response from remove-gui-tab function Download: LCD 128x64
  19. Bindings: Go 2.0.7 Fix response length validation for empty responses Download: Go
  20. Bindings: Go 2.0.7 Response Längenprüfung für reine Setter repariert Download: Go
  21. Ich habe das Beispiel noch mal angepasst, damit zwischendrin der limited_count nicht außerhalb des erlaubten Bereichs liegen kann.
  22. Dazu nimmst du nicht den Wert selbst, sondern nimmst den aktuellen Wert, ziehst davon den letzte Wert ab. Das Ergebnis davon addierst du dann zu deinem beschränkten Wert und beschränkst den beschränkten Wert dann wieder... hm, ziemlich beschränkt. Versteht wahrscheinlich so keiner. Hier ein Python Beispiel: #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "XYZ" # Change XYZ to the UID of your Rotary Encoder Bricklet 2.0 from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_rotary_encoder_v2 import BrickletRotaryEncoderV2 UPPER_LIMIT = 10 LOWER_LIMIT = -10 last_count = None limited_count = None # Callback function for count callback def cb_count(count): global last_count global limited_count if last_count == None: last_count = count if limited_count == None: limited_count = count limited_count = min(max(limited_count + count - last_count, LOWER_LIMIT), UPPER_LIMIT) last_count = count print("Count: " + str(count)) print("Limited Count: " + str(limited_count)) print("") if __name__ == "__main__": ipcon = IPConnection() # Create IP connection re = BrickletRotaryEncoderV2(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected # Register count callback to function cb_count re.register_callback(re.CALLBACK_COUNT, cb_count) # Set period for count callback to 50ms without a threshold re.set_count_callback_configuration(50, True, "x", 0, 0) input("Press key to exit\n") # Use raw_input() in Python 2 ipcon.disconnect() Die limited_count Variable hält den Zählerwert, der hier zwischen -10 und +10 beschränkt wird. Auf limited_count wird jeweils die Änderung des eigentlichen Zählerwerts des Rotary Encoders addiert. Dadurch bleibt limited_count zwischen -10 und +10, reagiert aber wie gewünscht auf alle Änderungen von count, dabei spielt der eigentliche Wert von count keine Rolle, sondern nur dessen Änderungen.
  23. The space between -Xms and 64M is the problem. It has to read -Xms64M.
×
×
  • Neu erstellen...