Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.125
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    47

Alle erstellten Inhalte von photron

  1. Firmware: RS485 Bricklet 2.0.3 Response-Länge für modbus_master_write_single_register und modbus_master_write_single_coil Funktionen korrigiert Download: RS485 Bricklet
  2. Danke für den Hinweis. Ist jetzt korrigiert.
  3. Brick Logger 2.0.8 Add support for Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Temperature 2.0 and UV Light 2.0 Bricklet Downloads: Windows, Linux, macOS, RED Brick
  4. Brick Logger 2.0.8 Support für Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Temperature 2.0 and UV Light 2.0 Bricklet hinzugefügt Downloads: Windows, Linux, macOS, RED Brick
  5. Brick Viewer 2.3.16 Add support for Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Analog Out 2.0, Industrial Digital Out 4 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Isolator, LCD 128x64, OLED 128x64 2.0, One Wire, Temperature 2.0 and UV Light 2.0 Bricklet Add Data Logger support for Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Temperature 2.0 and UV Light 2.0 Bricklet Add gain control to Load Cell Bricklet 2.0 plugin Show correct unit in UV Light Bricklet plugin Make Real-Time Clock Bricklet (2.0) calibration process more robust Install start menu link for all users on Windows Downloads: Windows, Linux, macOS
  6. Brick Viewer 2.3.16 Support für Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Analog Out 2.0, Industrial Digital Out 4 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Isolator, LCD 128x64, OLED 128x64 2.0, One Wire, Temperature 2.0 und UV Light 2.0 Bricklet hinzugefügt Data Logger Support für Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Temperature 2.0 und UV Light 2.0 Bricklet hinzugefügt Gain Kontrolle zu Load Cell Bricklet 2.0 Plugin hinzugefügt Einheit im UV Light Bricklet Plugin korrigiert Real-Time Clock Bricklet (2.0) Kalibrierungsprozess ist jetzt robuster Startmenüeintrag wird unter Windows jetzt für alle Benutzer installiert Downloads: Windows, Linux, macOS
  7. Bindings: C/C++ 2.1.22, C# 2.1.20, Delphi/Lazarus 2.1.21, Java 2.1.20, JavaScript 2.1.20, LabVIEW 2.1.19, Mathematica 2.1.19, MATLAB/Octave 2.0.20, Perl 2.1.19, PHP 2.1.19, Python 2.1.19, Ruby 2.1.19, Shell 2.1.19, Visual Basic .NET 2.1.19 Break API to fix moving-average-length type in Distance IR Bricklet 2.0 API [All] Download: C/C++, C#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET
  8. Bindings: C/C++ 2.1.22, C# 2.1.20, Delphi/Lazarus 2.1.21, Java 2.1.20, JavaScript 2.1.20, LabVIEW 2.1.19, Mathematica 2.1.19, MATLAB/Octave 2.0.20, Perl 2.1.19, PHP 2.1.19, Python 2.1.19, Ruby 2.1.19, Shell 2.1.19, Visual Basic .NET 2.1.19 API Bruch um den Moving-Average-Length Typ in der Distance IR Bricklet 2.0 API zu korrigieren [Alle] Download: C/C++, C#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET
  9. Bindings: C/C++ 2.1.21, C# 2.1.19, Delphi/Lazarus 2.1.20, Java 2.1.19, JavaScript 2.1.19, LabVIEW 2.1.18, Mathematica 2.1.18, MATLAB/Octave 2.0.19, Perl 2.1.18, PHP 2.1.18, Python 2.1.18, Ruby 2.1.18, Shell 2.1.18, Visual Basic .NET 2.1.18 Add support for Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Analog Out 2.0, Industrial Digital Out 4 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Isolator, LCD 128x64, OLED 128x64 2.0, One Wire, Temperature 2.0 and UV Light 2.0 Bricklet [All] Fix compile errors in Delphi XE [Delphi/Lazarus] Convert all array parameters from static to open to accept dynamic arrays too [Delphi/Lazarus] Fix authentication server nonce packing [Perl] Fix single byte bool array unpacking Download: C/C++, C#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET
  10. Bindings: C/C++ 2.1.21, C# 2.1.19, Delphi/Lazarus 2.1.20, Java 2.1.19, JavaScript 2.1.19, LabVIEW 2.1.18, Mathematica 2.1.18, MATLAB/Octave 2.0.19, Perl 2.1.18, PHP 2.1.18, Python 2.1.18, Ruby 2.1.18, Shell 2.1.18, Visual Basic .NET 2.1.18 Support für Air Quality, Analog Out 3.0, Barometer 2.0, Distance IR 2.0, Dual Button 2.0, Industrial Analog Out 2.0, Industrial Digital Out 4 2.0, Industrial Dual 0-20mA 2.0, Industrial Dual Analog In 2.0, IO-16 2.0, Isolator, LCD 128x64, OLED 128x64 2.0, One Wire, Temperature 2.0 und UV Light 2.0 Bricklet hinzugefügt [Alle] Compile-Fehler in Delphi XE korrigiert [Delphi/Lazarus] Alle Array Parameter von Static zu Open kovertiert, um auch Dynamic Arrays annehmen zu können [Delphi/Lazarus] Authentication Server Nonce Packing korrigiert [Perl] 1-Byte bool Array Unpacking korrigiert Download: C/C++, C#, Delphi/Lazarus, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, Perl, PHP, Python, Ruby, Shell, Visual Basic .NET
  11. Firmware: Real-Time Clock Bricklet 2.0 2.0.2 Make date-time/timestamp getters synchronous again to avoid potential timeouts Download: Real-Time Clock 2.0
  12. Firmware: Real-Time Clock Bricklet 2.0 2.0.2 Datums und Uhrzeit Getter sind wieder synchron, um Timeouts durch überschriebene Anfragen zu vermeiden Download: Real-Time Clock 2.0
  13. Firmware: Real-Time Clock Bricklet 2.0 2.0.1 Remove unnecessary I2C communication to avoid date-time jumps Download: Real-Time Clock 2.0
  14. Firmware: Real-Time Clock Bricklet 2.0 2.0.1 Unnötige I2C Kommunikation entfernt, um Uhrzeitsprünge zu vermeiden Download: Real-Time Clock 2.0
  15. Brick Daemon 2.3.2 Fix notification event name handling on Windows 10 IoT Core Read USB string descriptors instead of faking them on Windows 10 IoT Core Add backward compatibility to RED Brick Image 1.9 Update bundled libusb to 1.0.22 on Windows and macOS, this fixes enumeration problems with ASMedia USB hubs, composite devices and bogus USB device address reports on Windows Add MSVC project on Windows Use systemd instead of init.d on Linux, if available Add initial Android support, no precompiled app available yet, brickd for Android has to be compiled from source Downloads: Windows, Linux (amd64, i386, armhf), macOS
  16. Brick Daemon 2.3.2 Notification Event Namensbehandlung auf Windows 10 IoT Core korrigiert USB String Descriptors werden jetzt auf Windows 10 IoT Core ausgelesen anstatt sie zu fingieren Abwärtskompatibilität zu RED Brick Image 1.9 wiederhergestellt Mitgelieferte libusb auf Windows und macOS auf 1.0.22 aktualisiert, dies behebt Enumerations-Probleme mit ASMedia USB Hubs, Composite Geräten und falschen USB Geräteadressen auf Windows MSVC Projekt auf Windows hinzugefügt Auf Linux wird systemd anstelle von init.d verwendet, wenn verfügbar Grundlegenden Android Support hinzugefügt, momentan gibt es keine vorkompilierte App, brickd für Android muss aus dem Quelltext erstellt werden Downloads: Windows, Linux (amd64, i386, armhf), macOS
  17. This isn't a Problem with Python 3.6. The Problem ist that you're using the IMU Brick (1.0) example with an IMU Brick 2.0. Try this example: https://www.tinkerforge.com/en/doc/Software/Bricks/IMUV2_Brick_Python.html#simple
  18. That's one of the reasons we are switching the Bricklet connector to a different connector that doesn't have this kind of free standing pins.
  19. Error code 31 means timeout. The Bricklet didn't respond in time to a request send by the example, see https://www.tinkerforge.com/de/doc/Software/Bricklets/SoundPressureLevel_Bricklet_JavaScript.html#api. Did you change the UID in the example to the UID of your Bricklet, as stated in line 5 of the example? var UID = 'XYZ'; // Change XYZ to the UID of your Sound Pressure Level Bricklet If you didn't then the example tries to talk to a Bricklet that doesn't exists and therefore will not answer, resulting in a timeout error.
  20. Standardmäßig ist es so, dass Android eine Activity bei Config Änderungen wie Rotation neustartet. Die brickd App startet im onCreate der Activity den Service uns stoppt ihn im onDestroy. Im Service läuft der eigentliche brickd Code. Das Problem hier ist jetzt, dass der Service in einem extra Thread die C main() Funktion von brickd aufruft. Der Neustart der Activity und des Service führt jetzt dazu, dass main() verlassen und dann nochmal aufgerufen wird. Das ist etwas was in der normalen Version von brickd nicht passiert. Wenn dort main() verlassen wird, dann endet der Prozess. Daher kommen einige Teile des brickd C Codes nicht damit klar, dass main() ein zweites mal aufgerufen wird. Weil beim zweiten Aufruf von main() gewissen Annahmen, die der Code über den Zustand des Programms macht, nicht mehr gelten. Die kurzfristige Lösung ist es den Neustart der Activity und damit des Services und damit des zweiten main() Aufrufs zu unterbinden. Dazu muss die Activity angeben, dass es die Config Änderungen wie Rotation selbst behandeln kann und daher nicht neugestartet werden muss. Das habe ich jetzt erstmal eingebaut. Die langfristige Lösung wird sein dem C Code beizubringen, dass main() auch mehrfach aufgerufen werden kann. Potentiell muss auch das Verhältnis von Activity und Service zu einander anders gebaut werden.
  21. Das ist komisch, dass du da die Parameter beim Starten alle angeben musst. Denn du gibst da jeweils exakt die Standardwerte an, außer beim Update Intervall, das ist standardmäßig 3 Sekunden. Beim Subscribe kennt MQTT # und * als Platzhalter im Topic. Dabei steht # für beliebig viele Element im Topic und * für exakt ein Element im Topic. Wenn du also das hier ausführst mosquitto_sub -v -t tinkerforge/bricklet/outdoor_weather/# dann sendet mosquitto_sub eine Subscribe Anfrage an den Broker für das tinkerforge/bricklet/outdoor_weather/# Topic. Der Broker vergleicht dann alle eingehenden Nachrichten mit dem Topic und sendet dann an mosquitto_sub alle die übereinstimmen. Der mosquitto_sub hat aber keinen Einfluss darauf was das brick-mqtt-proxy.py Script tut. So funktioniert MQTT nicht. MQTT arbeitet nach dem Publish/Subscribe Modell. Clients (mosquitto_sub, mosquitto_pub, brick-mqtt-proxy.py, etc) kommunizieren nicht direkt miteinander, sondern immer nur mit einem Broker der dann die Nachrichten zwischen den Clients weiterleitet. brick-mqtt-proxy.py verbindet sich mit dem Broker und sendet (Publish) im Update Intervall Nachrichten über die Bricks und Bricklets an den Broker. Das ist völlig unabhängig davon, ob noch anderen Clients verbunden sind, die die Nachrichten empfangen können, oder nicht. mosquitto_sub verbindet sich mit dem Broker und teilt diesem mit (Subscribe), dass es gerne Nachrichten unter dem angegebenen Topic empfangen würde. Der Broker schaut sich die Topics der eingehenden Nachrichten an (z.B. von brick-mqtt-proxy.py). Wenn eine Übereinstimmung mit einer Subscription vorliegt, dann wird die Nachricht an den entsprechenden Client weitergeleitet. Wenn sich keiner für die Nachricht interessiert wird sie im Broker verworfen. Du kannst dir das als stille Post mit 3 Personen vorstellen. Der Broker sitzt in der Mitte und brick-mqtt-proxy.py flüstert dem Broker was von links ins Ohr. Der Broker flüstert dann die Nachrichten weiter an mosquitto_sub auf der rechten Seite, aber nur die Nachrichten mit einem Topic das mosquitto_sub dem Broker vorher genannt hat. Wenn es nur darum geht deinem Nachbarn Daten weiterreichen zu können, dann ist wahrscheinlich eine einfache Portfreigabe des Broker Ports am einfachsten.
  22. Ich starte brick-mqtt-proxy.py auf dem PC an dem auch das Outdoor Weather Bricklet angeschlossen ist und der Mosquitto Broker läuft: python brick-mqtt-proxy.py Und dann laufen da unter tinkerforge/bricklet/outdoor_weather/<UID>/station_data tinkerforge/bricklet/outdoor_weather/<UID>/sensor_data die Daten ein: mosquitto_sub -v -t tinkerforge/bricklet/outdoor_weather/#
  23. Du kannst hier die aktuellste Version der brick-mqtt-proxy.py Datei herunterladen https://raw.githubusercontent.com/Tinkerforge/brick-mqtt-proxy/master/brick-mqtt-proxy.py und deine Version damit ersetzen. Dass sollte dann schon alles sein.
  24. Die jetzige Implementierung erwartete da folgendes: mosquitto_pub -t tinkerforge/bricklet/outdoor_weather/Es8/get_sensor_data/set -m 24 Das Vorgehen ist aber inkonsistent zum restlichen Verhalten des MQTT Proxies. An anderen Stellen wo wir solche Getter haben die ein Parameter haben ruft der MQTT Proxy intern den Getter mit allen möglichen Parameterwerten ab und erstellt daraus dann eine Message. Das habe ich jetzt auch für das Outdoor Weather Bricklet so abgeändert. Mit der aktuellen git Version kommt dann da sowas bei heraus (formatiert für bessere Übersicht): tinkerforge/bricklet/outdoor_weather/Fax/station_data { "_timestamp":1530613201.561859, "241":{ "wind_speed":0, "temperature":265, "wind_direction":255, "gust_speed":6, "rain":120, "humidity":31, "last_change":1526, "battery_low":false }, "149":{ "wind_speed":0, "temperature":262, "wind_direction":15, "gust_speed":0, "rain":969, "humidity":32, "last_change":38, "battery_low":false } } tinkerforge/bricklet/outdoor_weather/Fax/sensor_data { "_timestamp":1530613201.572538, "179":{ "last_change":37, "temperature":253, "humidity":38 } } Ich empfange hier zwei Stationen (241 und 149) und einen Sensor (179).
  25. Stimmt, da ist ein Bug. Das hat original mal funktioniert, und ja die $serverNonce Variable war schon immer überflüssig. Allerdings wurde danach die Unpack Logik überarbeitet, so dass dann _brickd_get_authentication_nonce() nicht mehr ein Array sondern eine Referenz auf ein Array zurückgegeben hat. Die authenticate Funktion wurde aber daran nicht angepasst. Deine Lösung dazu funktioniert, hier ist meine: https://github.com/Tinkerforge/generators/commit/ce21670b63cc07417e0d3540a57f9f0d53a32fd7 Danke für den Hinweis!
×
×
  • Neu erstellen...