TU_Techniker Geschrieben October 21, 2019 at 15:59 Geschrieben October 21, 2019 at 15:59 Guten Abend allerseits! Ich möchte für ein Forschungsprojekt einige Tinkerforgemodule mit einem NI CompactRIO verwenden. Der cRIO hat einen Etherneteingang, den ich mit meinem Stack verbunden hab. Auf meinem cRIO läuft als embedded system, d.h. ich kann dort keine Software wie den Deamon installieren. Alle LabVIEW Funktionen benötigen aber den Deamon um LabVIEW mit den Modulen kommunizieren zu lassen. Hat jemand Erfahrung mit der basic TCP IP Kommunikation mit dem Ethernetmodul? Ich hab die Doku zum Protokoll gefunden, kann aber nicht viel damit anfangen. Hat jemand einen Beispielcode (auch andere Sprachen)? Vielen lieben Dank! Zitieren
rtrbt Geschrieben October 23, 2019 at 13:50 Geschrieben October 23, 2019 at 13:50 Moin, Die Ethernet-Extension ist ein Brick Daemon, d.h. den musst du nicht auf der cRIO installieren, sondern kannst dich mit LabVIEW auf die IP-Adresse der Ethernet-Extension verbinden. Zitieren
TU_Techniker Geschrieben November 7, 2019 at 17:01 Autor Geschrieben November 7, 2019 at 17:01 Hey rtrbt! ich habe jetzt eine Verbindung zwischen den beiden Geräten etablieren können. Ich versuche mir jetzt in LabVIEW den Header zusammenzubasteln. Hat jemand einen Beispielcode dafür? Auch für die konvertierung von Base58 bis Hex (in LabVIEW)? Grüße aus Darmstadt! Zitieren
photron Geschrieben November 8, 2019 at 10:55 Geschrieben November 8, 2019 at 10:55 All unsere API Bindings für die verschiedenen Programmiersprachen nutzen intern unser TCP/IP Protokoll. Daher kannst du dir irgendeins unserer API Bindings ansehen als Beispiel dafür wie das TCP/IP Protokoll zu nutzen ist. Aber kannst du auf dem cRIO nicht einfach unsere .NET basierten LabVIEW Bindings einsetzen? Oder unterstützt der cRIO .NET nicht? Zitieren
TU_Techniker Geschrieben November 8, 2019 at 15:52 Autor Geschrieben November 8, 2019 at 15:52 nee auf dem cRIO geht aktuell kein .NET! Zitieren
TU_Techniker Geschrieben November 18, 2019 at 13:06 Autor Geschrieben November 18, 2019 at 13:06 Servus! Ich habe eine Website verwendet, um die UID von Base58 in HEX umzuwandeln. Site: https://www.mobilefish.com/services/cryptocurrency/brainwallet.html#converter Auf der Dokuseite bei TCP/IP Protocol wird in einem Beispiel die UID b1Q in 98 83 00 00 konvertiert. Wenn ich die UID über die Seite konvertieren lasse, sagt mir zunächst das Eingabefeld, dass das nur 3 byte sind und außerdem kommt da eine andere HEXfolge heraus. Ändere ich nun aber die UID von b1Q auf B1q, sind das dann 2 byte und 83 98. Was ist nun korrekt? Ist die Anwendung falsch programmiert? Könnt ihr mir eine Alternative empfehlen? Die UID meines Masters lautet 6DbKt8, was mir in CC 1A 5A 4D konvertiert wird. Ich möchte erst einmal die erste Funktion ansprechen (getStackVoltage). Dazu schicke ich wie im Anhang die Nachricht. Eine Antwort bekomme ich aber nicht, der String bleibt leer. Was muss ich hier an vorletzter Stelle eintragen? Zitieren
photron Geschrieben November 18, 2019 at 14:18 Geschrieben November 18, 2019 at 14:18 Es gibt zwei Varianten von Base58: https://en.wikipedia.org/wiki/Base58 Wir verwenden die Flickr Variante, die meisten Online Tools scheinen aber die Bitcoin Variante zu verwenden. 6DbKt8 dekodiert zu 0x31 0x10 0xb1 0xdc Ich kann auf Anhieb kein Online Tool finden, dass die Flickr Variante nutzt. Ich habe gerade ein kleines Python Script zusammenkopiert, dass die Flickr Variante dekodiert: $ python3 base58decode.py 6DbKt8 base58: 6DbKt8 decimal: 3702591537 hexadecimal: 0xdcb11031 bytes (little endian): 0x31 0x10 0xb1 0xdc $ python3 base58decode.py b1Q base58: b1Q decimal: 33688 hexadecimal: 0x8398 bytes (little endian): 0x98 0x83 0x0 0x0 base58decode.py 1 Zitieren
Loetkolben Geschrieben November 19, 2019 at 04:47 Geschrieben November 19, 2019 at 04:47 Hallo zusammen, da trage ich zur Vollstaendigkeit noch ein Shellscript bei. Ausgabe in diesem Fall ist "\x31\x10\xb1\xdc". Ich kann mich schwach erinnern, dass es recht muehsam war einen passenden Umrechnealgorithmus zu finden. Weiterhin viel Freude. Der Loetkolben #!/bin/bash # Stand 23.4.2013 # Loetkolbenzauberkiste tUID=6DbKt8 ################################################################################### ALPHABET="123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" BASECOUNT=`expr length $ALPHABET` DECODED=0 MULTI=1 for ((i=`expr length $tUID - 1` ; i > -1 ; i--)) do VALUE=${tUID:$i:1} DECODEDVALUE=`expr index $ALPHABET $VALUE` DECODEDVALUE=`expr $DECODEDVALUE - 1` DECODED=`expr $DECODED + $MULTI \* $DECODEDVALUE` MULTI=`expr $MULTI \* $BASECOUNT` done HEXDECODEDSTR="" HEXDECODED=`printf "%08x" $DECODED` for i in {6,4,2,0} do DIGIT=${HEXDECODED:$i:2} HEXDECODEDSTR=$HEXDECODEDSTR"\x"$DIGIT done ################################################################################### echo "$HEXDECODEDSTR" exit 0 Zitieren
TU_Techniker Geschrieben November 19, 2019 at 11:01 Autor Geschrieben November 19, 2019 at 11:01 Hier meine aktuelle Lösung. Die Schleife am Ende verwendet ich um die Callbacks meiner zwei Bricklets zu verarbeiten. Je nach Header sortiere ich die Werte. Zu der TCP Connection: Ich habe den cRIO mit einem Switch verbunden, genauso die Tinkerforge Module. Die IP bei Tinkerforge habe ich statisch festgelegt, beim cRIO hat das mit einer statischen IP nicht funktioniert. Bei beiden Geräten verwende ich die gleiche Subnetzmaske. Vielen Dank für die Hilfe hier im Forum! Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.