2013-08-16 45 views
7

我正在嘗試使用通信協議(S1AP具體),我試圖定義要測試的消息。什麼是ASN文件,我該如何使用它?

LTE 36.413規範詳細介紹了該協議,並在pdf的底部給出了ASN.1文件定義。我曾經在WireShark解析器中看到過ASN文件,我猜測我可以用它來根據規範生成消息。

我在想如何使用ASN.1文件。我一直在研究並找到有關ASN.1編譯器和其他相關信息的信息,但所有信息都讓我感到非常困惑,因爲沒有人明確解釋如何使用它。有人能幫我理解如何使用它嗎?

回答

8

經過多次的狩獵,我發現了什麼ASN.1文件。

這些ASN.1文件實質上包含協議描述和包描述。使用這些ASN.1文件,您可以生成.c和.h文件,以便在您希望使用它們的某個應用程序中使用。這非常方便,因爲您不必創建自己的消息數據庫。你只需編譯ASN.1文件,你的C文件將被編譯供你使用。

現在,你一定想知道,我該如何編譯?那麼,你通常需要某種ASN.1編譯器。你必須付出一些代價,但是我能夠找到一個適用於Linux和Windows的開源代碼。有可能它也可以在MAC上工作,因爲這是基於UNIX的,只要你有必要的依賴關係。無論如何,這裏是到這個網頁的鏈接。我不會解釋如何使用它,因爲我認爲這個網頁在記錄使用方面做得很好。希望這對幫助我的人有所幫助。

退房這裏http://lionet.info/asn1c/blog/

編譯器如果該鏈接不爲你工作,你可能需要嘗試一個商用比如OSS Nocklava ASN1.C編譯器,或者如果錢是關心的,那麼它可能是儘管需要花費很多時間,但值得建立自己的數據庫。

一切順利。

5
  1. ASN是一種數據描述語言。就像你說的那樣,找到的ASN文件定義指定了消息數據的表示,以符合S1AP協議下的編碼和解碼。

  2. 需要編譯一個ASN文件。編譯的輸出將爲您提供一些代碼規範和正文(大多數情況下是.h和.c代碼文件),以便自動將任何消息數據序列化/反序列化到S1AP數據模型,而不管從中編碼和發送到哪個平臺。

  3. 爲了快速檢測,並學習如何使用您的ASN.1模式您可以使用此服務:在深度和什麼使ASN.1強大的簡要說明http://asn1-playground.oss.com/

  4. 此外,對於更多信息,請閱讀本:https://www.thanassis.space/asn1.html。作者還分享了在歐洲空間局監督下開發的開源ASN.1編譯器。

  5. 作爲一個側面說明,它可能值得調查使用Protocol Buffers的,因爲它代表了,按理說,更現代的功能,如向後/向前的數據描述的兼容性和反射增強一個非常類似的技術:https://developers.google.com/protocol-buffers/docs/cpptutorial

+0

嗨奧利維爾,感謝您的貢獻。 StackOverflow喜歡成爲一個獨立的網站。歸因於你的消息來源是很棒的,但是像這樣的只有鏈接的答案是不被接受的。你能編輯你的帖子,以包括你引用的來源的相關細節嗎? – AndyG

+0

感謝您的編輯。它使所有的差異。 – AndyG

相關問題