
photron
Administrators-
Gesamte Inhalte
3.206 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
56
Alle erstellten Inhalte von photron
-
Brick Daemon 2.0.10 Reduce log level of messages about USB write queue usage, packet burst are expected for the LED Strip Bricklet Handle USB transfers that complete during usb_stack_destroy() correctly Add Queue type and use if for the USB stack's write queue instead of Array type Downloads: Windows, Linux (amd64, i386, armhf), Mac OS X
-
Brick Daemon 2.0.10 Log-Level für Meldungen über die Verwendung des USB Write-Queues verringert, Packet-Burst gehören zum erwarteten Verhalten beim LED Strip Bricklet USB Transfers die während usb_stack_destroy() enden werden jetzt richtig behandelt Queue Typ hinzugefügt und für USB Write-Queues verwendet, anstatt des Array Typs Downloads: Windows, Linux (amd64, i386, armhf), Mac OS X
-
Der Wert der 5V hängt davon ab wie du den Stack versorgst, über USB vom Rechner, über USB Netzteil oder Step Down Power Supply. Typischerweise ist der Wert dann aber recht stabil, solange du das System nicht umbaust. Um eine Distanz in mm zu erhalten musst du dir eine Abbildung zwischen dem ausgegebenen Wert und der wirklich anliegenden Distanz erstellen. Also dein Distance US Bricklet aufbauen mit X mm Distanz und dann den Wert ablesen. Das machst du für vielleicht 8-12 Distanzen und kannst dann mit diesen Stützwerten eine Abbildungsfunktion für deinen Aufbau bestimmen.
-
So, jetzt sollte das auch besser sein
-
Das haben wir wohl vergessen, die neue Version hochzuladen, sorry Ist jetzt aktualisiert, danke für den Hinweise.
-
Gruppierung Industrial Bricklets
Thema antwortete auf photrons jan in: Software, Programmierung und externe Tools
Es muss $iqr->setGroup(array('a','b','n','n')); lauten in PHP. Das Beispiel in der Dokumentation ist falsch für PHP, sorry. -
New Bricklets, Blog Entry 4/4 Blog entry
-
Neue Bricklets, Blogeintrag 4/4 Blogeintrag
-
Brick Viewer 2.0.8 Add support for Distance US, Dual Button, Hall Effect, LED Strip, Line, Moisture, Motion Detector, Multi Touch, Piezo Speaker, Remote Switch, Rotary Encoder, Segment Display 4x7, Sound Intensity and Tilt Bricklet Don't crash on unknown Bricklets Support 3.3V range and averaging configuration for Analog In Bricklet Make serial port detection more robust on Windows Speed up firmware version information discovery Make sample point file parsing more robust for Distance IR Bricklet Downloads: Windows, Linux, Mac OS X
-
Brick Viewer 2.0.8 Support für Distance US, Dual Button, Hall Effect, LED Strip, Line, Moisture, Motion Detector, Multi Touch, Piezo Speaker, Remote Switch, Rotary Encoder, Segment Display 4x7, Sound Intensity und Tilt Bricklet hinzugefügt Stürzt nicht mehr bei unbekannten Bricklets ab 3,3V Bereich und Averaging Einstellung für Analog In Bricklet hinzugefügt Auslistung der seriellen Schnittstellen ist robuster auf Windows Ermittlung der aktuellen Firmware Version beschleunigt Lesen der Kalibrierungsdateien für das Distance IR Bricklet ist robuster Downloads: Windows, Linux, Mac OS X
-
Bindings: C/C++ 2.0.12, C# 2.0.12, Delphi 2.0.14, Java 2.0.13, PHP 2.0.11, Python 2.0.12, Ruby 2.0.12, Shell 2.0.4, VB.NET 2.0.8 Add support for Distance US, Dual Button, Hall Effect, LED Strip, Line, Moisture, Motion Detector, Multi Touch, Piezo Speaker, Remote Switch, Rotary Encoder, Segment Display 4x7, Sound Intensity and Tilt Bricklet [all] Also apply the workaround for a struct packing bug in GCC 4.7 to generated code [C/C++] Throw ArgumentOutOfRangeException on invalid Base58 value as UID [C#, VB.NET] Throw IllegalArgumentException on invalid Base58 value as UID [Java] Complain if bcmath or sockets extension is not available Accept int values also in hexadecimal, octal and binary notation [shell] Fix Python3 string handling for listen command [shell] Avoid printing '\0' in enumerate-disconnect callback [shell] Download: C/C++, C#, Delphi, Java, PHP, Python, Ruby, Shell, VB.NET
-
Bindings: C/C++ 2.0.12, C# 2.0.12, Delphi 2.0.14, Java 2.0.13, PHP 2.0.11, Python 2.0.12, Ruby 2.0.12, Shell 2.0.4, VB.NET 2.0.8 Support für Distance US, Dual Button, Hall Effect, LED Strip, Line, Moisture, Motion Detector, Multi Touch, Piezo Speaker, Remote Switch, Rotary Encoder, Segment Display 4x7, Sound Intensity und Tilt Bricklet hinzugefügt [alle] Workaround für Struct Packing Bug in GCC 4.7 wird jetzt auch auf generierten Code angewendet [C/C++] ArgumentOutOfRangeException wird ausgelöst wenn ungültiger Base58 Wert als UID verwendet wird [C#, VB.NET] IllegalArgumentException wird ausgelöst wenn ungültiger Base58 Wert als UID verwendet wird [C#, VB.NET] Falls bcmath oder sockets Extension nicht verfügbar sind wird dies per Exception mitgeteilt int Werte Werden auch in hexadezimaler, octaler und binärer Notation akzeptiert [shell] String Behandlung für den listen Befehl in Python3 korrigiert [shell] Es wird kein '\0' mehr im enumerate-disconnect Callback ausgegeben [shell] Download: C/C++, C#, Delphi, Java, PHP, Python, Ruby, Shell, VB.NET
-
Installation brickd_windows_2_0_9 unter W7 erzeugt bluescreen
Thema antwortete auf photrons Butti in: Software, Programmierung und externe Tools
Welchen Treiber meinst du, oder meinst du brickd selbst? Brick Daemon fragt alle USB Geräte ab. Ich würde darauf tippen, dass in EtronHub3.sys ein Fehler der den BSOD auslöst wenn brickd auf ein USB Gerät an diesem Etron USB Controller zugreift. Google spuckt zu "EtronHub3.sys BSOD" einige Treffer aus, scheint kein unbekanntes Problem zu sein. Möglicherweise hilft ein Treiberupdate. Diese hier sieht nach dem passenden Treiber aus: http://www.etron.com/en/products/u3hc_detial.php?Product_ID=6 -
NetIO - TypeError: Type str doesn't support the buffer API
Thema antwortete auf photrons matthiku in: Software, Programmierung und externe Tools
Der listen Befehl gibt standardmäßig Daten auf die Konsole aus, die empfangen und versendet werden. -
Ja, es wird thematische Untergruppen geben, damit es übersichtlich bleibt.
-
First Bricklet Batch arrived - Photos, Testing and Packing to be done: Blog entry
-
Erste Bricklet Charge angekommen - Fotos, Testen und Verpacken steht an: Blogeintrag
-
Christmas is coming: Blog entry
-
Weihnachten rückt näher: Blogeintrag
-
NetIO - TypeError: Type str doesn't support the buffer API
Thema antwortete auf photrons matthiku in: Software, Programmierung und externe Tools
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. -
NetIO - TypeError: Type str doesn't support the buffer API
Thema antwortete auf photrons matthiku in: Software, Programmierung und externe Tools
listen hat kein duration-Parameter. listen lauscht auf eingehende Anfragen bis du das Skript abbrichst. ... bekomme nach dem Starten der NetIO-App folgenden Fehler im Fenster mit den Shell-Bindings immer wieder angezeigt: 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 -
BrickD in VMware VM
Thema antwortete auf photrons StefanP in: Software, Programmierung und externe Tools
Okay, da der Brick jetzt richtig erkannt wurde sollte er auch in brickv auftauchen. Wenn brickv schon verbunden war bevor du den Brick in die VM hineingereicht hast dann taucht er nicht auf. Dann muss du einmal in brickv Disconnect und dann wieder Connect klicken. Das hängt mit dem Enumerate und dem Durchreichen in die VM zusammen. -
Allgemeine Fragen zur Realisierung einer Rollosteuerung
Thema antwortete auf photrons Chris in: Anfängerfragen und FAQ
Erstmal vielen Dank für die ausgiebigen Tests und die Beschreibung der Ergebnisse EMV ist leider ein komplexes Thema Man könnte jetzt versucht sein Erkenntnisse aus deinen Tests abzuleiten: Zum Beispiel, könnte man behaupten, dass Master Brick 1 (mit den 3 Fenster Rollos) alleine funktioniert, weil die zu schaltende Motorlast kleiner ist als an Master Brick 2 (mit 4 Tür und Fenster Rollos). An Master Brick 2 ist die Last größer und damit die Störung größer, so dass sie hier über der Schwelle liegt die der Brick verträgt. Das muss aber nicht so sein. Vielleicht ist die Verkabelung an Master Brick 2 einfach anders und bildet eine bessere Antenne um Störungen einzufangen. Ähnlich liegt es mit dem Trennen des Stack zu zwei einzeln angeschlossenen Bricks. Dass das hilft liegt vielleicht daran, dass du dadurch Antennen verändert/verkleinert hast und jetzt weniger Störungen eingefangen werden. Bastians Hinweis mit dem Varistor zielte auf die induktive Last der Motoren ab, die möglicherweise im Relais beim Abschalten eine Funken erzeugen der dann den Master Brick stören kann. Hier kommt es auch wieder darauf an wie der Master Brick mit möglichen Antennen verbunden ist die Störung einfangen können. Das ist aber nur eine mögliche Störungsquelle. Wir haben hier schon einige Tests zu EMV im Bezug auf Relais gemacht, sind aber bisher nicht zu schlüssigen Ergebnissen gekommen. Wir sind da aber noch am Ball -
BrickD in VMware VM
Thema antwortete auf photrons StefanP in: Software, Programmierung und externe Tools
Dass heißt, wenn du den Brick in die VM durchreichst meldet VMware jetzt keinen Fehler mehr. Taucht denn der Brick im Geräte Manager von Windows XP in der VM auf? -
Python IF ELSE
Thema antwortete auf photrons LukasRtM in: Software, Programmierung und externe Tools
In diesem Programm erst zu fragen ob ein Brick(let) wirklich da ist, wobei dein Programm eigentlich davon ausgeht das es da ist, ist eigentlich nicht typisch Python. Typischer wäre es einfach die Getter aufzurufen und die Exception zu behandeln, die möglicherweise auftreten kann. Also z.B. so: try: voltage = master.get_stack_voltage()/1000.0 except Exception as e: print "get_stack_voltage() failed", str(e) Statt erst zu prüfen ob das Brick(let) vielleicht nicht da ist (wobei is_device_available() nicht in der Form existiert und nur der Verdeutlichung dient): if is_device_available(master): voltage = master.get_stack_voltage()/1000.0 Wenn davon auszugehen ist, dass meistens oder immer nicht alle Bricklets die dein Programm erwartet vorhanden sind, dann kann es sinnvoll sein zu erst per Enumerate zu erfragen was angeschlossen ist. Dann muss nur einmal kurz gewartet werden, statt bei jedem Aufruf einen möglichen Timeout abwarten zu müssen wenn ein erwartetes Brick(let) nicht vorhanden ist. Hier ein Beispiel, dass per Enumerate die Liste der bekannten UIDs aufbaut und aktuell hält (ungetestet): available_uids = set() def cb_enumerate(uid, connected_uid, position, hardware_version, firmware_version, device_identifier, enumeration_type): if enumeration_type == IPConnection.ENUMERATION_TYPE_DISCONNECTED: available_uids.remove(uid) else: available_uids.add(uid) if __name__ == "__main__": ipcon = IPConnection() ipcon.connect(HOST, PORT) ipcon.register_callback(IPConnection.CALLBACK_ENUMERATE, cb_enumerate) ipcon.enumerate() time.sleep(1) # wait a moment for enumerate callbacks print available_uids ipcon.disconnect() Du kannst jetzt prüfen ob deine erwartete UID in available_uids ist und dann entsprechend handeln. Dies kann aber nicht alle Fälle abdecken. Wenn dein Programm z.B. mittendrin die Verbindung zum Stack verliert werden die Funktionen der Brick(let) Objekte immer noch Exceptions werfen. Du kommst also um Fehlerbehandlung für ein robustes Programm nicht herum.