UmberHubManager/api/lib/BrainStem2/autoGen_SignalClass_CPP.h

133 lines
4.7 KiB
C++

/////////////////////////////////////////////////////////////////////
// //
// file: autoGen_SignalClass_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_SIGNAL_CPP_H__
#define __AUTOGEN_SIGNAL_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 {
/// SignalClass:
/// Interface to digital pins configured to produce square wave signals.
/// This class is designed to allow for square waves at various frequencies and duty cycles.
/// Control is defined by specifying the wave period as (T3Time) and the active portion of the
/// cycle as (T2Time).
/// See the entity overview section of the reference for more detail regarding the timing.
///
class aLIBEXPORT SignalClass : public EntityClass {
public:
/// Constructor.
SignalClass(void);
/// Destructor.
virtual ~SignalClass(void);
/// Initialize the Signal Class.
///
/// \param pModule The module to which this entity belongs.
/// \param index The index of the Signal entity to be addressed.
///
void init(Module* pModule, const uint8_t index);
/// Enable/Disable the signal output.
///
/// \param enable True to enable, false to disable
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr setEnable(const uint8_t enable);
/// Get the Enable/Disable of the signal.
///
/// \param enable True to enable, false to disable
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getEnable(uint8_t* enable);
/// Invert the signal output.
///
/// Normal mode is High on t0 then low at t2.
/// Inverted mode is Low at t0 on period start and high at t2.
///
/// \param invert True to invert, false for normal mode.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr setInvert(const uint8_t invert);
/// Get the invert status the signal output.
///
/// Normal mode is High on t0 then low at t2.
/// Inverted mode is Low at t0 on period start and high at t2.
///
/// \param invert True to invert, false for normal mode.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getInvert(uint8_t* invert);
/// Set the signal period or T3 in nanoseconds.
///
/// \param t3_nsec Integer not larger than unsigned 32 bit max value representing the wave
/// period in nanoseconds.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr setT3Time(const uint32_t t3_nsec);
/// Get the signal period or T3 in nanoseconds.
///
/// \param t3_nsec Integer not larger than unsigned 32 bit max value representing the wave
/// period in nanoseconds.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getT3Time(uint32_t* t3_nsec);
/// Set the signal active period or T2 in nanoseconds.
///
/// \param t2_nsec Integer not larger than unsigned 32 bit max value representing the wave
/// active period in nanoseconds.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr setT2Time(const uint32_t t2_nsec);
/// Get the signal active period or T2 in nanoseconds.
///
/// \param t2_nsec Integer not larger than unsigned 32 bit max value representing the wave
/// active period in nanoseconds.
///
/// \return Returns \ref EntityReturnValues "common entity" return values
aErr getT2Time(uint32_t* t2_nsec);
};
} // namespace BrainStem
} // namespace Acroname
#endif // defined(__cplusplus)
#endif // __AUTOGEN_SIGNAL_CPP_H__