Как преобразовать нотацию asn.1 erlang в нотацию значения asn.1

Я хочу получить выравнивание по закодированному сообщению asn.1 и декодировать его в обозначение значения asn.1. Есть ли доступные инструменты? Erlang поддерживает кодирование и декодирование, а также чтение нотации значений из файла, но декодирование дает только erlang, а не нотацию значений.

'S1AP':decode('S1AP-PDU', [32,17,0,23,0,0,2,0,105,0,11,0,0,98,242,33,0,0,195,92,0,51,0,87,64,1,25]).

{ok,{successfulOutcome,{'SuccessfulOutcome',17,reject,{'S1SetupResponse',[{'ProtocolIE-Field',105,reject,[{'ServedGUMMEIsItem',["bò!"],["Ã\\"],["3"],asn1_NOVALUE}]},{'ProtocolIE-Field',87,ignore,25}]}}}}

Как продолжить с приведенным выше кодом. Я хотел бы получить PDU, как здесь http://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One#Example или ниже (взято с вики-сайта)

myQuestion FooQuestion ::= {
trackingNumber     5,
question           "Anybody there?"
}

person kontulai    schedule 26.08.2011    source источник
comment
Можете ли вы немного уточнить свой вопрос, возможно, добавить пример, каков будет ожидаемый результат.   -  person Peer Stritzinger    schedule 27.08.2011


Ответы (1)


Вам необходимо включить автоматически сгенерированные файлы hrl, которые содержат определения записей для данных вашего протокола asn. Они должны быть либо в той же папке, что и исходники asn1, либо в ../include. После этого вы сможете использовать синтаксис записи myQuestion#'FooQuestion'{trackingNumber=TrackingNumber, question=Question} для сопоставления данных с образцом.

person Dmitry Belyaev    schedule 24.02.2013
comment
Я думаю, что kontulai спрашивает, как преобразовать декодированный кортеж asn.1 erlang в более удобочитаемую нотацию значений asn.1, скорее всего, для целей ведения журнала. - person Exponent; 26.02.2013
comment
Да, и именно поэтому ему нужны записи, чтобы написать для них красивую печать. - person Dmitry Belyaev; 27.02.2013