Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

     21.6 Тип AlternativeDetermination

21.6.1 Продукцией типа "AlternativeDetermination" является:


AlternativeDetermination ::=

ENUMERATED {field-to-be-set, field-to-be-used, handle}

21.6.2 Безусловным значением (по умолчанию) для этого типа всегда является "field-to-be-set".

21.6.3 Признак кодирования этого типа указывает способ, которым декодер определяет, какая альтернатива присутствует в кодировании класса категории "альтернативы".

21.6.4 Значение "field-to-be-set" требует спецификацию REFERENCE для поля, которое будет устанавливаться кодером для переноса информации, указывающей альтернативу, и использоваться декодером. Эта спецификация будет также содержать признак кодирования, который указывает, как кодер должен устанавливать значение этого поля со смысловым целочисленным значением, которое указывает каждую альтернативу (используя порядок следования, указанный в других признаках кодирования). Если поле устанавливается более одного раза с помощью "field-to-beset" или "flag-to-be-set" (см. 21.7), то спецификация ECN или применение будут ошибочными, когда разные значения выдаются разными процедурами кодирования; в этом случае кодеры не должны генерировать кодирования.

21.6.5 Значение "field-to-be-used" требует спецификацию REFERENCE для поля, значение которого может быть установлено из абстрактного синтаксиса (то есть соответствующее поле появляется в пределах спецификации АСН.1) либо некоторыми другими действиями кодера, вызванными с помощью "field-tobe-set" или "flag-to-be-set". Эта спецификация будет также содержать признак кодирования, который указывает, как декодер должен определять (из значения упомянутого поля) смысловое целочисленное значение, которое указывает альтернативу (используя порядок следования, указанный в других признаках кодирования).

21.6.6 Значение "handle" требует, чтобы был указан идентификационный описатель. Этот идентификационный описатель должен выдаваться объектами кодирования всем альтернативами в конструкции, определенной классом в категории "альтернативы". Наборы значений описателей, заданные этими объектами кодирования, должны быть непересекающимися (нарушение этого правила даст ошибку спецификации ECN, и кодеры, соответствующие техническим требованиям, не должны генерировать кодирований, когда это правило нарушается).

21.6.7 Декодер должен определять альтернативу, которая присутствует за счет декодирования оставшихся частей кодирования, чтобы произвести значение для указанного идентификационного описателя. Альтернатива, набор значений описателя которой совпадает с этим значением, является той альтернативой, которая присутствует. Если конец любого открытого контейнера (или конец PDU) достигается до того, как идентификационный описатель может быть декодирован, или если значение идентификационного описателя не соответствует набору значений описателя любой из альтернатив, то это является ошибкой кодирования.

Примечание - Каждое абстрактное значение данной альтернативы должно иметь значение описателя, соответствующее набору значений описателя альтернативы (см. 22.9.2.2).