89 std::uint16_t propertyType,
90 std::uint16_t propertyDefLevel,
91 std::uint16_t propertyIndex,
92 std::uint8_t paramCount =
static_cast<std::uint8_t
>(0),
93 const ByteVector& parameterData = std::vector<std::uint8_t>())
177 Ocp1Header(std::uint8_t msgType, std::size_t parameterDataLength)
182 m_msgCnt(static_cast<std::uint16_t>(1))
398 std::uint16_t methodDefLevel,
399 std::uint16_t methodIndex,
400 std::uint8_t paramCount,
415 std::uint16_t methodDefLevel,
416 std::uint16_t methodIndex,
417 std::uint8_t paramCount,
419 std::uint32_t& handle)
421 paramCount, parameterData)
433 std::uint32_t& handle)
498 std::uint8_t paramCount,
574 std::uint16_t emitterPropertyDefLevel,
575 std::uint16_t emitterPropertyIndex,
576 std::uint8_t paramCount,
ByteVector GetSerializedData() override
std::uint32_t GetHandle() const
std::uint32_t m_targetOno
std::uint16_t m_methodDefLevel
void SetHandle(std::uint32_t handle)
std::uint16_t GetMethodDefLevel() const
Ocp1CommandResponseRequired(std::uint32_t targetOno, std::uint16_t methodDefLevel, std::uint16_t methodIndex, std::uint8_t paramCount, const ByteVector ¶meterData)
std::uint32_t GetTargetOno() const
std::uint16_t m_methodIndex
~Ocp1CommandResponseRequired() override=default
Ocp1CommandResponseRequired(const Ocp1CommandDefinition &def, std::uint32_t &handle)
std::uint8_t m_paramCount
std::uint16_t GetMethodIndex() const
Ocp1CommandResponseRequired(std::uint32_t targetOno, std::uint16_t methodDefLevel, std::uint16_t methodIndex, std::uint8_t paramCount, const ByteVector ¶meterData, std::uint32_t &handle)
std::uint16_t GetHeartBeatSeconds() const
~Ocp1KeepAlive() override=default
std::uint32_t GetHeartBeatMilliseconds() const
ByteVector GetSerializedData() override
Abstract base class for all OCP.1 protocol messages.
static std::uint32_t m_nextHandle
virtual ~Ocp1Message()=default
virtual ByteVector GetSerializedData()=0
ByteVector GetParameterData() const
MessageType
OCP.1 message type codes as defined in AES70.
@ CommandResponseRequired
Command that expects a Response with a matching handle.
@ Response
Device reply to a CommandResponseRequired.
@ Command
Fire-and-forget command; no response expected.
@ KeepAlive
Heartbeat for connection supervision.
@ Notification
Unsolicited property change from device to client.
Ocp1Message(std::uint8_t msgType, const ByteVector ¶meterData)
static std::unique_ptr< Ocp1Message > UnmarshalOcp1Message(const ByteVector &receivedData)
ByteVector m_parameterData
std::uint8_t GetMessageType() const
ByteVector GetSerializedData() override
~Ocp1Notification() override=default
std::uint8_t m_paramCount
Ocp1Notification(std::uint32_t emitterOno, std::uint16_t emitterPropertyDefLevel, std::uint16_t emitterPropertyIndex, std::uint8_t paramCount, const ByteVector ¶meterData)
std::uint16_t m_emitterPropertyDefLevel
std::uint8_t GetParamCount() const
std::uint32_t m_emitterOno
bool MatchesObject(const Ocp1CommandDefinition *def) const
std::uint16_t m_emitterPropertyIndex
std::uint32_t GetEmitterOno() const
~Ocp1Response() override=default
Ocp1Response(std::uint32_t handle, std::uint8_t status, std::uint8_t paramCount, const ByteVector ¶meterData)
std::uint8_t GetParamCount() const
std::uint32_t GetResponseHandle() const
ByteVector GetSerializedData() override
std::uint8_t m_paramCount
std::uint8_t GetResponseStatus() const
Type-erased OCA parameter value with built-in marshal/unmarshal support.
Minimal AES70 / OCP.1 TCP client/server library built on JUCE.
std::vector< std::uint8_t > ByteVector
Binary buffer type used throughout NanoOcp for all serialized OCP.1 data.
Ocp1DataType
OCA base data type codes, matching OcaBaseDataType in the AES70 specification.
Parameter bundle that fully describes one OCA controllable property.
std::uint32_t m_targetOno
ByteVector m_parameterData
virtual Ocp1CommandDefinition GetValueCommand() const
std::uint16_t m_propertyDefLevel
virtual Ocp1CommandDefinition * Clone() const
virtual Ocp1CommandDefinition AddSubscriptionCommand() const
virtual ~Ocp1CommandDefinition()=default
virtual Ocp1CommandDefinition RemoveSubscriptionCommand() const
std::uint16_t m_propertyType
virtual Ocp1CommandDefinition SetValueCommand(const Variant &newValue) const
Ocp1DataType GetDataType() const
std::uint8_t m_paramCount
Ocp1CommandDefinition(std::uint32_t targetOno, std::uint16_t propertyType, std::uint16_t propertyDefLevel, std::uint16_t propertyIndex, std::uint8_t paramCount=static_cast< std::uint8_t >(0), const ByteVector ¶meterData=std::vector< std::uint8_t >())
std::uint16_t m_propertyIndex