80 template <
class SensorValueType = SensorValueRTThreadTimings>
84 static_assert(std::is_base_of<SensorValueRTThreadTimings, SensorValueType>::value,
85 "The template parameter of RTThreadTimingsSensorDeviceImpl should be derived "
86 "from SensorValueRTThreadTimings");
130#define make_markRT_X_Start_End(name) \
131 virtual void rtMarkRt##name##Start() override \
133 const IceUtil::Time now = armarx::rtNow(); \
134 value.rt##name##RoundTripTime = now - rt##name##Start; \
135 rt##name##Start = now; \
137 virtual void rtMarkRt##name##End() override \
139 value.rt##name##Duration = armarx::rtNow() - rt##name##Start; \
141 static_assert(true, "force trailing semi-colon")
150#undef make_markRT_X_Start_End
#define TYPEDEF_PTRS_SHARED(T)
#define TYPEDEF_PTRS_HANDLE(T)
make_markRT_X_Start_End(SwitchControllerSetup)
void rtMarkRtLoopPreSleep() override
IceUtil::Time rtBusSendReceiveStart
make_markRT_X_Start_End(RunJointControllers)
make_markRT_X_Start_End(ReadSensorDeviceValues)
IceUtil::Time rtRunJointControllersStart
void rtMarkRtBusSendReceiveStart() override
IceUtil::Time rtResetAllTargetsStart
IceUtil::Time rtLoopStart
RTThreadTimingsSensorDeviceImpl(const std::string &name)
IceUtil::Time rtReadSensorDeviceValuesStart
make_markRT_X_Start_End(ResetAllTargets)
IceUtil::Time rtSwitchControllerSetupStart
make_markRT_X_Start_End(RunNJointControllers)
make_markRT_X_Start_End(UpdateSensorAndControlBuffer)
IceUtil::Time rtUpdateSensorAndControlBufferStart
IceUtil::Time rtRunNJointControllersStart
void rtMarkRtLoopStart() override
void rtMarkRtBusSendReceiveEnd() override
IceUtil::Time rtHandleInvalidTargetsStart
make_markRT_X_Start_End(HandleInvalidTargets)
const SensorValueBase * getSensorValue() const override
virtual void rtMarkRtHandleInvalidTargetsEnd()=0
virtual void rtMarkRtRunJointControllersEnd()=0
virtual void rtMarkRtBusSendReceiveStart()=0
virtual void rtMarkRtBusSendReceiveEnd()=0
virtual void rtMarkRtHandleInvalidTargetsStart()=0
virtual void rtMarkRtUpdateSensorAndControlBufferEnd()=0
RTThreadTimingsSensorDevice(const std::string &name)
virtual void rtMarkRtRunNJointControllersStart()=0
const SensorValueBase * getSensorValue() const override=0
virtual void rtMarkRtLoopPreSleep()=0
virtual void rtMarkRtReadSensorDeviceValuesEnd()=0
virtual void rtMarkRtLoopStart()=0
virtual void rtMarkRtResetAllTargetsStart()=0
virtual void rtMarkRtUpdateSensorAndControlBufferStart()=0
virtual void rtMarkRtReadSensorDeviceValuesStart()=0
virtual void rtMarkRtRunNJointControllersEnd()=0
virtual void rtMarkRtRunJointControllersStart()=0
virtual void rtMarkRtSwitchControllerSetupEnd()=0
virtual void rtMarkRtSwitchControllerSetupStart()=0
virtual void rtMarkRtResetAllTargetsEnd()=0
This Module manages the ControlThread.
This class represents some part of the robot providing sensor values.
SensorDevice(const std::string &name)
Create a SensorDevice with the given name.
The SensorValueBase class.
This file offers overloads of toIce() and fromIce() functions for STL container types.