UmberHubManager/api/lib/BrainStem2/autoGen_HDBaseTClass_CPP.h

166 lines
6.1 KiB
C++

/////////////////////////////////////////////////////////////////////
// //
// file: autoGen_HDBaseTClass_CPP.h //
// //
/////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2026 Acroname Inc. - All Rights Reserved //
// //
// This file is part of the BrainStem release. See the license.txt //
// file included with this package or go to //
// https://acroname.com/software/brainstem-development-kit //
// for full license details. //
/////////////////////////////////////////////////////////////////////
#ifndef __AUTOGEN_HDBASET_CPP_H__
#define __AUTOGEN_HDBASET_CPP_H__
#include "BrainStem-core.h"
#ifdef __GNUC__
#define DEPRECATED(...) __attribute__((deprecated(__VA_ARGS__)))
#elif defined(_MSC_VER)
#define DEPRECATED(...) __declspec(deprecated(__VA_ARGS__))
#else
#define DEPRECATED(...)
#pragma message("DEPRECATED is not defined for this compiler")
#endif
#if defined(__cplusplus)
namespace Acroname {
namespace BrainStem {
/// HDBaseTClass:
/// This entity is only available on certain modules, and provides information on HDBaseT
/// extenders.
///
class aLIBEXPORT HDBaseTClass : public EntityClass {
public:
/// Constructor.
HDBaseTClass(void);
/// Destructor.
virtual ~HDBaseTClass(void);
/// Initialize the HDBaseT Class.
///
/// \param pModule The module to which this entity belongs.
/// \param index The index of the HDBaseT entity to be addressed.
///
void init(Module* pModule, const uint8_t index);
/// Gets the serial number of the HDBaseT device (6 bytes)
///
/// \param buffer pointer to the start of a c style buffer to be filled
/// \param bufferLength Length of the buffer to be filed
/// \param unloadedLength Length that was actually received and filled.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getSerialNumber(uint8_t* buffer, const size_t bufferLength, size_t* unloadedLength);
/// Gets the firmware version of the HDBaseT device
///
/// \param firmwareVersion A bit packet representation of the firmware version
/// Major: Bits 24-31; Minor: Bits 16-23; Patch: Bits 8-15; Build: Bits 0-7
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getFirmwareVersion(uint32_t* firmwareVersion);
/// Gets the current state of the HDBaseT link
///
/// \param state Bit packeted representation of the state.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getState(uint32_t* state);
/// Gets the perceived cable length
///
/// \param cableLength Cable length in micro-meters
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getCableLength(uint32_t* cableLength);
/// Gets the Mean Squared Error (MSE) for channel A
///
/// \param mseA The current MSE for channel A in micro-dB
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getMSEA(int32_t* mseA);
/// Gets the Mean Squared Error (MSE) for channel B
///
/// \param mseB The current MSE for channel B in micro-dB
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getMSEB(int32_t* mseB);
/// Gets the number of successful messages between retransmission
///
/// \param retransmissionRate Instantaneous number of successful messages between
/// retransmission.
/// To be interpreted as: 1 / retransmissionRate for rate interpretation.
/// If the value is 0, there have been no retransmissions, otherwise higher is better..
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getRetransmissionRate(uint32_t* retransmissionRate);
/// Gets the current link utilization
///
/// \param linkUtilization Utilization in milli-percent
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getLinkUtilization(uint32_t* linkUtilization);
/// Gets the current encoding state.
///
/// \param encodingState Signal modulation encoding type.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getEncodingState(uint8_t* encodingState);
/// Gets the USB2 tree at the HDBaseT device.
///
/// \param buffer pointer to the start of a c style buffer to be filled
/// \param bufferLength Length of the buffer to be filed
/// \param unloadedLength Length that was actually received and filled.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getUSB2DeviceTree(uint8_t* buffer, const size_t bufferLength, size_t* unloadedLength);
/// Gets the USB3 tree at the HDBaseT device.
///
/// \param buffer pointer to the start of a c style buffer to be filled
/// \param bufferLength Length of the buffer to be filed
/// \param unloadedLength Length that was actually received and filled.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getUSB3DeviceTree(uint8_t* buffer, const size_t bufferLength, size_t* unloadedLength);
/// Gets the current link role
/// In the case of "Auto" the getState API will provide the current role.
///
/// \param role Link role
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getLinkRole(uint8_t* role);
/// Sets the active link role
///
/// \param role The role to be set.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr setLinkRole(const uint8_t role);
};
} // namespace BrainStem
} // namespace Acroname
#endif // defined(__cplusplus)
#endif // __AUTOGEN_HDBASET_CPP_H__