GithubHelp home page GithubHelp logo

rgyger / xenon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from intrig/xenon

0.0 0.0 0.0 3.24 MB

The Intrig Message Decoder

License: MIT License

CMake 0.78% Makefile 1.14% C++ 27.62% C 41.51% HTML 26.34% CSS 0.07% Batchfile 0.16% Lua 1.16% Roff 0.67% Lex 0.56%

xenon's Introduction

The Intrig Message Decoder

1. Introduction

Intrig Xenon provides flexible, powerful and easy to use C++ API for decoding protocol messages.

Originally developed for 3G and 4G programmers and test engineers to decode their complex messages, the xenon decoder has evolved into a general purpose open source tool with an ever expanding protocol support base.

Support for 5G is underway. See progress at intrig#44

And, using XDDL, you can support your own proprietary message formats.

See xenon in action for yourself using the Intrig online decoder: SMS Message

1.1. Quick Start

Xenon is a CMake based project. It builds on Linux, MacOS, and Windows.

A Makefile is provided for convenience only and can be used on MacOS and Linux.

1.1.1. Building on Mac and Linux

git clone --recurse-submodules http://github.com/intrig/xenon.git
cd xenon
cmake -B build -S . -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build -v

For MacOS you can also use -Gxcode in the above cmake command to make an xcode project in the xcode subdirectory.

1.1.2. Building on Windows

Windows requires the following steps:

  1. Clone the xenon repo as above.

  2. Using a recent version of Visual Studio, select menu item "File/Open/Folder…​" and select the top level xenon directory.

  3. Select menu item "Build/Build All"

  4. Select menu item "Test/Run CTests" for xenon

This currently builds a static libary.

1.2. Dependencies

  • Cmake

  • Ninja

  • C++17 or later compiler

Checkout the .github/workflow/ccpp.yml file to see how these are installed for the CI system on the latest OS versions.

2. Using Xenon

Link with the libxenon.so library, found in:

  • /usr/local/lib//libxenon.so on Linux,

  • /usr/local/lib/libxenon.dylib on MacOS.

  • C:\Program Files (x86)\xenon\lib\xenon.lib on Windows.

Header files:

  • /usr/local/include/xenon on MacOS and Linux,

  • C:\Program Files (x86)\xenon\include\xenon on Windows.

The XDDL data files:

  • /usr/local/share/xddl on MacOS and Linux,

  • C:\Program Files (x86)\xenon\share\xddl on Windows.

See the xenon/examples directory for some common uses of the decoder.

If you want to parse your own custom protocols, then the XDDL Reference is a complete reference containing useful examples.

Also, the tools directory contains useful examples, such as xenon-dm and xenon-xv. These two programs are installed into /usr/local/bin.

2.1. Converting 3GPP asn.1 to XDDL

asnx converts asn.1 PER files to xddl. It handles a subset of the asn.1 spec. If there any problems please submit an issue.

For 3GPP specs, e.g. 36.331:

  1. Download the latest pdf spec.

  2. Save it to text file, e.g. 36.331.txt.

    Ubuntu the pdftotext command can be used, for example:

    pdftotext -nopgbrk -layout ts_136331v150700p.pdf 36.331.txt

  3. Run: asn-strip -m 36.331.txt > 36.331.asn

  4. Run: asnx -o TS-36.331.xddl -t 36.331.asn

    Edit 36.331.asn by hand. Some of the lines may have been broken at '-' characters. Fix the errors by hand and run the above step repeatedly until you fixed the errors.

  5. Add resulting xddl file to git.

Enjoy!

xenon's People

Contributors

intrig avatar wythe avatar rgyger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.