Распаковка полезной нагрузки с использованием Ruby - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть шестнадцатеричная полезная нагрузка 1703cd0650000aff79fc2802, которую я хотел бы распаковать в значения.Мне дано определение:

Байт 1:

0bxx01, порядок: MS nibble

0byyxx, порядок: LS nibble

Байт 2 0bxxxxxxxx MSB

Байт 3 0bxxxxxxxx LSB

и так далее, всего 12 байтов

И я конкатирую байты 2 + 3, чтобы получить расстояние в мм.Может ли кто-нибудь помочь мне с распаковкой, которая могла бы достичь этого?

Я пытался распаковать, используя 'B8B8B8':

Байт 1, часть 1: Я получаю 0001, который я считаю равным 1

Байт 1, часть 2: я получаю 1110, который я изменил (как младший бит), что дает мне 14

Байт 2: я получаю 00000011, который я считаю 3

Байт 3: я получаю 11001101, который я изменил на 10110011 (как младший бит), который, я думаю, равен 179

Так же как и значение 3 + 179 конкат 3179 или ('00000011' + '10110011'). To_i(2) это 973

Я также пытался распаковать с 'B8S>', и byte2 также дает мне 973.

Спасибо

...