ASN1C is code generation tool targeted at developers who produce products
based on Abstract Syntax Notation One (ASN.1) and XML standards. It is
capable of generating code in four different programming languages: C, C++,
Java, and C#. The version 6.6 release adds new capabilities to generate code
that is easier to work with and to increase performance in applications that
use this code. The following is a summary of new features:
+
Capability to Encode/Decode Data in JSON Format
The capability to
generate encoders/decoders that support Javascript Object Notation (JSON)
has been added. JSON is a reasonably simple and compact textual
encoding format that is now being used in many domains where XML was
used before. No formal encoding rule specification exists for JSON, so
we created our own. The document is available at http://www.obj-sys.com/docs/JSONEncodingRules.pdf.
+ Capability to Encode/Decode 3GPP Layer 3 Messages
The
capability to encode/decode binary 3GPP layer 3 messages has been added.
These include messages specified in the Non-Access Stratum (NAS) layer
for 3G and LTE. These messages are not specified in ASN.1 but rather in
tabular format and using Concrete Syntax Notation 1 (CSN.1). However,
it was determined that a fairly close approximation of the messages
could be created in ASN.1 along with a special encoding rules
capability (3G Layer 3) and additional configuration directives to refine
the encoding format. A document on the approach used to work with these
message types is available at http://www.obj-sys.com/docs/UsingASNtoDescribe3GPPMessages.pdf.
+ Open Source Version of C BER/DER Run-time
An open source version of
the C BER/DER run-time (ooberrt) has been added. This is a limited
version of our BER/DER run-time that does not contain all features and
is not fully optimized as is our commercial version. Nonetheless, it
may be sufficient for some applications.
+ Capability to Embed
Configuration Directives in ASN.1 Comments
An external XML file was
the only method available up until this release to apply configuration
directives to specific ASN.1 types or elements. It is now possible to
embed directives as special ASN.1 comments immediately preceding the
item to be configured.
+ Addition of ASN.1 Comments and Type
Definitions in C/C++ Header Files
ASN.1 comments as well as the ASN.1
definition itself are now embedded as comments in generated C/C++ header
files for each generated C/C++ type or class. This makes it easy to see
the ASN.1 definition a generated C structure represents.
+ More
Efficient Table Constraint Index Handling
Modified C/C++ code
generation of SEQUENCE-based index values in table constraints to be
more efficient (replaced if-else with switch at each level).
+
Option to Use Enumerated Types in C/C++ Code
A new command-line
option, -use-enum-types, has been added which replaces the integer types
that were used to represent enumerated types with generated enum types.
Integers were always used in the past because the size was known
(different C compilers generated different sized items for enum types)
and to account for the possibility of unknown extensible enumerated
items. This option allows the user to override this behavior and use
the enum type instead. + Added support for ASN.1 2008 IRI
Type
Support was added for the ASN.1 2008 IRI Type for all
languages. ASN1C now supports all items in the ASN.1 2008 standard with
the exception of some Extended-XER encoding instructions.
For
more information on the new release see:
http://www.obj-sys.com/release-notes-asn1c-v66.html
A
free evaluation version of the software can be downloaded from:
http://www.obj-sys.com/evaluate-asn1c.php
This
release is available as a free upgrade to users with active support.
|