
photron
Administrators-
Gesamte Inhalte
3.189 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
52
Alle erstellten Inhalte von photron
-
Brick Logger 2.1.7 Support für DC 2.0, Industrial PTC und Silent Stepper Bricklet 2.0 hinzugefügt Downloads: Windows, Linux, macOS, RED Brick
-
Brick Viewer 2.4.19 Add support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 Add Data Logger support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 Fix Health Monitor error handling Filter Updates/Flashing and RED Brick Console serial port selection based on USB product- and vendor-ID Downloads: Windows, Linux, macOS
-
Brick Viewer 2.4.19 Support für DC 2.0, Industrial PTC und Silent Stepper Bricklet 2.0 hinzgefügt Data Logger Support für DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 hinzgefügt Fehlerbehandlung im Health Monitor repariert Auswahl der seriellen Schnittstelle für Updates/Flashing und RED Brick Console nach USB Product- und Vendor-ID gefiltert Downloads: Windows, Linux, macOS
-
About voltage-current-v2-bricklet
Thema antwortete auf photrons Dodo in: Software, Programmierung und externe Tools
I think you mistook the firmware source code of the Voltage/Current Bricklet 2.0 as example code. I assume you don't want to modify the firmware of the Bricklet, but you want to use the Bricklet as is. You can find the C/C++ examples for the Voltage/Current Bricklet 2.0 here as part of the API documentation: https://www.tinkerforge.com/en/doc/Software/Bricklets/VoltageCurrentV2_Bricklet_C.html or here on GitHub: https://github.com/Tinkerforge/voltage-current-v2-bricklet/tree/master/software/examples/c You'll need the C/C++ API bindings to compile the examples: https://download.tinkerforge.com/bindings/c/tinkerforge_c_bindings_2_1_32.zip The ZIP also contains the C/C++ examples for the Voltage/Current Bricklet 2.0 at examples/bricklet/voltage_current_v2. -
Bindings: C/C++ 2.1.32, C# 2.1.30, Delphi/Lazarus 2.1.31, Go 2.0.11, Java 2.1.31, JavaScript 2.1.33, LabVIEW 2.1.29, Mathematica 2.1.29, MATLAB/Octave 2.0.31, MQTT 2.0.15, Perl 2.1.30, PHP 2.1.29, Python 2.1.29, Ruby 2.1.29, Rust 2.0.18, Saleae 2.0.6, Shell 2.1.31, Visual Basic .NET 2.1.29 Add gpio-state callback to Performance DC Bricklet API [all, except MQTT and Shell] Add support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 [all] Fix BigInt detection for Node.js < 10.4 [JavaScript] Download: C/C++, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, MQTT, Perl, PHP, Python, Ruby, Rust, Saleae, Shell, Visual Basic .NET
-
Bindings: C/C++ 2.1.32, C# 2.1.30, Delphi/Lazarus 2.1.31, Go 2.0.11, Java 2.1.31, JavaScript 2.1.33, LabVIEW 2.1.29, Mathematica 2.1.29, MATLAB/Octave 2.0.31, MQTT 2.0.15, Perl 2.1.30, PHP 2.1.29, Python 2.1.29, Ruby 2.1.29, Rust 2.0.18, Saleae 2.0.6, Shell 2.1.31, Visual Basic .NET 2.1.29 gpio-state Callback zur Performance DC Bricklet API hinzugefügt [alle, außer MQTT und Shell] Support für DC 2.0, Industrial PTC und Silent Stepper Bricklet 2.0 hinzugefügt [alle] BigInt-Erkennung für Node.js < 10.4 repariert [JavaScript] Download: C/C++, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, MQTT, Perl, PHP, Python, Ruby, Rust, Saleae, Shell, Visual Basic .NET
-
RS485 Matlab API - Modbus read holding registers
Thema antwortete auf photrons as1408 in: Allgemeine Diskussionen
Ich glaube hier liegt ein grundsätzliches Verständnisproblem vor. Das RS485 Bricklet kann als Modbus Master oder Slave arbeiten. Als Modbus Master kannst du über das RS485 Bricklet Modbus Lese- und Schreibbefehle an angeschlossene Modbus Slaves schicken. Du rufst dazu z.B. modbusMasterReadHoldingRegisters auf, um einen Lesebefehl zu schicken. Das Ergebnis des Lesebefehls wird dir dann per ModbusMasterReadHoldingRegistersResponseCallback mitgeteilt. Als Modbus Slave kannst du über das RS485 Bricklet auf Modbus Lese- und Schreibbefehle eines angeschlossenen Modbus Masters antworten. Sprich du simulierst da also einen Modbus Slave. Das RS485 Bricklet teilt dir über den ModbusSlaveReadHoldingRegistersRequestCallback mit für welche Register ein Lesebefehl eingegangen ist. Du musst jetzt darauf mit modbusSlaveAnswerReadHoldingRegistersRequest dem RS485 Bricklet sagen mit welchen Werten der Lesebefehl beantwortet werden soll. Das Bricklet speichert sich keine Registerwerte, sondern reicht sie nur durch. Du musst also bestimmen welche Werte (nicht Adressen) die angefragten Register haben und sie dem Bricklet mitteilen. -
RS485 Matlab API - Modbus read holding registers
Thema antwortete auf photrons as1408 in: Allgemeine Diskussionen
Das RS485 Bricklet sendet dir den ModbusSlaveReadHoldingRegistersRequestCallback weil es selbst eine Modbus Anfrage für das Lesen von Holding Registers bekommen hat. In diesem Callback bekommst du jetzt mitgeteilt von welcher Adresse (startingAddress) aus wie viele Register (count) zu lesen sind. Du musst jetzt also bestimmen welche Werte du dem Bricklet geben willst (holdingRegisters), damit es mit diesen Daten die offenen Anfrage beantwortet. -
Brickv // macOS 11.2.3 // Apple M1
Thema antwortete auf photrons duaw in: Software, Programmierung und externe Tools
Brick Viewer 2.4.18 ist veröffentlicht. -
Brick Logger 2.1.6 Fehler beim Öffnen der Debug-Logdatei werden behandelt Downloads: Windows, Linux, macOS, RED Brick
-
Brick Logger 2.1.6 Handle errors while opening debug log file Downloads: Windows, Linux, macOS, RED Brick
-
Brick Viewer 2.4.18 Add minimal health monitor dialog Fix state handling for untabbed plugins Force correct UI state after aborting autoreconnect on error Handle errors while opening Data Logger debug log file Update download.tinkerforge.com certificate chain to fix update autodetection Autoselect download directory for Brick Viewer downloads Check if NFC Bricklet is in correct state to start cardemu discovery Downloads: Windows, Linux, macOS
-
Brick Viewer 2.4.18 Minimalen Health-Monitor-Dialog hinzugefügt Zustandlogik von ausgeklinkten Plugins repariert Korrekter GUI-Zustand wird beim Abbruch der Autoreconnect-Logik durch einen Fehler wiederhergestellt Fehler beim Öffnen der Data Logger Debug-Logdatei werden behandelt Zertifikat für download.tinkerforge.com aktualisiert um die automatische Update-Erkennung zu reparieren Brick Viewer Updates werden ins Download-Verzeichnis heruntergeladen NFC Bricklet Zustand wird vor dem Start einer Cardemu-Discovery geprüft Downloads: Windows, Linux, macOS
-
Laut Log wurde der Master Brick getrennt, brickd versucht die offenen USB Read Transfers abzubrechen. Das klappt aber nicht, da libusb behauptet diese nicht mehr zu kennen. Dann versucht brickd den libusb Handle für den Master Brick zu schließen. Intern läuft libusb dann über die Liste der offenen USB Transfers für den Master Brick und crasht dabei. Auch wenn die USB Geräte schnell auftauchen und wieder verschwinden sollte daran brickd bzw libusb nicht crashen. Ich befürchte fast, dass das ein alter Bug in libusb ist. Brick Daemon für Windows kommt aktuell mit einer 2 Jahre alten libusb Version. In der Zwischenzeit ist viel im Inneren von libusb passiert. Ich denke ich muss mal die ganzen libusb Altlasten aus brickd loswerden, allgemein die libusb Version erhöhen und unter Windows eine aktuelle libusb Version ausliefern. Kannst du diesen "Wackelkontakt" noch einen Moment nicht beheben? Ich würde dir gerne noch eine weitere brickd Version zum Testen geben mit aktueller libusb, um zu sehen, ob das dass Problem behebt. Wenn ich das schnell hinbekommen, vielleicht sogar noch heute.
-
Brickv // macOS 11.2.3 // Apple M1
Thema antwortete auf photrons duaw in: Software, Programmierung und externe Tools
Ich hatte es getestet und auf unserem älteren MacBook mit Mojave tritt das Problem auf, auf unserem neueren MacBook mit Catalina allerdings nicht. Bei einem anderen Kunden tritt es auf Big Sur auf. Mir ist auf Anhieb unklar warum. Bekommen wir aber raus. -
Brickv // macOS 11.2.3 // Apple M1
Thema antwortete auf photrons duaw in: Software, Programmierung und externe Tools
Das Problem ist uns sein kurzem bekannt. Es betrifft das Abfragen der aktuellen Firmwareversionen und auch das automatische Herunterladen von Firmwares beim Updaten von Bricks und Bricklets. Händisches Updaten ist aber weiterhin möglich. Wahrscheinlich ein SSL Problem, das nichts mit deinem Mac an sich zu tun hat, sondern mit unserem Server. Brick Viewer warnt darüber dann aber sehr allgemein. Lösung verzögert sich leider bis nächste Woche, da @rtrbt diese Woche im Urlaub ist und ich auf die Schnelle nicht dazu kommen mir das anzuschauen. -
MQTT Binding debug log
Thema antwortete auf photrons luxor in: Software, Programmierung und externe Tools
Ich rate mal und sagt, dass du systemd verwendest. Systemd zeichnet standardmäßig die Ausgaben des Service auf und du kannst sie dir mit journalctl ansehen. -
MQTT beim Starten Interrupt senden
Thema antwortete auf photrons luxor in: Software, Programmierung und externe Tools
Das können die MQTT Bindings nicht. So funktioniert die Logik da nicht. Die Bindings reichen nur die Callbacks von der Hardware durch. -
So, jetzt endlich! Zuerst den installieren Brick Daemon Dienst stoppen. Das kannst du über den Windows Dienste Manager oder den Brick Daemon Log Viewer tun. Dann die angehängte brickd.exe herunterladen. Ich habe sie unter C:\Users\photron\Downloads\brickd.exe gespeichert. Jetzt GDB installieren. Dazu lädst du dir mingw-w64-install.exe herunter. Auf der folgenden Seite dem Sourceforge Link folgen, der Download startet automatisch: http://mingw-w64.org/doku.php/download/mingw-builds Das dann mit den Standardeinstellungen installieren. Darauf hin findest du unter C:\Programme (x86)\mingw-w64 ein Verzeichnis mit kryptischen Namen, in meinem Fall i686-8.1.0-posix-dwarf-rt_v6-rev0. Darin wiederum ist eine mingw-w64.bat Datei. Diese starten. Darauf hin öffnen sind eine Kommandozeile. Jetzt GDB mit brickd.exe starten (angepasst auf den Pfad an dem du brickd.exe gespeichert hast): gdb --args "C:\Users\photron\Downloads\brickd.exe" --console GDB hat jetzt brickd.exe geladen, aber noch nicht gestartet. Dazu "r" eingeben (ohne Anführungszeichen) und Enter drücken. Brick Daemon sollte starten und Logmeldungen ausgeben. Jetzt das Problem erzeugen und brickd abstürzen lassen. GDB sollte den Absturz abfangen und unten links sollte (gdb) stehen. Dort jetzt "bt full" eingeben (ohne Anführungszeichen) und Enter drücken. Darauf hin gibt GDB länglich aus wo der Absturz passiert ist und wie das Programm zu dieser Stelle bekommen ist. Die gesamte Ausgabe des bt full Befehls bitte hier posten. brickd.exe
-
Ich habe gerade noch einen anderen Kunden beim dem brickd auch durch das USB Abziehen abzustürzen scheint. Ich bekomme es leider nicht hin das Problem hier zu reproduzieren. Kann ich dir zumuten eine spezielle brickd Version (die ich noch erstellen muss) in einem Debugger (z.B. GDB) laufen zu lassen, um einen Backtrace des Crashes zu bekommen?
-
Rückgabe von Read/write Funktion (RS232 Bricklet)
Thema antwortete auf photrons Claymars in: Anfängerfragen und FAQ
Moment, du hast auch dieses Problem hier: Laut diesem Thread kann man in MATLAB \r\n nicht so direkt hinschreiben. In Brick Viewer kannst du da aber einfach \r\n als Ende auswählen und da funktioniert es dann. -
Rückgabe von Read/write Funktion (RS232 Bricklet)
Thema antwortete auf photrons Claymars in: Anfängerfragen und FAQ
Du kannst die über RS232 empfangenen Daten auf 2 Weisen abfragen. Entweder durch Aufruf der read Funktion, oder durch Verwendung des Read Callbacks. Diese beiden Weisen schließen sich aber gegenseitig aus. Beim Read Callback registrierst du eine Funktion (in diesem Fall cb_read) beim rs232 Objekt. Diese Funktion wird dann vom rs232 Objekt aufgerufen, wenn ein Read Callback empfangen wird. Du selbst rufst nicht die cb_read Funktion auf, auch nicht mit dem Rückgabewert der write Funktion. Ein weiteres Problem ist, dass du nicht auf das Empfangen der Antwort vom Kalibrator wartest, sondern write, read und disconnect direkt hintereinander weg aufrufst. Zudem Zeitpunkt an dem read aufrufst ist das RS232 Bricklet möglicherweise noch nicht mal damit fertig die Daten an den Kalibrator zu senden. Im Loopback Beispiel wird über den Aufruf input('Press key to exit\n', 's'); das Beispiel laufen gehalten, so dass die Antwort ankommen kann. Die write Funktion blockiert nicht, bis die Daten wirklich über RS232 gesendet wurden und die read Funktion wartet nicht auf den Empfang von Daten. Beide arbeiten auf Buffern im Bricklet. Die write Funktion schreibt Daten in den Ausgangs-Buffer und die read Funktion liest Daten aus dem Eingangs-Buffer. Das Bricklet sendet und empfängt dann dazu asynchron Daten über die RS232 Schnittstelle und liest diesen aus den Buffern oder schreibt sie hinein. Wirf mal die cb_read Funktion raus und deren Registrierung (Zeile 17) und ersetzt die Aktivierung des Read Callback (Zeile 20) durch rs232.disableReadCallback(); um sicher zu sein das der Callback deaktiviert ist. Nach dem Aufruf der write Funktion baust du eine Pause von z.B. einer Sekunde ein, damit das Bricklet Zeit hat die Anfrage zu senden und die Antwort zu empfangen. Danach fragst du die Antwort über die read Funktion ab. Der read Funktion musst du mitgeben wie viel Zeichen der empfangenen Daten du lesen willst. Dazu musst du wissen wie lang die Antwort sein kann, hier nehmen ich mal 100 Zeichen an. rs232.write(String('DISP:LANG?\r\n').toCharArray()); pause(1); response = rs232.read(100); disp(response); ipcon.disconnect(); Das kann man jetzt noch effizienter machen, aber teste das erstmal so, um es ans Laufen zu bekommen. -
Bindings: Shell 2.1.30 Force Python 3 in shebang line and deprecate Python 2 support Add gpio-state callback to Performance DC Bricklet API Download: Shell