Framework Datatypes

OcaOrganizationID

using OcaOrganizationID = OcaBlobFixedLen<3>

Globally unique identifier of an organization. Equal to the organization’s IEEE OUI or CID. Note that the IEEE defines the OUI space and the CID space as disjoint, the this OCA identifier is always completely unique.

OcaClassAuthorityID

struct OcaClassAuthorityID

Class authority identifier. Identifies the authority for a class’s definition.

OcaUint16 Sentinel

Sentinel signifying an Authority ID

OcaUint8 Reserved

Reserved, must be zero.

OcaOrganizationID OrganizationID

Authority’s IEEE public Company ID (public CID) or IEEE Organizational Unique Identifier (OUI), or the value zero, which signifies the Authority of this AES70 standard.

OCP.1 Encoding

Field

Basic type

Byte length

Sentinel

OcaUint16

2

Reserved

OcaUint8

1

OrganizationID.Value

OcaBlobFixedLen<3>

3

OcaClassIDField

using OcaClassIDField = FieldType

Class identifier field. There is one of these for each level in the ClassID. The normative definition of the Class identifier is given in Part 1 of this standard, in the section entitled “Class identifiers”. The UML definition given here is intended to be identical, but in the case of any discrepancy, Part 1 shall be definitive.

OcaClassID

struct OcaClassID

Class identifier : vector that describes the class’s ancestry. The normative definition of the Class identifier is given in Part 1 of this standard, in the section entitled “Class identifiers”. The UML definition given here is intended to be identical, but in the case of any discrepancy, Part 1 shall be definitive..

OcaUint16 FieldCount

Identifies the number of fields of the ClassID, i.e. the level of the class tree the class is in. For example if this field count is 3, the ClassID is of the form ‘n.m.p’. The minimum field count is 1 (OcaRoot class). A field count of zero is invalid.

OcaClassIDField[] Fields

Array of actual fields of the ClassID. The array has ‘FieldCount’ entries. If for example the field count is 3 and the Fields array has value {1, 2, 3} the ClassID is ‘1.2.3’.

OCP.1 Encoding

Basic type

Byte length

OcaClassID

(2 + Count * 2 * variable)

OcaVersion

struct OcaVersion

Representation of a version number of a (hardware/software) component of a device in the form of Major.Minor.Build (e.g. 1.0.123).

OcaUint32 Major

The major version number.

OcaUint32 Minor

The minor version number.

OcaUint32 Build

The build number. May be 0 if it is not used (e.g. for a hardware component).

OcaComponent Component

The component.

OCP.1 Encoding

Field

Basic type

Byte length

Major

OcaUint32

4

Minor

OcaUint32

4

Build

OcaUint32

4

Component

OcaEnumItem16

2

OcaEnumItem

type OcaEnumItem

The datatype of an enumeration choice.

OcaBitSet16

OcaEnumItem16

type OcaEnumItem16

The datatype of an enumeration choice. Long format, used if normal 8-bit format isn’t going to be big enough.

OcaClassIdentification

struct OcaClassIdentification
OcaClassID ClassID
OcaClassVersionNumber ClassVersion

Version number of the class.

OCP.1 Encoding

Field

Basic type

Byte length

ClassID

OcaClassID

(2 + Count * 2 * variable)

ClassVersion.Value

OcaUint16

2

OcaClassVersionNumber

using OcaClassVersionNumber = OcaUint16

Class version number, ascending from 1.

OcaONo

using OcaONo = OcaUint32

Object number of an OCA object.

OcaOPath

struct OcaOPath

Object address. Composite of network address in which object resides, and object number.

OcaNetworkHostID HostID

Host ID of device that contains the referenced object.

OcaONo ONo

Object number of referenced object.

OCP.1 Encoding

Field

Basic type

Byte length

HostID.Value.DataSize

OcaUint16

2

HostID.Value.Data

OcaUint8

1 * Count

ONo.ONo

OcaUint32

4

OcaNamePath

using OcaNamePath = OcaList<OcaString>

Role-name path from a containing block up to an object. If the containing block is the Root Block the path is an absolute path; if not, it is a relative path.

OcaONoPath

using OcaONoPath = OcaList<OcaONo>

ONo path from a containing block up to an object. If the containing block is the Root Block the path is an absolute path; if not, it is a relative path.

OcaObjectIdentification

struct OcaObjectIdentification

Object identification. Composite of object number and object’s class. Used mainly in discovery processes.

OcaONo ONo

Object number of referenced object.

OcaClassIdentification ClassIdentification

Class identification of referenced object.

OCP.1 Encoding

