86 enum class EmergencyStopStateRequest
120 void _preFinishControlThreadInitialization();
122 void _preOnInitRobotUnit();
156 return controlThreadId;
165 void setEmergencyStopStateNoReportToTopic(EmergencyStopState state);
170 void processEmergencyStopRequest();
211 const IceUtil::Time& timeSinceLastIteration);
218 const IceUtil::Time& timeSinceLastIteration);
225 const IceUtil::Time& timeSinceLastIteration);
232 const IceUtil::Time& timeSinceLastIteration);
259 const IceUtil::Time& timeSinceLastIteration);
284 return rtIsInEmergencyStop_;
294 return rtIsInEmergencyStop_ ? EmergencyStopState::eEmergencyStopActive
295 : EmergencyStopState::eEmergencyStopInactive;
317 std::vector<JointController*>& rtGetActivatedJointControllers();
318 const std::vector<JointController*>& rtGetActivatedJointControllers()
const;
323 std::vector<NJointControllerBase*>& rtGetActivatedNJointControllers();
324 const std::vector<NJointControllerBase*>& rtGetActivatedNJointControllers()
const;
332 std::vector<std::size_t>& rtGetActivatedJointToNJointControllerAssignement();
333 const std::vector<std::size_t>& rtGetActivatedJointToNJointControllerAssignement()
const;
340 const std::vector<JointController*>& rtGetRequestedJointControllers()
const;
345 const std::vector<NJointControllerBase*>& rtGetRequestedNJointControllers()
const;
353 const std::vector<std::size_t>& rtGetRequestedJointToNJointControllerAssignement()
const;
357 void dumpRtControllerSetup(std::ostream& out,
358 const std::string& indent,
359 const std::vector<JointController*>& activeCdevs,
360 const std::vector<std::size_t>& activeJCtrls,
361 const std::vector<NJointControllerBase*>& assignement)
const;
362 std::string dumpRtState()
const;
368 std::atomic_bool rtIsInEmergencyStop_{
false};
370 std::atomic_bool emergencyStop{
false};
375 std::vector<VirtualRobot::RobotNodePtr> rtRobotNodes;
378 std::atomic<std::thread::id> controlThreadId;
381 std::size_t usPerDevUntilWarn;
383 std::size_t usPerDevUntilError;
385 bool rtSwitchControllerSetupChangedControllers{
false};
386 std::size_t numberOfInvalidTargetsInThisIteration{0};
388 std::vector<JointController*> preSwitchSetup_ActivatedJointControllers;
389 std::vector<std::size_t> preSwitchSetup_ActivatedJointToNJointControllerAssignement;
390 std::vector<NJointControllerBase*> preSwitchSetup_ActivatedNJointControllers;
392 std::vector<JointController*> postSwitchSetup_ActivatedJointControllers;
393 std::vector<std::size_t> postSwitchSetup_ActivatedJointToNJointControllerAssignement;
394 std::vector<NJointControllerBase*> postSwitchSetup_ActivatedNJointControllers;
396 std::vector<std::size_t> _activatedSynchronousNJointControllersIdx;
397 std::vector<std::size_t> _activatedAsynchronousNJointControllersIdx;
399 std::atomic<EmergencyStopStateRequest> emergencyStopStateRequest{
400 EmergencyStopStateRequest::RequestNone};
402 std::shared_ptr<DynamicsHelper> dynamicsHelpers;
404 std::size_t _maxControllerCount = 0;