2013-08-16 13 views
7

私は通信プロトコル(具体的にはS1AP)で作業しようとしており、テストするメッセージを定義しようとしています。ASNファイルとは何ですか?どのように使用しますか?

LTE 36.413仕様では、このプロトコルの詳細を説明しており、pdfの最後にASN.1ファイル定義も示しています。私はASNファイルがWireShark用のディセクタで使用されているのを見てきました。仕様に従ってメッセージを生成するために使用できると推測しています。

どのようにASN.1ファイルを使用しているのでしょうか。私はASN.1コンパイラに関する情報やその他の情報を調べて研究していますが、使用方法を明確に説明していないので、すべての情報が非常に混乱しています。誰かが私にそれを使用する方法を理解するのを助けてくれますか?

答えて

8

多くの狩りの後、私はASN.1ファイルが何であるかを知りました。

これらのASN.1ファイルには、基本的にプロトコルの説明とパケットの説明が含まれています。これらのASN.1ファイルを使用して、使用するアプリケーションで使用する.cファイルと.hファイルを生成することができます。あなた自身のメッセージデータベースを作成する必要がないので、これは本当に便利です。 ASN.1ファイルをコンパイルするだけで、Cファイルをコンパイルして使用することができます。

今、あなたはこれをコンパイルするにはどうすればいいのでしょうか?通常、何らかのASN.1コンパイラが必要です。あなたはいくらか支払う必要がありますが、私はLinuxとWindowsで動作するオープンソースのものを見つけることができました。必要な依存関係を持っている限り、それはUNIXベースなので、MACでも動作する可能性があります。いずれにせよ、ここにはこのウェブページへのリンクがあります。このWebページは使い方を文書化するのに素敵な仕事だと思うので、私はそれを使う方法を説明しません。これが私を助けたように誰かを助けてくれることを願っています。お金が懸念される場合には、このようなOSS Nocklava ASN1.Cコンパイラなどの商業一つまたは、それはあるかもしれない

チェックアウトそのリンクはあなたのために動作しない場合は、ここでhttp://lionet.info/asn1c/blog/

コンパイラ、あなたは試してみる必要があるかもしれませんこれにかかる時間にもかかわらず、独自のデータベースを作る価値があります。

すべて最高です。

5
  1. ASNはデータ記述言語です。あなたが言ったように、見つかったASNファイル定義は、S1APプロトコルの下でのエンコーディングとデコードに準拠するようにメッセージデータの表現を指定します。

  2. ASNファイルをコンパイルする必要があります。コンパイルからの出力は、コード化されたプラットフォームに関係なく、S1APデータモデルへのメッセージデータを自動的にシリアライズ/デシリアライズするコード仕様と本体(ほとんどの場合、.hと.cコードファイル)を提供します。これを読んでくださいをASN.1が強力にするものの深さでより簡潔な説明については、またhttp://asn1-playground.oss.com/

  3. :急速にテストし、あなたがこのサービスを利用することができますどのようにあなたのASN.1スキーマを使用することを学ぶ

  4. https://www.thanassis.space/asn1.html。著者は、欧州宇宙機関の監督下で開発されたオープンソースのASN.1コンパイラも共有しています。

    側の注意点として
  5. 、それはそれはで拡張非常に類似した技術を表しているようプロトコルバッファの使用を検討する価値があるかもしれませんが、そのような前/後データ記述の互換性や反射など、間違いなく、より現代的な機能:https://developers.google.com/protocol-buffers/docs/cpptutorial

+0

こんにちはオリビエ、あなたの貢献に感謝します。 StackOverflowは自己完結型サイトが好きです。あなたのソースの属性は素晴らしいですが、このようなリンクのみの答えはぶち飛ばされます。投稿を編集して、あなたが引用したソースから関連する詳細を含めることはできますか? – AndyG

+0

編集していただきありがとうございます。それはすべての違いを作ります。 – AndyG

関連する問題