Skip to content

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.