Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.246
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    60

Alle erstellten Inhalte von photron

  1. Das können die MQTT Bindings nicht. So funktioniert die Logik da nicht. Die Bindings reichen nur die Callbacks von der Hardware durch.
  2. 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. Admin-Edit: Veraltete brickd-Version entfernt.
  3. 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?
  4. @ts555 Sorry, das hat eine Weile gedauert, aber hier ist jetzt endlich eine brickd Testversion, die das Problem beheben sollte. Admin-Edit: Veraltete brickd-Version entfernt.
  5. 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.
  6. 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.
  7. 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
  8. Bindings: Shell 2.1.30 Shebang-Zeile erzwingt Python 3 und Python 2 Support ist deprecatet gpio-state Callback zur Performance DC Bricklet API hinzugefügt Download: Shell
  9. Bindings: MQTT 2.0.14 Don't allow MQTT topic placeholders in init-file topics and topic prefix Force Python 3 in shebang line and deprecate Python 2 support Add gpio_state callback to Performance DC Bricklet API Fix streaming Accept integer parameters formatted as strings to allow JavaScript to properly send int64 arguments Add --int64-string-response commandline option to translate int64 results to string to allow JavaScript to properly receive int64 parameters Download: MQTT
  10. Bindings: MQTT 2.0.14 MQTT Topic-Platzhalter sind in init-file Topics und dem Topic-Prefix nicht erlaubt Shebang-Zeile erzwingt Python 3 und Python 2 Support ist deprecatet gpio_state Callback zur Performance DC Bricklet API hinzugefügt Streaming repariert Integer Parameters werden als String formatiert akzeptiert, um JavaScript das Senden vom int64 Argumenten zu ermöglichen --int64-string-response Kommandozeilenoption hinzugefügt um int64 Werte als Strings auszugeben, damit JavaScript int64 Parameter korrekt empfangen kann Download: MQTT
  11. Ich denke wir haben das Problem gefunden. Es gibt eine relevante Änderung zwischen 2.1.31 und 2.1.32, die betrifft aber nur Node.js < 10.4. Testet bitte mal die angehängte Version. tinkerforge_javascript_bindings_2_1_33.zip
  12. So funktioniert TCP/IP nicht. Eine Verbindung bleibt solange bestehen bis sie aktiv geschlossen wird. Das passiert aber beim Trennen der Stromversorgung nicht. Daher denke die IPConnection weiterhin verbunden zu sein, weil sie das rein technisch auch ist. Der aktuell beste Weg damit in deinem Fall umzugehen ist auf die Timeout Fehler zu achten. Wenn z.B. 3 Timeouts hintereinander passieren dann kannst du das als Auslöser für ein Neuverbinden nehmen und auf der IPConnection disconnect() gefolgt von connect() aufrufen.
  13. Teste mal bitte das Loopback Beispiel, ignoriere dabei aber den Kommentar über RX1 und TX Pin, sondern lass den Jumper auf RX1 und RX2: https://www.tinkerforge.com/de/doc/Software/Bricklets/RS232V2_Bricklet_MATLAB.html#loopback-matlab Dort änderst du die UID von XYZ auf MbG und den Host von localhost auf 192.168.42.1. Ansonsten änderst du vielleicht noch die Konfiguration wenn der Fluke Kalibrator nicht mit 115200 Baud 8N1 kommuniziert.
  14. 0 lx always indicates an invalid measurement. Unfortunately, the datasheet of the sensor doesn't document under which conditions this could happen. With testing we found that this happens if you saturate the sensor. For example, by selecting an illuminance range that is way too small or an integration time that is way too long for the current light conditions. Hence the documentation suggesting to adapt the configuration in that case. But another user already found that this could also happen under very dim light conditions. I could reproduce this by covering the sensor with two sheets of printer paper and a piece of duct tape. I was going to update the documentation about this at the time. But it seems this never happend. If updated the documentation now.
  15. Sorry, bisher nicht. Aktuell ist hier alles auf Wallboxen fokussiert.
  16. Es gibt keine Änderungen zwischen 2.1.31 und 2.1.32, die das Problem erklären könnten. Überhaupt sind die Änderungen zwischen 2.1.31 und 2.1.32 sehr minimal. Ich habe gerade ein Callback Beispiel in Node.js 12.20.1 mit Bindings 2.1.31 und 2.1.32 getestet. Diese funktionieren wie erwartet. Tritt das Problem nur in deinem Programm auf, oder auch wenn wenn du z.B. das Callback Beispiel des Temperature Bricklet 2.0 testest?
  17. Warum versuchst du eine Methode für den Servo Bricklet 2.0 PositionReached Callback auf den IPConnection Enumerate Callback Delegate zuzuweisen?
  18. Wie die Dokumentation schon sagt schaltet eine Frequenz von 0 die PWM Funktion aus. Du solltest dir eine Frequenz (> 0) auswählen und diese dann fix beibehalten. Welche Frequenz du wählen solltest hängt von deiner Anwendung ab. Wenn du die Frequenz zu niedrig wählst dann kannst du bei niedrigen Duty Cycle die LED flackern sehen.
  19. Das ist erwartet. Mosquitto erwartet bei "require_certificate true", dass sich der Client (tinkerforge_mqtt in diesem Fall) per Client Zertifikat ausweißt. Das tut tinkerforge_mqtt aktuelle nicht. Das müsste man tinkerforge_mqtt erst beibringen, damit du neben ca.cert auch client.crt und client.key angeben könntest.
  20. Normalerweise lässt du die Frequenz fest und änderst den Duty Cycle. Bei 100% Duty Cycle liegen durchgehend 3,3V an.
  21. Keine Fehler in den Logs. Für den RED Brick sieht es so aus also ob der Master Brick nicht da wäre. Ich bleibe dabei, die beste Erklärung ist ein Kontakt- oder Lötproblem an den Stapelsteckern, auch wenn es auf den Fotos (soweit sich das erkennen lässt) kein Problem zu sehen ist. Da bleibt mir als nächstes leider nur vorzuschlagen den Stapel zur Reparatur einzuschicken.
  22. Weitere Fragen: Macht es einen Unterschied, wenn du die WIFI Extension aus dem Stapel weglässt? Macht es einen Unterschied, wenn du nach dem Booten des Stapels den Master Brick über dessen Reset Knopf im laufenden Betrieb neustartest? Kannst du das brickd.log vom RED Brick hier anhängen? Die Logdatei kannst du über Brick Viewer auf dem RED brick Tab unter Import/Export System Logs herunterladen.
  23. Mir ist unklar was genau dein Problem hier ist. Brickd an sich kann kein SSL. Die MQTT Bindings können auf der MQTT Seite SSL. Welche Kommandozeilenargumenten meinst du? Das Problem hier ist das tinkerforge_mqtt in seiner Shebang Zeile noch auf Python 2 verweist. Das sollte ich mal auf Python 3 ändern, da Python 2 jetzt über ein Jahr EOL ist. Da du die Abhängigkeiten für Python 3 installiert hast, tinkerforge_mqtt aber mit Python 2 läuft, findest es Paho MQTT nicht. Teste mal bitte die angehängte Version die jetzt auf Python 3 gesetzt ist. tinkerforge_mqtt_bindings_2_0_14_rc1.zip
  24. Dass das LCD Beispielprogramm auf dem RED Brick nicht funktioniert, wenn der RED Brick den Master Brick und damit das LCD Bricklet nicht sieht ist nicht verwunderlich. Von der Beschreibung her ist das ein Kommunikationsproblem zwischen RED Brick und Master Brick, vermutlich bedingt durch ein Hardwareproblem. Aber es fehlt dennoch der Master Brick in Brick Viewer auch wenn die Extension auf dem RED Brick anzeigt wird? Dann sind im Stapel die Leitungen für die Extension okay, aber zumindest für den ersten Brick im Stapel nicht. Hast du noch einen weiteren Brick (kein RED Brick) zur Hand? Was passiert, wenn du einen weiteren Brick zwischen RED Brick und dem problematischen Master Brick steckst? Ich vermute ein Kontakt- oder Lötproblem am linken oberen Stapelstecker (von der mini-USB Buchse aus gesehen) am RED Brick oder dem linken unteren Stapelstecker am Master Brick. Schau dir bitte mal genau die Kontakte dieser beiden Stecker an und auch deren Verlötung mit der Platine. Vielleicht sitzt da auch einfach nur etwas Schmutz in den Steckern der den Kontakt behindert? Kannst du ein Foto des Aufbaus mit RED Brick zeigen?
  25. Brick Logger 2.1.5 Support für Performance DC Bricklet und Servo Bricklet 2.0 hinzugefügt Downloads: Windows, Linux, macOS, RED Brick
×
×
  • Neu erstellen...