Разбиение SenML пакета: сохранить base поля каждой записи
Шлюз хозяйства делит большой SenML pack на несколько архивных файлов. Если просто разрезать список, вторая часть может потерять Base Name, Time или Unit, действовавшие выше по исходной последовательности. Тогда записи изменят смысл, хотя останутся синтаксически допустимыми. Проверяйте эффективный контекст до разделения и после повторного чтения. Приёмка должна сохранить принадлежность, время и единицы каждого элемента независимо от того, в какой производный файл он попал.
Установить область действия
SenML base поля действуют в текущей и следующих записях до соответствующего изменения; resolved records имеют собственные правила. (IETF RFC 8428 — Sensor Measurement Lists) Не считайте каждый record изолированным объектом по обычной JSON логике. Подтвердите точный формат и способ разрешения. Смена одного base поля не обязательно сбрасывает остальные. Для конвертера это важная часть контракта, которую нельзя восстановить по одному имени файла или времени поступления очередной части после её передачи в верхний архив хозяйства.
В карте укажите исходный порядок, effective base для каждой записи и способ формирования самостоятельных частей. Сохраните исходник и контрольную сумму. Если программа создаёт resolved представление, обозначьте его как производное с версией преобразования. Не копируйте механически все base поля без проверки правил целевого формата. После разделения каждая принимаемая часть должна иметь достаточный подтверждённый контекст либо явную связь с ним по проекту; отсутствие такой связи нельзя скрыть последним значением из чужого кэша.
Проверить разные места разреза
Создайте собственный стендовый pack с несколькими изменениями base полей и различимыми record значениями. Разделите его перед изменением, после изменения и внутри участка наследования. Повторно прочитайте каждую часть предусмотренным потребителем. Сравните разрешённые имена, времена, единицы и значения с исходной моделью. Не проверяйте только число записей: контекстная ошибка может сохранить количество, поменяв принадлежность или временную интерпретацию. Порядок должен оставаться известным и воспроизводимым при последующем объединении файлов из выбранного архивного тракта хозяйства.
Отдельно передайте части в другом порядке в изолированной среде. Если проект разрешает независимое чтение, оно должно сохранять смысл без ожидания предыдущего файла. Если зависимость предусмотрена, она явно проверяется и обозначается. Не объявляйте самостоятельность части только по успешному JSON разбору. После обратного объединения сверяйте записи по полной идентичности. Исходные серверные метки не переписывайте, а пользовательское отображение времени Астаны не должно менять первоначальные SenML временные значения и действующий операционный календарь источника.
Принять переносимый контекст
В акте сохраните места разделения, effective поля и результаты повторного чтения. Приёмка подтверждает семантическое сохранение выбранного pack через конкретный конвертер. Для хозяйства это позволяет ограничивать размер архивных частей без тихой подмены источника и единиц. Инженер может восстановить правило наследования и проверить обновление по тому же набору. Синтаксически правильная часть получает доказательство своего контекста, а последующая обработка не зависит от случайного порядка файлов и остатка base сведений предыдущего датчика в памяти приложения.