ГОСТ Р 56947—2016
9.2.2 Байтовый массив полезной нагрузки ИИЭР 1451.0
Чтобы минимизировать сведения о необходимых для работы с уровнем ИИЭР 1451 .X данных, вся
(с точки зрения настоящего стандарта) передаваемая информация объединяется вместе в «полезную
нагрузку» («payload»), которая кодируется в виде байтового массива данных.
За исключением случаев, когда уровню ИИЭР 1451.Х необходимо перехватить сообщение уровня
ИИЭР 1451.0. устройствам уровня ИИЭР 1451.X следует рассматривать полезную нагрузку как «невос-
лринимаемую». В 6.2—6.3 приводятся данные о месте нахождения информации о длине, необходимой
для декодирования данных, что осуществляется внутри класса кодирования/декодирования.
С точки зрения настоящего стандарта байтовый массив и адресация получателя представляют со
бой логический формат соединения. Предполагается, что уровень ИИЭР 1451 .X осуществляет упаковку
байтового массива в соответствующий сетевой пакет для данной технологии уровня ИИЭР 1451.X. На
пример. могут быть добавлены соответствующие сетевые заголовки и контрольные суммы. Кроме того,
уровень ИИЭР 1451.Х несет ответственность за деление байтового массива на сетевые пакеты соот
ветствующего размера и их обратное объединение в байтовый массив на удаленном узле. Аналогич
ным образом уровень ИИЭР 1451.X несет ответственность за шифрование, аутентификацию, сжатие и
управление обменом данными.
9.2.3 Структуры данных уровня ИИЭР 1451.0 на языке IDL. Использование массива аргумен
тов «ArgumentArray»
Чтобы упростить использование полезной нагрузки для уровня ИИЭР 1451.0 и более высоких
уровней приложений, выполняющих измерения, данный стандарт также определяет структуры данных
на языке IDL. В конкретных реализациях IDL структуры данных отображаются в виде соответствующих
структур данных, зависящих от используемого в реализуемом приложении языка программирования
(например, структуры на языке С или C++ или класс Java). Такие зависящие от языка программиро
вания структуры данных гарантируют корректное совмещение байтов, что позволяет осуществить не
посредственный доступ ко всем атрибутам данных. Например, при использовании большинства плат
форм потребуется совмещение чисел с плавающей точкой с границами четырехбайтовой памяти.
Согласно примеру стандарта ИИЭР 1451.1—1999 наиболее распространенной структурой дан
ных в рамках уровня ИИЭР 1451.0 и уровней приложений является универсальный массив аргументов
«ArgumentArray». Аргументы могут быть представлены всеми основными типами данных (например,
Ulnt8. Ulnt16 или Float32) и простейшими массивами данных основных типов (например. Ulnt8Array,
Float32Array или StringArray). Дополнительно могут быть определены нестандартные аргументы, необхо
димые для приложений, осуществляющих измерения (например. Units, Timelnstance или TimeDuration).
Структура данных «ArgumentArray» в виде массива аргументов является очень гибким механиз
мом для компоновки и передачи произвольных типов данных в системе, не требуя сведений о времени
компиляции. Например, отсчет при измерении с канала преобразователя кодируется в
соответствую щий аргумент, базируясь на информации, представленной в ЭТДП (например, модель
данных, число повторений данных, калибровочная информация). Данный аргумент будет храниться
внутри массива данных длиной 1 байт. В качестве более сложного примера можно рассмотреть
процесс считывания с прокси-канала преобразователя, определяющего группу каналов
преобразователя, которые должны считываться вместе. Каждый канал преобразователя такого прокси
будет представлен в виде отдельно го аргумента необходимого типа, основываясь на информации
ЭТДП. Данные аргументы группируются вместе в массив аргументов «ArgumentArray». который
представляет данные всего прокси.
Для упрощения процесса передачи массивов аргументов через уровень ИИЭР 1451 .X обеспечен
универсальный механизм кодирования/декодирования посредством интерфейса кодеков. Данные методы
кодируют массивы аргументов в байтовые массивы и наоборот. В большинстве случаев ответственность за
вызов данных методов возлагается на настоящий стандарт, а уровень ИИЭР 1451.Х работает исключи
тельно с формами байтовых массивов. При этом устройства уровня ИИЭР 1451.X должны обеспечить лишь
передачу полезной нагрузки в воде байтовых массивов от отправителя к получателю. Операции кодирова
ния/декодирования осуществляются через библиотеки, однако при необходимости уровень ИИЭР 1451 .X
может использоватьдругую реализацию. Более подробная информация представлена в разделах 7—8.
В редких случаях уровню ИИЭР 1451.Х может потребоваться отклониться от рекомендуемого для
уровня ИИЭР 1451.0 формата байтового массива данных. В этом случае уровню ИИЭР 1451.Х следует
обеспечить другую библиотеку кодирования/декодирования.
9.2.4 Допущения о принадлежности параметров
Если не определено иначе, то параметры и возвращенные результаты принадлежат объекту — от
правителю запроса. Если объекту, к которому осуществлен запрос, необходимо удержать значение па
раметра. то он должен сделать локальную копию. Объект — отправитель запроса имеет право освобо
дить любые ресурсы памяти для параметров и возвращенных результатов после возвращения запроса.
138