Hexadezimale Wandlung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Hexadezimale Wandlung (/Thread-Hexadezimale-Wandlung) |
Hexadezimale Wandlung - dany22 - 19.07.2006 12:21 Hallo, also ich möchte ein Protokoll zusammenbauen und Teile des Protokolls werden wegen einer Prüfsumme erst berechnet. Die Zusammensetzung ist: FD 03 FF ist der Eingangsstring und dann wird aus 03 FF die Prüfsumme (FC)gebildet. Diese soll dann in ein vollständiges Protokoll eingefügt werden. FE ist das Endezeichen. Dieses soll dann so aussehen: FD 03 FF FC FE Aber in meinem Programm zeigt es immer nur FD 03 FF 46 43 FE an!!! Was muss ich da ändern im Programm? danke dany Hexadezimale Wandlung - Achim - 19.07.2006 12:41 Hi, ich glaube, das liegt daran, dass du verschiedene Formate kombinierst (Unterschied: Hex-Anzeige zu wirklichem Hex-Wert). Nur ne Idee, hab grad keine Zeit mehr... Gruss Achim Hexadezimale Wandlung - eg - 19.07.2006 12:49 Hallo dany22, hier meine Lösung Gruss, Eugen Hexadezimale Wandlung - tron - 19.07.2006 15:33 <div align="left"> Hallo! Vielen Dank, das hat auch mir geholfen, insbesondere in Bezug auf die Berechnung der Prüfsumme. Ich bin nämlich dabei, etwas ähnliches zu machen (Steuerung eines Induktionsgenerators, der ein eigenes Protokoll hat und nur Binärdaten haben will). Mit o.A. Vorlage bin ich immerhin schon einmal so weit, daß ich Hexcodes als Binärdaten übertragen bekomme. Jetzt ist es so, daß der Generator einen bestimmten Befehlssatz hat, den man durch Übertragung des Befehls-Hexcodes und einem eventuellen Datenblock (auch als Hex) ausführen kann. Wenn ich als "Control" einen String in Hex-Format angebe, dann kommt auch das Richtige an, wenn ich also Befehl "10", also "0A" in Hex übertragen möchte, dann klappt das auch. Es wäre natürlich viel praktischer, direkt die Befehlsnummer eingeben zu können - da dachte ich dann an eine Zahl-Hex-Conversion. Das will leider nicht so ganz, siehe anhängendes Beispiel. Zwei Befehlsbytes sollen übertragen werden und der String muß dann eben auch nur zwei Bytes lang sein. Unten ist das mit Hex-Strings direkt eingegeben, da geht das. Oben mein Versuch, Zahlen in Hexcodes umzuwandeln. Es kommt allerdings bei "10" "A" raus, aber eben als normaler String und nicht als Hexcode. Das wir dann beim Übertragen in "41" umgewandelt, dem ASCII-Code für "A". Nicht so ganz das, was ich will. Hat da jemand eine Idee? Gruß, Michael</div> Hexadezimale Wandlung - eg - 19.07.2006 17:57 Dass 10(dec) dem Buchstaben 'A' in ASCII-Codierung entspricht ist nur ein Zufall (also nicht mit der Umwandlung Dezimal->Hex verwechseln). Was du brauchst ist das VI "Flatten To String" in Data Manipulation Palette. Einfach alles was du abschicken willst übergeben und es kommt ein richtiger String raus. Gruss, Eugen Hexadezimale Wandlung - tron - 20.07.2006 17:59 ' schrieb:Was du brauchst ist das VI "Flatten To String" in Data Manipulation Palette. Einfach alles was du abschicken willst übergeben und es kommt ein richtiger String raus.Danke sehr, das hat mir geholfen. Leider gibt die Kiste ihre Antwortmeldungen gleichfalls im hex-format aus, was ja irgendwie nicht dasselbe ist wie ein hexadezimal-string in LabVIEW. Gibt es da eine Möglichkeit, das andersherum umzuwandeln? Bei der Umkehrmethode zu "Flatten zu String" (fällt mir gerade nicht ein, wie die genau heißt) kann man zwar einen "Type" angeben, was rauskommen soll, allerdings sagt mir der herauskommende "generic error" nicht allzuviel... -- Gruß, Michael Hexadezimale Wandlung - eg - 20.07.2006 18:10 Der Typ muss natürlich mit den Daten übereinstimmen, es dürfen nich weniger Daten im String sein, als du parsen willst, sont meldet LV diesen blöden nichterklärten Generic Error. Also bei mir funktioniert es. Es liegt entweder am String oder am Typ. Also suchen und debuggen. Gruss, Eugen |