Field

Basic type

Byte length

ONo.ONo

OcaUint32

4

ClassIdentification.ClassID

OcaClassID

(2 + Count * 2 * variable)

ClassIdentification.ClassVersion.Value

OcaUint16

2

OcaMethodID

struct OcaMethodID

Representation of an OCA method ID. A class may define at most 255 methods of its own. Additional methods may be inherited, so the total number may exceed 255.

OcaUint16 DefLevel

Level in tree of class which defines this method (1=root)

OcaUint16 MethodIndex

Index of the method (in the class description).

OCP.1 Encoding

Field

Basic type

Byte length

DefLevel

OcaUint16

2

MethodIndex

OcaUint16

2

OcaPropertyID

struct OcaPropertyID

Representation of an OCA property ID. A class may define at most 255 properties of its own. Additional properties may be inherited, so the total number may exceed 255.

OcaUint16 DefLevel

Level in tree of class which defines this property (1=root)

OcaUint16 PropertyIndex

Index of the property (in the class description).

OCP.1 Encoding

Field

Basic type

Byte length

DefLevel

OcaUint16

2

PropertyIndex

OcaUint16

2

OcaEventID

struct OcaEventID

Representation of an OCA event ID. A class may define at most 255 events of its own. Additional events may be inherited, so the total number may exceed 255.

OcaUint16 DefLevel

Level in tree of class which defines this event (1=root)

OcaUint16 EventIndex

Index of the event (in the class description).

OCP.1 Encoding

Field

Basic type

Byte length

DefLevel

OcaUint16

2

EventIndex

OcaUint16

2

OcaPropertyDescriptor

struct OcaPropertyDescriptor

Description of an OCA property, including property ID, Get and Set method IDs, and datatype.

OcaPropertyID PropertyID
OcaBaseDataType BaseDataType

The base datatype of the property. Chosen from an enum datatype that represents the available set of basedatatypes .

OcaMethodID GetterMethodID

Method ID of GET method

OcaMethodID SetterMethodID

Method ID of SET method

OCP.1 Encoding

Field

Basic type

Byte length

PropertyID.DefLevel

OcaUint16

2

PropertyID.PropertyIndex

OcaUint16

2

BaseDataType

OcaEnumItem

1

GetterMethodID.DefLevel

OcaUint16

2

GetterMethodID.MethodIndex

OcaUint16

2

SetterMethodID.DefLevel

OcaUint16

2

SetterMethodID.MethodIndex

OcaUint16

2

OcaProperty

struct OcaProperty

Template for complete identification of an OCA property instance, including object number, property ID, Get and Set method IDs, and datatype.

OcaONo ONo

Object number

OcaPropertyDescriptor Descriptor

Property descriptor.

OCP.1 Encoding

Field

Basic type

Byte length

ONo.ONo

OcaUint32

4

Descriptor.PropertyID.DefLevel

OcaUint16

2

Descriptor.PropertyID.PropertyIndex

OcaUint16

2

Descriptor.BaseDataType

OcaEnumItem

1

Descriptor.GetterMethodID.DefLevel

OcaUint16

2

Descriptor.GetterMethodID.MethodIndex

OcaUint16

2

Descriptor.SetterMethodID.DefLevel

OcaUint16

2

Descriptor.SetterMethodID.MethodIndex

OcaUint16

2

OcaStatus

enum OcaStatus : uint8_t

Standard status codes returned from method calls.

enumerator OK = 0
enumerator ProtocolVersionError = 1
enumerator DeviceError = 2
enumerator Locked = 3
enumerator BadFormat = 4
enumerator BadONo = 5
enumerator ParameterError = 6
enumerator ParameterOutOfRange = 7
enumerator NotImplemented = 8
enumerator InvalidRequest = 9
enumerator ProcessingFailed = 10
enumerator BadMethod = 11
enumerator PartiallySucceeded = 12
enumerator Timeout = 13
enumerator BufferOverflow = 14

OcaGlobalTypeIdentifier

struct OcaGlobalTypeIdentifier

Globally unique identifier of something that belongs to an organization.

OcaOrganizationID Authority

Unique identifier of organization that has authority over this reusable block type. A zero value indicates a global type defined by the AES70 standard itself.

OcaUint32 ID

ID of library volume type defined by given Authority. Value is unique within the given Authority.

OCP.1 Encoding

Field

Basic type

Byte length

Authority.Value

OcaBlobFixedLen<3>

3

ID

OcaUint32

4

OcaParameterMask

using OcaParameterMask = OcaBitSet16

