|
NanoOcp
Minimal AES70 / OCP.1 TCP client/server library for d&b Soundscape devices
|
Minimal AES70 / OCP.1 TCP client/server library built on JUCE. More...
Namespaces | |
| namespace | Amp5D |
| namespace | AmpDx |
| namespace | AmpDxDy |
| namespace | AmpDy |
| namespace | AmpGeneric |
| Object definitions common to all d&b amplifier platforms. | |
| namespace | DS100 |
| OCA object definitions for the d&b audiotechnik DS100 signal engine. | |
Classes | |
| struct | ConnectionStateMessage |
| struct | DataDeliveryMessage |
| class | NanoOcp1Base |
Abstract base class shared by NanoOcp1Client and NanoOcp1Server. More... | |
| class | NanoOcp1Client |
| OCP.1 TCP client with automatic reconnection. More... | |
| class | NanoOcp1Server |
| OCP.1 TCP server that accepts a single incoming connection at a time. More... | |
| struct | Ocp1CommandDefinition |
| Parameter bundle that fully describes one OCA controllable property. More... | |
| class | Ocp1CommandResponseRequired |
| class | Ocp1Connection |
| Low-level TCP socket manager for a single OCP.1 connection. More... | |
| class | Ocp1ConnectionServer |
| TCP accept-loop server base class for OCP.1 connections. More... | |
| class | Ocp1Header |
| class | Ocp1KeepAlive |
| class | Ocp1Message |
| Abstract base class for all OCP.1 protocol messages. More... | |
| class | Ocp1Notification |
| class | Ocp1Response |
| class | SafeActionImpl |
| class | Variant |
| Type-erased OCA parameter value with built-in marshal/unmarshal support. More... | |
Typedefs | |
| using | ByteVector = std::vector< std::uint8_t > |
| Binary buffer type used throughout NanoOcp for all serialized OCP.1 data. | |
| typedef std::uint32_t | BoxAndObjNo |
| Shorthand for the combined box-and-object-number part of an ONo. | |
Enumerations | |
| enum | Ocp1DataType { OCP1DATATYPE_NONE = 0 , OCP1DATATYPE_BOOLEAN = 1 , OCP1DATATYPE_INT8 = 2 , OCP1DATATYPE_INT16 = 3 , OCP1DATATYPE_INT32 = 4 , OCP1DATATYPE_INT64 = 5 , OCP1DATATYPE_UINT8 = 6 , OCP1DATATYPE_UINT16 = 7 , OCP1DATATYPE_UINT32 = 8 , OCP1DATATYPE_UINT64 = 9 , OCP1DATATYPE_FLOAT32 = 10 , OCP1DATATYPE_FLOAT64 = 11 , OCP1DATATYPE_STRING = 12 , OCP1DATATYPE_BIT_STRING = 13 , OCP1DATATYPE_BLOB = 14 , OCP1DATATYPE_BLOB_FIXED_LEN = 15 , OCP1DATATYPE_DB_POSITION = 32 , OCP1DATATYPE_CUSTOM = 128 } |
OCA base data type codes, matching OcaBaseDataType in the AES70 specification. More... | |
Functions | |
| static constexpr std::uint8_t | uint8_8 (8) |
| static constexpr std::uint8_t | uint8_16 (16) |
| static constexpr std::uint8_t | uint8_24 (24) |
| static constexpr std::uint8_t | uint8_32 (32) |
| static constexpr std::uint8_t | uint8_40 (40) |
| static constexpr std::uint8_t | uint8_48 (48) |
| static constexpr std::uint8_t | uint8_56 (56) |
| bool | DataToBool (const ByteVector ¶meterData, bool *pOk=nullptr) |
| Convenience helper method to convert a byte vector into a bool. | |
| ByteVector | DataFromBool (bool boolValue) |
| Convenience helper method to convert a bool into a byte vector. | |
| std::int32_t | DataToInt32 (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromInt32 (std::int32_t intValue) |
| std::uint8_t | DataToUint8 (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromUint8 (std::uint8_t value) |
| std::uint16_t | DataToUint16 (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromUint16 (std::uint16_t value) |
| std::uint32_t | DataToUint32 (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromUint32 (std::uint32_t intValue) |
| std::uint64_t | DataToUint64 (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromUint64 (std::uint64_t intValue) |
| std::string | DataToString (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromString (const std::string &string) |
| std::float_t | DataToFloat (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromFloat (std::float_t floatValue) |
| std::double_t | DataToDouble (const ByteVector ¶meterData, bool *pOk) |
| ByteVector | DataFromDouble (std::double_t doubleValue) |
| ByteVector | DataFromPosition (std::float_t x, std::float_t y, std::float_t z) |
| ByteVector | DataFromPositionAndRotation (std::float_t x, std::float_t y, std::float_t z, std::float_t hor, std::float_t vert, std::float_t rot) |
| ByteVector | DataFromAimingAndPosition (std::float_t hor, std::float_t vert, std::float_t rot, std::float_t x, std::float_t y, std::float_t z) |
| ByteVector | DataFromOnoForSubscription (std::uint32_t ono, bool add) |
| std::string | StatusToString (std::uint8_t status) |
| std::string | DataTypeToString (int dataType) |
| std::string | HandleToString (std::uint32_t handle) |
| std::uint32_t | ReadUint32 (const char *buffer) |
| std::uint32_t | ReadUint32 (const std::uint8_t *buffer) |
| std::uint16_t | ReadUint16 (const char *buffer) |
| std::uint16_t | ReadUint16 (const std::uint8_t *buffer) |
| std::uint32_t | GetONo (std::uint32_t type, std::uint32_t record, std::uint32_t channel, std::uint32_t boxAndObjectNumber) |
| std::uint32_t | GetONoTy2 (std::uint32_t type, std::uint32_t record, std::uint32_t channel, std::uint32_t boxNumber, std::uint32_t objectNumber) |
Variables | |
AES70 class definition levels | |
Inheritance-depth constants used as In AES70 every property is defined at a specific level in the OCA class hierarchy. The def-level is the number of classes between Example: | |
| static constexpr int | DefLevel_OcaRoot = 1 |
| static constexpr int | DefLevel_OcaAgent = 1 + DefLevel_OcaRoot |
| static constexpr int | DefLevel_OcaWorker = 1 + DefLevel_OcaRoot |
| static constexpr int | DefLevel_OcaActuator = 1 + DefLevel_OcaWorker |
| static constexpr int | DefLevel_OcaPolarity = 1 + DefLevel_OcaActuator |
| static constexpr int | DefLevel_OcaSwitch = 1 + DefLevel_OcaActuator |
| static constexpr int | DefLevel_OcaGain = 1 + DefLevel_OcaActuator |
| static constexpr int | DefLevel_OcaMute = 1 + DefLevel_OcaActuator |
| static constexpr int | DefLevel_OcaDelay = 1 + DefLevel_OcaActuator |
| static constexpr int | DefLevel_OcaBasicActuator = 1 + DefLevel_OcaActuator |
| static constexpr int | DefLevel_OcaInt32Actuator = 1 + DefLevel_OcaBasicActuator |
| static constexpr int | DefLevel_OcaFloat32Actuator = 1 + DefLevel_OcaBasicActuator |
| static constexpr int | DefLevel_OcaStringActuator = 1 + DefLevel_OcaBasicActuator |
| static constexpr int | DefLevel_OcaSensor = 1 + DefLevel_OcaWorker |
| static constexpr int | DefLevel_OcaLevelSensor = 1 + DefLevel_OcaSensor |
| static constexpr int | DefLevel_OcaAudioLevelSensor = 1 + DefLevel_OcaLevelSensor |
| static constexpr int | DefLevel_OcaBasicSensor = 1 + DefLevel_OcaSensor |
| static constexpr int | DefLevel_OcaBooleanSensor = 1 + DefLevel_OcaBasicSensor |
| static constexpr int | DefLevel_OcaInt32Sensor = 1 + DefLevel_OcaBasicSensor |
| static constexpr int | DefLevel_OcaStringSensor = 1 + DefLevel_OcaBasicSensor |
| static constexpr int | DefLevel_dbOcaDataTransfer = 1 + DefLevel_OcaAgent |
| d&b data-transfer agent (DS100 scene control). | |
| static constexpr int | DefLevel_dbOcaSceneAgent = 1 + DefLevel_dbOcaDataTransfer |
| DS100 scene agent, extends dbOcaDataTransfer. | |
| static constexpr int | DefLevel_dbOcaPositionAgentDeprecated = 1 + DefLevel_OcaAgent |
| Deprecated d&b 3D position agent (pre-firmware DB000CD0). | |
| static constexpr int | DefLevel_dbOcaSpeakerPositionAgentDeprecated = 1 + DefLevel_dbOcaPositionAgentDeprecated |
| Deprecated d&b speaker-position agent. | |
Minimal AES70 / OCP.1 TCP client/server library built on JUCE.
NanoOcp is a lightweight implementation of the OCA (Open Control Architecture) wire protocol OCP.1 (TCP framing) from the AES70 standard. It is intentionally "nano" — no object database, no root-block management, no full AES70 compliance — just enough to send and receive OCA commands, responses, notifications, and keep-alives over a plain TCP socket.
| Concept | Description |
|---|---|
| ONo (Object Number) | 32-bit identifier that uniquely addresses one controllable parameter on an OCA device. Generated via GetONo() / GetONoTy2() from type, record, channel, and box/object numbers. |
| Command | A client-to-device message. Ocp1CommandResponseRequired carries a handle so the response can be correlated. |
| Response | Device reply to a command. The handle in the response matches the originating command handle. |
| Notification | Unsolicited device-to-client message fired when a subscribed property changes. Matched to a subscription via ONo + def-level + property-index. |
| KeepAlive | Heartbeat exchanged in both directions to detect dropped connections. |
| AddSubscription | Command that registers interest in a property: the device will send Notifications whenever that property changes. |
NanoOcp1Client runs its socket I/O on a dedicated Ocp1Connection::ConnectionThread. When callbacksOnMessageThread=false (as DeviceController uses), all three callbacks (onDataReceived, onConnectionEstablished, onConnectionLost) fire on the socket thread. When callbacksOnMessageThread=true, they are marshaled to the JUCE message thread via juce::MessageManager::callAsync.
| Header | Contents |
|---|---|
NanoOcp1.h | NanoOcp1Client, NanoOcp1Server, NanoOcp1Base |
Ocp1Connection.h | Raw TCP socket management (abstract) |
Ocp1ConnectionServer.h | Accept-loop server |
Ocp1Message.h | Message structs and factory; Ocp1CommandDefinition |
Ocp1DataTypes.h | ByteVector, Ocp1DataType, marshal/unmarshal helpers |
Variant.h | Type-erased OCA value with marshal/unmarshal |
Ocp1ObjectDefinitions.h | Generic d&b amp object definitions (AmpGeneric/DxDy/5D) |
Ocp1DS100ObjectDefinitions.h | DS100-specific object definitions (namespace DS100) |
| typedef std::uint32_t NanoOcp1::BoxAndObjNo |
Shorthand for the combined box-and-object-number part of an ONo.
An OCA Object Number (ONo) encodes type, record, channel, and a boxAndObjectNumber packed together by GetONo(). The BoxAndObjNo constants in each device namespace (e.g. DS100::Fixed_GUID = 0x0f) are the boxAndObjectNumber argument to GetONo(). Concrete dbOcaObjectDef_* structs call GetONo() in their constructors so callers never need to compose ONos manually.
Definition at line 38 of file Ocp1ObjectDefinitions.h.
| typedef std::vector< std::uint8_t > NanoOcp1::ByteVector |
Binary buffer type used throughout NanoOcp for all serialized OCP.1 data.
Every Ocp1Message::GetSerializedData(), DataFromX(), and Variant::ToParamData() returns a ByteVector. The sendData() / sendMessage() methods also take one. This is a drop-in replacement for juce::MemoryBlock that avoids the JUCE dependency in the data-layer headers.
Definition at line 36 of file Ocp1DataTypes.h.
OCA base data type codes, matching OcaBaseDataType in the AES70 specification.
Each Ocp1CommandDefinition stores a m_propertyType from this enum, which tells the marshaling helpers how to encode/decode the property value:
| Value | Name | C++ type | Byte width |
|---|---|---|---|
| 0 | NONE | — | — |
| 1 | BOOLEAN | bool | 1 |
| 2–5 | INT8/16/32/64 | int8–64_t | 1–8 |
| 6–9 | UINT8/16/32/64 | uint8–64_t | 1–8 |
| 10 | FLOAT32 | float_t | 4 |
| 11 | FLOAT64 | double_t | 8 |
| 12 | STRING | std::string | 2 (len) + N |
| 13 | BIT_STRING | — | variable |
| 14 | BLOB | ByteVector | variable |
| 15 | BLOB_FIXED_LEN | ByteVector | fixed |
| 32 | DB_POSITION | 3 × float_t | 12 — used by CdbOcaPositionAgentDeprecated |
| 128 | CUSTOM | user-defined | — |
In Ocp1DS100ObjectDefinitions.h, most DS100 spatial properties use OCP1DATATYPE_BLOB with a known fixed layout (e.g. 3 × 4-byte floats for XYZ, 6 × 4-byte floats for aiming+position). Variant::ToPosition() and Variant::ToAimingAndPosition() decode those layouts.
Values match OcaBaseDataType in the Bosch AES70 reference implementation.
Definition at line 67 of file Ocp1DataTypes.h.
| ByteVector NanoOcp1::DataFromAimingAndPosition | ( | std::float_t | hor, |
| std::float_t | vert, | ||
| std::float_t | rot, | ||
| std::float_t | x, | ||
| std::float_t | y, | ||
| std::float_t | z | ||
| ) |
Convenience helper method to convert a 3D aiming and position (six 32-bit floats) into a byte vector
| [in] | hor | Horizontal aiming (yaw). |
| [in] | vert | Vertical aiming (pitch). |
| [in] | rot | Rotational aiming (roll). |
| [in] | x | Position along x axis. |
| [in] | y | Position along y axis. |
| [in] | z | Position along z axis. |
Definition at line 367 of file Ocp1DataTypes.cpp.
Referenced by DataFromPositionAndRotation().
| ByteVector NanoOcp1::DataFromBool | ( | bool | boolValue | ) |
Convenience helper method to convert a bool into a byte vector.
| boolValue | Value to be converted. |
Definition at line 57 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromDouble | ( | std::double_t | doubleValue | ) |
Convenience helper method to convert a 64-bit double into a byte vector
| [in] | doubleValue | Value to be converted. |
Definition at line 318 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromFloat | ( | std::float_t | floatValue | ) |
Convenience helper method to convert a 32-bit float into a byte vector
| [in] | floatValue | Value to be converted. |
Definition at line 275 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromInt32 | ( | std::int32_t | value | ) |
Convenience helper method to convert a Int32 into a byte vector
| [in] | value | Value to be converted. |
Definition at line 83 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromOnoForSubscription | ( | std::uint32_t | ono, |
| bool | add = true |
||
| ) |
Convenience helper method to generate a byte vector containing the parameters necessary for an AddSubscription or RemoveSubscription command for a given object.
| [in] | ono | ONo of the object that the subscription shall be added or removed for. |
| [in] | add | True to generate a AddSubscription command. False to generate a RemoveSubscription command. |
Definition at line 413 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Ocp1CommandDefinition::AddSubscriptionCommand(), and NanoOcp1::Ocp1CommandDefinition::RemoveSubscriptionCommand().
| ByteVector NanoOcp1::DataFromPosition | ( | std::float_t | x, |
| std::float_t | y, | ||
| std::float_t | z | ||
| ) |
Convenience helper method to convert a 3D position (three 32-bit floats) into a byte vector
| [in] | x | Position along x axis. |
| [in] | y | Position along y axis. |
| [in] | z | Position along z axis. |
Definition at line 336 of file Ocp1DataTypes.cpp.
| ByteVector NanoOcp1::DataFromPositionAndRotation | ( | std::float_t | x, |
| std::float_t | y, | ||
| std::float_t | z, | ||
| std::float_t | hor, | ||
| std::float_t | vert, | ||
| std::float_t | rot | ||
| ) |
Definition at line 362 of file Ocp1DataTypes.cpp.
References DataFromAimingAndPosition().
| ByteVector NanoOcp1::DataFromString | ( | const std::string & | string | ) |
Convenience helper method to convert a std::string into a byte vector
| [in] | string | std::string to be converted. |
Definition at line 235 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromUint16 | ( | std::uint16_t | value | ) |
Convenience helper method to convert a Uint16 into a byte vector
| [in] | value | Value to be converted. |
Definition at line 142 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromUint32 | ( | std::uint32_t | value | ) |
Convenience helper method to convert a Uint32 into a byte vector
| [in] | value | Value to be converted. |
Definition at line 171 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::DS100::dbOcaObjectDef_SceneAgent::ApplyCommand(), NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromUint64 | ( | std::uint64_t | value | ) |
Convenience helper method to convert a Uint64 into a byte vector
| [in] | value | Value to be converted. |
Definition at line 204 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| ByteVector NanoOcp1::DataFromUint8 | ( | std::uint8_t | value | ) |
Convenience helper method to convert a Uint8 into a byte vector
| [in] | value | Value to be converted. |
Definition at line 113 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToByteVector(), and NanoOcp1::Variant::ToParamData().
| bool NanoOcp1::DataToBool | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a bool.
| parameterData | Vector of bytes containing the value to be converted. |
| pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 39 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToBool(), NanoOcp1::Variant::ToBoolVector(), and NanoOcp1::Variant::Variant().
| std::double_t NanoOcp1::DataToDouble | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a 64-bit double.
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 291 of file Ocp1DataTypes.cpp.
References uint8_16(), uint8_24(), uint8_32(), uint8_40(), uint8_48(), uint8_56(), and uint8_8().
Referenced by NanoOcp1::Variant::ToDouble(), and NanoOcp1::Variant::Variant().
| std::float_t NanoOcp1::DataToFloat | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a 32-bit float.
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 253 of file Ocp1DataTypes.cpp.
References uint8_16(), uint8_24(), and uint8_8().
Referenced by NanoOcp1Demo::MainComponent::OnOcp1MessageReceived(), NanoOcp1::Variant::ToAimingAndPosition(), NanoOcp1::Variant::ToFloat(), NanoOcp1::Variant::ToPosition(), and NanoOcp1::Variant::Variant().
| std::int32_t NanoOcp1::DataToInt32 | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a Int32
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 62 of file Ocp1DataTypes.cpp.
References uint8_16(), uint8_24(), and uint8_8().
Referenced by NanoOcp1::Variant::ToInt32(), and NanoOcp1::Variant::Variant().
| std::string NanoOcp1::DataToString | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a std::string
| [in] | parameterData | Vector of bytes containing the string to be converted. Note that the first two bytes contain the string's length. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 219 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1Demo::MainComponent::OnOcp1MessageReceived(), NanoOcp1::Variant::ToString(), and NanoOcp1::Variant::Variant().
| std::uint16_t NanoOcp1::DataToUint16 | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a Uint16
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 122 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Ocp1KeepAlive::GetHeartBeatSeconds(), NanoOcp1Demo::MainComponent::OnOcp1MessageReceived(), NanoOcp1::Variant::ToBoolVector(), NanoOcp1::Variant::ToStringVector(), NanoOcp1::Variant::ToUInt16(), and NanoOcp1::Variant::Variant().
| std::uint32_t NanoOcp1::DataToUint32 | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a Uint32
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 151 of file Ocp1DataTypes.cpp.
References uint8_16(), uint8_24(), and uint8_8().
Referenced by NanoOcp1::Ocp1KeepAlive::GetHeartBeatMilliseconds(), NanoOcp1Demo::MainComponent::OnOcp1MessageReceived(), NanoOcp1::Variant::ToUInt32(), and NanoOcp1::Variant::Variant().
| std::uint64_t NanoOcp1::DataToUint64 | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a Uint64
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 184 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToUInt64(), and NanoOcp1::Variant::Variant().
| std::uint8_t NanoOcp1::DataToUint8 | ( | const ByteVector & | parameterData, |
| bool * | pOk = nullptr |
||
| ) |
Convenience helper method to convert a byte vector into a Uint8
| [in] | parameterData | Vector of bytes containing the value to be converted. |
| [in] | pOk | Optional parameter to verify if the conversion was successful. |
Definition at line 96 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1::Variant::ToUInt8(), and NanoOcp1::Variant::Variant().
| std::string NanoOcp1::DataTypeToString | ( | int | dataType | ) |
Convenience method to convert an integer representing an Ocp1DataType to its string representation.
| [in] | dataType | Integer representing an Ocp1DataType. |
Definition at line 515 of file Ocp1DataTypes.cpp.
References OCP1DATATYPE_BIT_STRING, OCP1DATATYPE_BLOB, OCP1DATATYPE_BLOB_FIXED_LEN, OCP1DATATYPE_BOOLEAN, OCP1DATATYPE_CUSTOM, OCP1DATATYPE_DB_POSITION, OCP1DATATYPE_FLOAT32, OCP1DATATYPE_FLOAT64, OCP1DATATYPE_INT16, OCP1DATATYPE_INT32, OCP1DATATYPE_INT64, OCP1DATATYPE_INT8, OCP1DATATYPE_STRING, OCP1DATATYPE_UINT16, OCP1DATATYPE_UINT32, OCP1DATATYPE_UINT64, and OCP1DATATYPE_UINT8.
| std::uint32_t NanoOcp1::GetONo | ( | std::uint32_t | type, |
| std::uint32_t | record, | ||
| std::uint32_t | channel, | ||
| std::uint32_t | boxAndObjectNumber | ||
| ) |
Convenience method to generate a unique target object number. This is the method to use when addressing regular amp objects.
| [in] | type | The object type. |
| [in] | record | The object record number value. |
| [in] | channel | The object channel number value. |
| [in] | boxAndObjectNumber | The aggregate box and target number. |
Definition at line 627 of file Ocp1DataTypes.cpp.
| std::uint32_t NanoOcp1::GetONoTy2 | ( | std::uint32_t | type, |
| std::uint32_t | record, | ||
| std::uint32_t | channel, | ||
| std::uint32_t | boxNumber, | ||
| std::uint32_t | objectNumber | ||
| ) |
Convenience method to generate a unique target object number. This is the method to use when addressing newer Matrix type object (to be confirmed).
| [in] | type | The object type. |
| [in] | record | The object record number value. |
| [in] | channel | The object channel number value. |
| [in] | boxNumber | The objects box number. |
| [in] | objectNumber | The objects target number. |
Definition at line 635 of file Ocp1DataTypes.cpp.
| std::string NanoOcp1::HandleToString | ( | std::uint32_t | handle | ) |
Convenience method to convert an integer representing an OCA Response handle to its string representation. It will return std::string(handle) most of the time, except in cases OCA_INVALID_SESSIONID and OCA_LOCAL_SESSIONID.
| [in] | handle | OCA Response handle. |
Definition at line 579 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1Demo::MainComponent::MainComponent(), and NanoOcp1Demo::MainComponent::OnOcp1MessageReceived().
| std::uint16_t NanoOcp1::ReadUint16 | ( | const char * | buffer | ) |
Convenience method to read 2 bytes from a buffer.
| [in] | buffer | Pointer to the start of the data to be read. |
Definition at line 615 of file Ocp1DataTypes.cpp.
References uint8_8().
Referenced by NanoOcp1::Ocp1Header::Ocp1Header(), and NanoOcp1::Ocp1Message::UnmarshalOcp1Message().
| std::uint16_t NanoOcp1::ReadUint16 | ( | const std::uint8_t * | buffer | ) |
Convenience method to read 2 bytes from a buffer.
| [in] | buffer | Pointer to the start of the data to be read. |
Definition at line 621 of file Ocp1DataTypes.cpp.
References uint8_8().
| std::uint32_t NanoOcp1::ReadUint32 | ( | const char * | buffer | ) |
Convenience method to read 4 bytes from a buffer.
| [in] | buffer | Pointer to the start of the data to be read. |
Definition at line 599 of file Ocp1DataTypes.cpp.
References uint8_16(), uint8_24(), and uint8_8().
Referenced by NanoOcp1::Ocp1Header::Ocp1Header(), and NanoOcp1::Ocp1Message::UnmarshalOcp1Message().
| std::uint32_t NanoOcp1::ReadUint32 | ( | const std::uint8_t * | buffer | ) |
Convenience method to read 4 bytes from a buffer.
| [in] | buffer | Pointer to the start of the data to be read. |
Definition at line 607 of file Ocp1DataTypes.cpp.
References uint8_16(), uint8_24(), and uint8_8().
| std::string NanoOcp1::StatusToString | ( | std::uint8_t | status | ) |
Convenience method to convert an integer representing an OcaStatus to its string representation.
| [in] | status | Integer representing an OcaStatus. |
Definition at line 453 of file Ocp1DataTypes.cpp.
Referenced by NanoOcp1Demo::MainComponent::OnOcp1MessageReceived().
|
staticconstexpr |
Referenced by DataToDouble(), DataToFloat(), DataToInt32(), DataToUint32(), ReadUint32(), and ReadUint32().
|
staticconstexpr |
Referenced by DataToDouble(), DataToFloat(), DataToInt32(), DataToUint32(), ReadUint32(), and ReadUint32().
|
staticconstexpr |
Referenced by DataToDouble().
|
staticconstexpr |
Referenced by DataToDouble().
|
staticconstexpr |
Referenced by DataToDouble().
|
staticconstexpr |
Referenced by DataToDouble().
|
staticconstexpr |
Referenced by DataToDouble(), DataToFloat(), DataToInt32(), DataToUint32(), ReadUint16(), ReadUint16(), ReadUint32(), and ReadUint32().
|
staticconstexpr |
d&b data-transfer agent (DS100 scene control).
Definition at line 75 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Deprecated d&b 3D position agent (pre-firmware DB000CD0).
Definition at line 77 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
DS100 scene agent, extends dbOcaDataTransfer.
Definition at line 76 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Deprecated d&b speaker-position agent.
Definition at line 78 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 57 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 55 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 69 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 63 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 70 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 71 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 62 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 65 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 60 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 64 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 72 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 68 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 61 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 58 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 54 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 67 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 66 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 73 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 59 of file Ocp1ObjectDefinitions.h.
|
staticconstexpr |
Definition at line 56 of file Ocp1ObjectDefinitions.h.