Forum: PC-Programmierung VB6 Serielle Kommunikation mit uC ( Datenübertragung in Hex)


von Thomas S. (thomass)


Lesenswert?

Hallo,

ich habe bis jetzt nur uC programmiert und die Sache VB nur in der 
Schule ist schon 4 Jahre her angeschnitten.
Daher bin ich bei VB etc. nicht so fit daher dachte ich mir mit etwas 
Einarbeitung wirds wohl schon klappen doch schon bei der ersten 
Problemstellung scheidere ich nun schon seit Wochen.

Ich habe ein uC programmiert der ein Logdatei schreibt also welche 
Ein-oder Ausgänge wann betädigt wurden etc. desweiteren sind noch 
verschiedene Array programmiert die ich auslesen ändern und wieder 
senden will.
Nun habe ich ein Protokoll zur Übertragung gemacht welches aus Hexwerten 
besteht.

Anzahl Datensätze---Absendeadresse---Zieladresse---Daten oder 
Befehle---n-Daten---CRC

06 03 F4 01 56 43 E5

Mein Problem ist nun folgendes das die MSCOMMx.yyyyy das alles als Ascii 
Zeichen (String) interpretiert.
Da ich jedoch alles in Hex übertrage muss ich die empfangenen Daten in 
das passende Format bringen.
Das Ganze beim senden und empfangen.

Hat wer sowas schon mal gemacht und kann mir seinen Code/Beispielcode 
oder Teile wie es gemacht wird bereitstellen das wäre echt super.

Ich habe zwar gegoogelt aber irgendwie nichts brauchbares gefunden.

Danke im voraus

Thomas

von Stefan C. (jaecko)


Lesenswert?

Also wenn die Daten an einem Terminal wirklich als lesbare Hex-Werte 
ankommen, ist die Umwandlung eigentlich einfach.

Für die ersten beiden Hex-"Ziffern":
val("&H" + Mid(Empfangsstring, 1, 2))

Mid nimmt sich vom String Empfangsstring 2 Zeichen, beginnend ab Stelle 
1.
Prefix "&h" macht aus dem ganzen dann einen Hex-String.
Val wandelt diesen dann in den Dezimal-Zahlenwert.

D.h. für die nächste(n) Stelle(n):
Wert1 = val("&H" + Mid(Empfangsstring, 1, 2))
Wert2 = val("&H" + Mid(Empfangsstring, 3, 2))
Wert3 = val("&H" + Mid(Empfangsstring, 5, 2))

oder eine entsprechende Schleife

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
Noch kein Account? Hier anmelden.