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.