2016-09-02 9 views
1

У меня есть эта строка, полученная через последовательный порт (HEX):Decode HEX строка

02 30 31 30 30 3f 50 35 32 0d 0a 
02 30 31 30 31 3f 55 35 38 0d 0a 
02 30 31 30 32 3f 48 34 43 0d 0a 
02 30 31 30 33 3f 45 34 41 0d 0a 
02 30 31 30 34 3f 50 35 36 0d 0a 
02 30 31 30 35 3f 55 35 43 0d 0a 
02 30 31 30 36 3f 48 35 30 0d 0a 
02 30 31 30 37 3f 45 34 45 0d 0a 
02 30 31 30 38 3f 50 35 41 0d 0a 
02 30 31 30 39 3f 55 36 30 0d 0a 
02 30 31 31 30 3f 48 34 42 0d 0a 
02 30 31 31 31 3f 45 34 39 0d 0a 
02 30 31 31 32 3f 50 35 35 0d 0a 
02 30 31 31 33 3f 55 35 42 0d 0a 
02 30 31 31 34 3f 48 34 46 0d 0a 
02 30 31 31 35 3f 45 34 44 0d 0a 




1° hex: STX 
2° & 3°: fixed 
4° & 5°: from 30 30 to 39 39 
6°: fixed 
7°: same routine 55/48/45/50 
8° & 9°: my question 
10°: CR 
11°: LF 

Кто-то может помочь мне в логике за 8 и 9 гекса?

Большое спасибо Andrea

ответ

1

Добавить все байты от 1 до 7. Затем возьмите две последние цифры результата, в шестнадцатеричном (заглавными буквами). Получите значения ascii для каждой цифры, и это два байта контрольной суммы. Например, добавление всех байтов из первой строки дает 0x152. Коды ascii для 5 и 2 равны 0x35 и 0x32.