19. januar 2007 - 17:25Der er
4 kommentarer og 1 løsning
Forstå mscomm1.input
Jeg har lavet et program der sender en hex kode chr$(5) til min comport, men når jeg så får data tilbage så kommer der bare et ? tegn istedet i mit VB program, men jeg har en RS232 sniffer på som fortæller mig at den sender hex koden chr$(6) tilbage. Hvordan får jeg mit VB program til at forstå HEX koden.
Spørgsmåltegnet "?" = chr(63), er det det du får tilbage? chr(6) er jo en ikke-printbar karakter, så du må bruge Asc for at dekode det som komer retur på din COM port. Result = Asc(mscomm1.input) Eller hvis du får flere karakterer retur: RX = mscomm1.input For X = 1 To Len(RX) Result = Result & Asc(Mid(RX, X, 1)) Next X
Ja, men først er du nødt til at teste om mscomm1.input indeholder nogle karakterer eller ej. Der er således at mscomm1.input bliver tømt når du læser den, så det er en god ide at ligge mscomm1.input over i en streng. Funktionen Asc giver værdien af een karakter. Den kan ikke give værdien af ingenting, og den kan heller ikke give værdien af flere karakterer, derfor må du bruge et loop. Du kan indsætte et komma i "Result" efter hver karakter så er det lettere at dekode: Result = Result & Asc(Mid(RX, X, 1)) & ","
RX = mscomm1.input If RX <> "" then Gør noget. f.eks brug det loop jeg sendte i mit første svar. Endif
hmm, fandt ud af det med en replace og chr istedet for Asc, men det var din kommentar der ledte mig i den rigtige retning så du får point alligevel :) Smid lige et svar
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.