Декодирование байт / бит в двоичный

Я использую адаптер Prologix GPIB-USB в режиме только LISTEN для расшифровки связи между двумя устройствами (связанные с полупроводниками, а именно Tester и Prober).

Я могу декодировать большую часть информации, как указано в Руководстве, но не могу преобразовать одну из Данных, а именно категорию БИН.

Пример данных:

018022
C@A@@@@@@@
Q
O
A
A
019022
CA@A@@@@@@

Руководство по инструменту:

Руководство о том, как читать входящие данные

Данные, в которых я заинтересован: "C@A@@@@@@@" и "CA@A@@@@@@". Первый байт, а именно "C", - это команда, которая передается. Второй байт, который может быть "@" или "A" фактически говорит о том, что тест пройден / не пройден.

преобразование в двоичный файл:

@ ---> 0100 0000
A ---> 0100 0001

Результат определяется младшими 4 битами байта, которые равны 0000(Pass) и 0001 (Fail). Я могу расшифровать его правильно, пока здесь.

Следующие 8 байтов представляют категорию BIN, которая во время теста была установлена ​​как 5, если проверка не пройдена, и 1, если она прошла, поэтому номер BIN в "C@A@@@@@@@" равен 1, а номер BIN соответствует "CA@A@@@@@@" установлен на 5.

Я не могу декодировать значения 5 и 1 из данных, которые генерируются из адаптера GPIB. Может кто-нибудь подсказать, можно ли его на самом деле декодировать как 5 и 1. Я приложил Руководство, в котором объясняется, как читать входящие Данные.

Застрял в этом надолго:-(

1 ответ

Вы можете использовать struct.unpack для декодирования байтовых значений в числа. Вам нужно знать длину (в данном случае 8 байтов) и является ли число большим или прямым порядком байтов (проверьте, если вы не знаете). И номер ли подписан или без знака.

Если ваша строка "C@A@@@@@@@" и двоичные данные находятся в байтах 3-10, вы можете попробовать

import struct    
foo="C@A@@@@@@@"
print struct.unpack(">Q", foo[3:11])

Это расшифровывает 8-байтовое число без знака с прямым порядком байтов. См. https://docs.python.org/2/library/struct.html для получения инструкций.

Надеюсь это поможет.

Ханну

Другие вопросы по тегам