Разработать генерации запроса для СПТ943 на python

400 руб. за проект
23 января 2025, 09:33 • 3 отклика • 40 просмотров
Необходимо создать python скрипт генерации запроса для часового архива прибора СПТ943
Документацию приложил
К коду необходимо прокомментировать строки кода как происходят все расчеты

Пример запроса:
10 01 00 01 10 1F 28 0B 10 02 10 10 00 48 7D 01 14 0C 19 16 10 03 BE 24

Это примерно роспись бит в документации подробнее описано:
0x10 — управляющий код начала кадра.
0x01 — сетевой номер тепловычислителя (NT).
0x00 0x01 0x10 0x1F 0x28 — блок данных, назначение которого зависит от контекста команды.
0x0A - номер страницы (В тепловычислителе СПТ943 архивные данные хранятся в виде страниц, каждая из которых содержит определённый объём информации. Для последовательного чтения архивных данных необходимо указывать номер страницы в запросе. Номер страницы определяется в зависимости от того, какие данные вы хотите получить и за какой период.)
0x10 0x02 — управляющие коды DLE STX, обозначающие начало блока прикладных данных.
0x10 0x10 0x00 — часть блока прикладных данных, где 0x10 0x10 представляет экранированный байт 0x10.
0x48 — код запроса на чтение часового архива.
0x7D 0x01 0x14 0x0B — дата и время запроса:
0x7D — год (2025).
0x01 — месяц (январь).
0x14 — день (20).
0x0B — час (11).
0x1A — контрольная сумма (КС).
0x16 — управляющий код конца кадра.
0x10 0x03 — управляющие коды DLE ETX, обозначающие конец блока прикладных данных.
0xBD 0x24 — контрольная сумма и завершающий байт.



- КЗ – код запроса.
КС - Контрольная сумма вычисляется арифметическим суммированием байтов NT и КЗ заголовка и
байтов блока данных с последующим побитовым инвертированием. В качестве значения КС используется младший байт полученной суммы.
Файлы