Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

wysylanie szestnastkowych cyfr do szeregowego portu.

Ostatnio zmodyfikowano 2014-03-11 17:31
Autor Wiadomość
tookie009
Temat założony przez niniejszego użytkownika
wysylanie szestnastkowych cyfr do szeregowego portu.
» 2014-03-11 14:55:46
Witam, mam urzadzenie podlaczone do usb, z ktorym to komunikacja odbywa sie za pomoca wysylania komand przedstawionych szesnastkowo. Tu maly przyklad takiego polecenia:

56 00 32 0C 00 0A 00 00
moje pytanie jak zapisac taka cyfre, zeby byla wyslana poprawnie. Wiem, ze mozna zapisywac kazde 2 bajty tak:  0x56
Mozna jednak zapisac tak caly ciag znakow, cos ala:

0x5600320C000A0000
albo po prostu jako string ??

Zdarzaly sie przypadki, ze jezeli bylo wyslane niepoprawne polecenie, to owe urzadzenie przestawalo dzialac, dlatego wole tu zapytac ;)
P-106101
Monika90
» 2014-03-11 15:57:22
Możesz zapisać jako string
C/C++
const char cmd[] = "\x56\x00\x32\x0C\x00\x0A\x00\x00";
albo tablicę (co jest prawie tym samym )
C/C++
const char cmd[] = { 0x56, 0x00, 0x32, 0x0C, 0x00, 0x0A, 0x00, 0x00 };

moje pytanie jak zapisac taka cyfre, zeby byla wyslana poprawnie.
To nie jest cyfra, tylko ciąg liczb.
Wiem, ze mozna zapisywac kazde 2 bajty tak:  0x56
Bajt to dwie cyfry szesnastkowe.
P-106103
tookie009
Temat założony przez niniejszego użytkownika
» 2014-03-11 17:24:08
chodzilo mi o dwa bajty, czyli tam moze stac np. 0xFF ;)
nie stanie sie nic, jezeli bede potem to petlo wysylal kolejne elementy tablicy?
A teraz mam jeszcze jeden problem. Urzadzenie odpowiada mi potiwerdzeniem, co np. tak wyglada

56 00 32 0C 00 0A 00 00

Jak to odczytac? Moja proba odczytywania powodzi sie tylko do 1. zera...
P-106109
PsichiX
» 2014-03-11 17:31:53
0xFF to nadal jeden bajt, 0xFFFF to już dwa bajty, ponieważ to jest zapis szesnastkowy, czyli jeden bajt jest opisywany dwoma znakami (0-9A-F).
P-106110
« 1 »
  Strona 1 z 1