oven — 6.4 Запись архива

6 Устройство и принцип работы Отсчет времени производится по UTC в секундах, начиная с 00:00 01 января 2000 года. Значение RTC используется для записи в архив. Подробнее о настройке часов реального времени см. раздел 7.9 . 6.4 Запись архива В модуль встроена флеш-память (flash), размеченная под файловую систему с шифрованием файлов. Алгоритм шифрования — Data Encryption Standard (DES) в режиме сцепления блоков шифротекста (CBC). В качестве ключа используется строка superkey . Вектор инициализации генерируется с помощью хеш-функции (см. приложение А) . Аргументом функции является пароль, заданный в ПО «OWEN Configurator».

В конце файла сохраняется контрольная сумма, рассчитанная по алгоритму CRC32 (контрольная сумма также шифрируется). Архив модуля сохраняется в виде набора файлов. Период архивации, ограничение на размер одного файла и их количество задается пользователем в ПО «OWEN Configurator». Если архив полностью заполнен, то данные перезаписываются, начиная с самых старых данных самого старого файла. Файл архива состоит из набора записей. Записи разделены символами переноса строки (0x0A0D). Каждая запись соответствует одному параметру и состоит из полей, разделенных символом «;» (без кавычек). Формат записи приведен в таблице. Таблица 6.2 – Формат записи в файле архива Пример расшифрованной записи:

0x30 0x30 0x31 0x3B 0x31 0x0A 0x0D 0x52 0x82 0xD1 0x24 0x3B 0x30 0x30 0x30 0x30 0x61 0x39 0x30 0x30 0x3B 0x30 0x30 0x30 0x30 0x30 где 0x52 0x82 0xD1 0x24 – метка времени. Для получения даты и времени в формате UnixTime необходимо изменить порядок байт на противоположный и добавить константу-смещение (число секунд между 00:00:00 01.01.1970 и 00:00:00 01.01.2000):

0x24D18252 (HEX) + 946684800 (DEC) = 1564394971 (DEC, соответствует 29 июля 2019 г., 10:09:31); 0x3B – разделитель; 0x30 0x30 0x30 0x30 0x61 0x39 0x30 0x30 – уникальный идентификатор параметра (00003ba00); 0x3B – разделитель; 25 Параметр Тип Размер Комментарий Метка времени binary data 4 байта В секундах начиная с 00:00 01.01.2000 (UTC+0) Разделитель строка 1 байт Символ «;» (без кавычек) Уникальный идентификатор параметра (UID) строка 8 байт В виде строки из HEX-символов с ведущими нулями Разделитель строка 1 байт Символ «;» (без кавычек) Значение параметра строка зависит от параметра В виде строки из HEX-символов с ведущими нулями Разделитель строка 1 байт Символ «;» (без кавычек) Статус параметра binary data 1 байт 1 – значение параметра корректно, 0 – значение параметра некорректно и его дальнейшая обработка не рекомендована Перенос строки binary data 2 байта \n\r (0x0A0D)