Dafocus logo a&apm;b logo

Encodix description

Encodix is a tool designed to handle the telecom protocols encoding/decoding process.
Often, to save bandwidth, protocols require the data to be packed up in tight bit streams that make the development of protocol stack expensive and tricky.
Most companies address this issue by writing a layer that manages the packed bit streams, doing the job of unpacking the data in programmer-friendly high level data structures and vice versa. These layers will manage all the control bits, checksums, formatting rules, length indicators, etcetera. As a rule, telecom companies develop such layers on their own.
The market usually offers the following solutions:
  • Pre-developed layers - for example one could buy a piece of C-source handling the encoding-decoding of a given standard; for example, handling all the messages of ETSI 04.08;
    the pro of this approach is that it saves a lot of development time; cons are that it is difficult to maintain the source, especially when the standard evolves with new messages or information elements and structures detail level, naming conventions etc. are hard coded.
  • Code generators are tools able to read the specification text and produce automatically a set of routines able to do the encoding/decoding; they are normally offered for those specification languages that are formal, like CSN.1 or ASN.1.

Encodix is in the family of the code generators; but, while the others handle formal specifications only, Encodix offers the generation for the informal specifications too.
For example, ETSI 04.08, which defines encoding/decoding format for GSM layer 3, has most of the messages and information elements specified with text, tables and figures meant to be read by a human being and not a machine; the few formal parts are written in CSN.1.
Encodix defines formal grammars that resemble the original specifications.
The user can enter definition using a syntax that follows closely the layout of the official documents. This allows quick and easy message input and maintenance: people dealing with message definition are not required to understand C or any other programming language (see Picture 1).

Picture 1

See also:
Generated languages... >>>
The CSN.1 module... >>>
The Access module... >>>
The generations process and examples... >>>