
Сообщение от
Евгений Кислов
Это описано на втором скриншоте из вашего первого поста.
У вас есть HEX-строка, содержащее сырое значение: 05 87 00 00
Три младших байта нужно интерпретировать как целое беззнаковое (870000).
Старший байт - это битовое поле.
05 = 0b00000101
Для наглядности визуально выделим отдельные наборы бит: 0b0_00_00_101
0 - знак значения (1 - минус, 0 - плюс)
00 - не используются
00 - состояния сигнализации двух порогов (0 - не сработала, 1 - сработала); каждый бит из двух бит соответствует одному из двух порогов
101 - положение точки в значении (0b101 = 5)
Теперь мы знаем, что реальное значение - это 870000 / 10^5 = 8.7
Если бы бит знака соответствовал минусу - то нужно было бы домножить на -1.0.
В общем, для начала стоит погуглить, как в Python работать с битами - проверить заданный бит целого числа, извлечь порцию бит в отдельную переменную и т. д.