Gast
#2849521
Ich hab da ein großes Problem mit HEXVAL und komme nicht weiter, vielleicht könnt ihr mir helfen. Unten ist ein kleiner Teil aus einem Programm das die Kommunikation mit einem DXM1 Modul regelt (OBD2 Schnittstelle). Ich bekomme vom Modul z.B. folgende Antwort "41 01 B5" Wobei die "41" als Header und "01" als Datentyp zu sehen sind, in der "B5" steckt der eigentliche für mich interessante Messwert. Kommunikation via UART funktioniert problemlos, Einlesen und Anzeigen des empfangenen Strings ebenfalls. Mit MID bekomme ich den Messwert "B5" als Teilstring herausgefiltert, funktioniert. Jetzt muß ich nur noch den Teilstring zum Single wandeln um mit diesem dann die grafische Anzeige zu befüttern, und genau da liegt jetzt mein Problem, ich bekomms nicht zum Laufen. Beispielcode: Dim Temp_long as long , temp_string as string * 4 Dim calc_wert as single, calc_string as string * 4 temp_string = "B5" 'Teilstring von der UART Temp_long = Hexval(temp_string) 'Umwandlung von String auf long Calc_wert = Temp_long 'Umwandlung von long auf single Calc_wert = Calc_wert - 40 'noch ne kleine Berechnung um auf den tatsächlichen Messwert zu kommen Calc_string = Format(calc_wert , " ") Wenn ich jetzt calc_string anzeigen lasse habe ich noch immer "B5" anstatt 181 dastehen. Kann mir bitte jemand sagen was ich falsch mache? Und warum kann überhaupt ein "B5" in einem Single stehen? Bin für jede Hilfe dankbar.