Bitset to indicate which method parameters contain valid data. The position of a bit in the bitset shall correspond to the ordinal position of the respective parameter of the method in question.

OcaStringComparisonType

enum OcaStringComparisonType : uint8_t

Type of string comparison.

enumerator Exact = 0

Exact comparison, Case-sensitive.

enumerator Substring = 1

Match all strings whose initial substrings equal the given key. Case-sensitive.

enumerator Contains = 2

Match all strings that contain the given key. Case-sensitive.

enumerator ExactCaseInsensitive = 3

Exact comparison. Case-insensitive.

enumerator SubstringCaseInsensitive = 4

Match all strings whose initial substrings equal the given key. Case-insensitive.

enumerator ContainsCaseInsensitive = 5

Match all strings that contain the given key. Case-insensitive.

OcaPositionDescriptorFieldFlags

using OcaPositionDescriptorFieldFlags = OcaBitSet16

BItset that specifies which fields in OcaPositionAndOrientation are used. A “1” value signifies that the corresponding OcaPositionAndOrientation field is used.

OcaPositionDescriptor

struct OcaPositionDescriptor

A six-axis c1,c2,c3,c4,c5,c6) coordinate. For mechanical systems, these axes shall be interpreted as follows:

  • c1 = X; axial (fore-and-aft) position

  • c2 = Y; lateral (side-to-side) position

  • c3 = Z; vertical position

  • c4 = rX; rotation around the X-axis, also known as Roll

  • c5 = rY; rotation around the Y-axis, also known as Pitch

  • c6 = rZ; rotation around the Z-axis. also known as Yaw

Rotation angles are measured according to the right-hand rule: if the right hand “holds” an axis with the thumb pointing in the direction of ascending coordinate values, then the fingers point in the direction of ascending angle values. For GPS systems, these axes shall be interpreted as follows:

  • c1 = longitude

  • c2 = latitude

  • c3 = altitude

  • c4 : not used

  • c5 : not used

  • c6 : not used

OcaPositionCoordinateSystem CoordinateSystem

Type of position coordinate system - see AES70-1, section 5.5.9.

OcaPositionDescriptorFieldFlags FieldFlags

Which fields of the Values[] array contain valid values.

OcaFloat32[6] Values

The coordinates

OCP.1 Encoding

Field

Basic type

Byte length

CoordinateSystem

OcaEnumItem

1

FieldFlags.Value

OcaBitSet16

2

Values[0]

OcaFloat32

4

Values[1]

OcaFloat32

4

Values[2]

OcaFloat32

4

Values[3]

OcaFloat32

4

Values[4]

OcaFloat32

4

Values[5]

OcaFloat32

4

OcaPositionCoordinateSystem

enum OcaPositionCoordinateSystem : uint8_t

Enumeration that designates the type of position coordinate system used. For details, see the AES70-1 description of the OcaPhysicalPosition class.

enumerator Robotic = 1

Six-axis robotic coordinates: {X, Y, Z, rX, rY, rZ} . r:raw:html:&lt;`axis:raw:html:`&gt; is anticlockwise rotation around the given axis - X, Y, or Z. For details, see AES70-1, section 5.5.9.

enumerator ItuAudioObjectBasedPolar = 2

Object-based audio, polar version, per section 8 of the ITU radio Audio Definition Model defined in ITU-R BS.2076-1. For details, see the ITU standard and AES70-1, section 5.5.9.

  • Azimuth is angle in the horizontal plane with 0 degrees as straight ahead, and positive angles to the left (or anti-clockwise) when viewed from above.

  • Elevation is angle in the vertical plane with 0 degrees horizontally ahead, and positive angles going up.

enumerator ItuAudioObjectBasedCartesian = 3

Object-based audio, Cartesian version, per section 8 of the ITU radio Audio Definition Model defined in ITU-R BS.2076-1. For details, see the ITU standard and AES70-1, section 5.5.9.

enumerator ItuAudioSceneBasedPolar = 4

Scene-based audio, polar version, per section 8 of the ITU radio Audio Definition Model defined in ITU-R BS.2076-1. For details, see the ITU standard and AES70-1, section 5.5.9.

enumerator ItuAudioSceneBasedCartesian = 5

Scene-based audio, Cartesian version, per section 8 of the ITU radio Audio Definition Model defined in ITU-R BS.2076-1. For details, see the ITU standard and AES70-1, section 5.5.9.

enumerator NAV = 6

Terrestrial navigation format: {Longitude, Latitude, Altitude}.

enumerator ProprietaryBase = 128

Base value for proprietary extensions. Proprietary extensions shall be numbered starting from this value.