Go to the documentation of this file.
9 template <
typename ControlDataStruct>
17 const ControlDataStruct& initialCommands = ControlDataStruct()) :
18 controlDataTripleBuffer{initialCommands}
27 rtRun(sensorValuesTimestamp, timeSinceLastIteration);
31 const ControlDataStruct&
79 template <
typename ControlDataStruct>
void reinitTripleBuffer(const ControlDataStruct &initial)
const ControlDataStruct & rtGetControlStruct() const
bool updateReadBuffer() const
Swaps in the hidden buffer if it contains new data.
ControlDataStruct & getWriterControlStruct()
std::lock_guard< std::recursive_mutex > LockGuardType
virtual void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration)=0
TODO make protected and use attorneys.
bool rtUpdateControlStruct()
void writeControlStruct()
MutexType controlDataMutex
armarx::core::time::DateTime Time
void reinitAllBuffers(const T &init)
void rtSwapBufferAndRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
void setControlStruct(const ControlDataStruct &newStruct)
std::recursive_mutex MutexType
const T & getReadBuffer() const
This file offers overloads of toIce() and fromIce() functions for STL container types.
NJointControllerWithTripleBuffer(const ControlDataStruct &initialCommands=ControlDataStruct())