Термотроник АДИ-1-1 Описание протокола обмена онлайн [12/24] 443952

Термотроник АДИ-1-1 Описание протокола обмена онлайн [12/24] 443952
АДИ Описание протокола обмена с.12
Архивы хранятся в приборе в виде файлов. Каждый файл содержит дескриптор
файла первой записи), а также записи, представляющие одно событие или один
«временной срез» данных. Для чтения содержимого архивов используется функция
чтения файлов (функция 0x14).
Каждый файл в первой записи (номер 0) хранит дескриптор файла. Остальные
записи представляют данные файла. Дескриптор файла содержит:
Длина первой записи (длина дескриптора, unsigned short);
Тип первой записи (тип дескриптора, unsigned short, всегда равен 1);
Длина файла в количестве записей (без учета первой записи, unsigned short);
Длина каждой записи в байтах (кроме первой записи, unsigned short);
Тип содержимого файла (unsigned short). Может принимать значения: 0 файл
событий, 1 часовой архив, 2 – суточный архив, 3 – месячный архив;
Индекс будущей записи (unsigned short). Принимает значение от 0 до «Длина
файла в количестве записей 1». Обнуляется при сбросе архива.
Тотальный счетчик записей (unsigned long). Обнуляется при сбросе архива.
Алгоритм доступа к файлам:
1. Чтение записи с номером 0 из файла с номером N (получение
дескриптора файла). Если прибор вернул ошибку с кодом 2, значит,
файлов больше нет;
2. Анализ дескриптора на предмет длины основных записей и длины файла;
3. Чтение оставшихся записей файла и их интерпретация;
4. Повторение пунктов 1-3 для следующего файла.
Каждая архивная запись, независимо от типа файла, имеет следующую структуру:
Номер записи. Счетчик, который увеличивается на единицу при формировании
новой записи внутри данного файла. Имеет тип unsigned __int64;
Массив байт длиной «Длина каждой записи в байтах (см. дескриптор файла)» -
13. В нем размещается структура данных архивной записи (см. Интерпретация
архивов);
Служебный байт. Имеет тип unsigned char;
Контрольная сумма записи. Имеет тип unsigned long и рассчитывается по
алгоритму Crc32 (Проверка целостности данных должна выполняться над всем
блоком данных длиной «Длина каждой записи в байтах (см. дескриптор файла)»
включая контрольную сумму. Функция проверки контрольной суммы в
Приложении 4).
Алгоритм оптимизированного считывания архива приведен в Приложении 6.
3.5.1 Интерпретация часового, суточного и месячного архивов
Часовой, суточный архивы ведутся только при наличии функции архивирования в
приборе. Наличие функции архивирования можно определить по значению переменной
«Модель» (см. Карта переменных).
Необходимо прочитать все записи файла, выстроить их по признаку нарастания
значения поля «Номер записи» и интерпретировать те записи, у которых сходится
контрольная сумма.

Содержание

Скачать