Custom Classes#
The AES70 standard allows the definition of custom classes. This library
contains a tool which can be used to generate code for custom classes from a
JSON specification. This tool can be found in tools/generator
. This tool is
written in NodeJS and can be run from the command line to generate code for a
given JSON specification either for this library, for libaes70.NET
and
AES70.js
.
This repository contains some tests defining and using custom classes under
tests/integration/custom_classes
. The example JSON files in that directory can
be used as starting points for defining a public class. Note that the generator
tool is currently limited, e.g. it does not support all possible standard data
types.
Note that when defining a custom class one needs to choose a class ID.
Generally, the class ID must be derived from one of the existing standard
classes. For instance, since OcaSensor has class ID 1.1.2
, a subclass of
OcaSensor needs to have class ID 1.1.2.XXX
. The allocation of class IDs for
custom classes is specified in the AES70 standard documents, specifically in
section 4.2.2.6.3 Nonstandard class IDs
of AES70-1-2018. In short, proprietary
(or nonstandard) class IDs should be prefixed by the OUI of the manufacturer
when used in production environments. This guarantees that class IDs of
different manufacturers do not collide.