Я пытаюсь декодировать некоторые данные с измерителя мощности Shark 100 по протоколу TCP Modbus. Я успешно вытащил необходимые мне регистры, и у меня осталось два необработанных значения из регистров, например:
[17138, 59381]
Из руководства я знаю, что мне нужно преобразовать эти два числа в 32-битные. IEEE число с плавающей точкой. Из руководства я также знаю, что «регистр с меньшим адресом является половиной старшего порядка (т. Е. Содержит показатель степени)». Первый номер в приведенном выше списке - регистр с меньшим адресом.
Используя Python (любая библиотека будет делать это при необходимости), как бы я взял эти два значения и превратил их в 32-битное значение IEEE с плавающей запятой.
Я пытался использовать различные онлайн-конвертеры и калькуляторы, чтобы выяснить непрограммистический c способ сделать это, однако, все, что я пробовал, дает мне результат, который выходит за пределы (я в этом случае считывается вольт, поэтому конечный результат должен составлять примерно 120-122 от указанных выше значений).