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.
micha b schrieb: > Kann mir bitte jemand sagen was ich falsch mache? Und warum kann > überhaupt ein "B5" in einem Single stehen? Das sollte dich stutzig machen. Bist du sicher, dass du dir auch die richtige Variable ausgeben lässt? Ansonsten: Du kannst dir ja auch mal die ganzen Zwischenvariablen anzeigen lassen und so nachvollziehen, in welchem Schritt genau was passiert.
micha b schrieb: > Calc_string = Format(calc_wert , " ") Compiliert nicht. Vielleicht?: Calc_string = str(calc_wert) Calc_string = Format(calc_string , " ")
@str: (bei DEM Namen musstest du ja die Lösung wissen! :-) ) Das wird's wohl gewesen sein, wie blind war ich nur mal wieder???? Sorry, aber manchmal sieht man eben die bits vor lauter bytes nicht. Schon komisch dass der Compiler da nicht mosert. Danke!
micha b schrieb: > Schon komisch dass der Compiler da nicht mosert. @micha b: da würd ich genauer nachschauen. Vielleicht alte BASCOM Version? Hab deinen Beispielcode bei mir versucht kompilieren zu lasssen und aufgrund des Compiler Meckers (BASCOM Version 2.0.5.0) den Fehler entdeckt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.