27#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
41 virtual public RobotUnitControllerManagementInterface
63 void _preOnInitRobotUnit();
65 void _preFinishRunning();
67 void _postFinishRunning();
78 NJointControllerInterfacePrx
80 const Ice::Current& = Ice::emptyCurrent)
const override;
86 StringNJointControllerPrxDictionary
98 NJointControllerStatus
100 const Ice::Current& = Ice::emptyCurrent)
const override;
109 NJointControllerStatusSeq
121 NJointControllerDescription
123 const Ice::Current& = Ice::emptyCurrent)
const override;
133 NJointControllerDescriptionSeq
149 const std::string& name,
150 const Ice::Current& = Ice::emptyCurrent)
const override;
163 const Ice::Current& = Ice::emptyCurrent)
const override;
170 NJointControllerClassDescription
172 const Ice::Current& = Ice::emptyCurrent)
const override;
178 const Ice::Current& = Ice::emptyCurrent)
const override;
213 const Ice::Current& = Ice::emptyCurrent)
override;
222 const Ice::Current& = Ice::emptyCurrent)
override;
233 const Ice::Current& = Ice::emptyCurrent)
override;
244 const Ice::Current&)
override;
252 const Ice::Current& = Ice::emptyCurrent)
override;
259 const Ice::Current& = Ice::emptyCurrent)
override;
267 const Ice::Current& = Ice::emptyCurrent)
override;
274 const Ice::Current& = Ice::emptyCurrent)
override;
283 NJointControllerInterfacePrx
285 const std::string& instanceName,
286 const NJointControllerConfigPtr& config,
287 const Ice::Current& = Ice::emptyCurrent)
override;
295 NJointControllerInterfacePrx
297 const std::string& instanceName,
299 const Ice::Current& = Ice::emptyCurrent)
override;
307 NJointControllerInterfacePrx
309 const std::string& instanceName,
310 const NJointControllerConfigPtr& config,
311 const Ice::Current& = Ice::emptyCurrent)
override;
318 const Ice::Current& = Ice::emptyCurrent)
override;
332 const NJointControllerBasePtr&
334 const std::string& instanceName,
335 const NJointControllerConfigPtr& config,
345 std::vector<armarx::NJointControllerBasePtr>
360 std::vector<std::string>
439 void removeNJointControllers(std::map<std::string, NJointControllerBasePtr>& ctrls,
440 bool blocking =
true,
441 RobotUnitListenerPrx l =
nullptr);
450 void removeNJointControllersToBeDeleted(
bool blocking =
true,
451 RobotUnitListenerPrx l =
nullptr);
457 void updateNJointControllerRequestedState(
const std::set<NJointControllerBasePtr>& request);
463 void checkNJointControllerClassName(
const std::string& className)
const;
470 std::map<std::string, NJointControllerBasePtr> nJointControllers;
472 std::map<std::string, NJointControllerBasePtr> nJointControllersToBeDeleted;
476 std::recursive_mutex controllerMutex;
This Module manages NJointControllers.
NJointControllerDescriptionWithStatusSeq getNJointControllerDescriptionsWithStatuses(const Ice::Current &=Ice::emptyCurrent) const override
Returns the status and description of all NJointControllers.
NJointControllerClassDescription getNJointControllerClassDescription(const std::string &className, const Ice::Current &=Ice::emptyCurrent) const override
getNJointControllerClassDescription
NJointControllerDescription getNJointControllerDescription(const std::string &name, const Ice::Current &=Ice::emptyCurrent) const override
Returns the description of the NJointControllerBase.
const NJointControllerBasePtr & getNJointControllerNotNull(const std::string &name) const
Returns a pointer to the NJointControllerBase.
StringNJointControllerPrxDictionary getAllNJointControllers(const Ice::Current &=Ice::emptyCurrent) const override
Returns proxies to all NJointControllers.
void activateNJointControllers(const Ice::StringSeq &names, const Ice::Current &=Ice::emptyCurrent) override
Requests activation for the given NJointControllers.
void deactivateNJointController(const std::string &name, const Ice::Current &=Ice::emptyCurrent) override
Requests deactivation for the given NJointControllerBase.
NJointControllerStatusSeq getNJointControllerStatuses(const Ice::Current &=Ice::emptyCurrent) const override
Returns the status of all NJointControllers.
NJointControllerClassDescriptionSeq getNJointControllerClassDescriptions(const Ice::Current &=Ice::emptyCurrent) const override
getNJointControllerClassDescriptions
NJointControllerDescriptionWithStatus getNJointControllerDescriptionWithStatus(const std::string &name, const Ice::Current &=Ice::emptyCurrent) const override
Returns the status and description of the NJointControllerBase.
NJointControllerInterfacePrx createOrReplaceNJointController(const std::string &className, const std::string &instanceName, const NJointControllerConfigPtr &config, const Ice::Current &=Ice::emptyCurrent) override
Deletes any NJointControllerBase with the given name and creates a new one.
Ice::StringSeq getActivatedNJointControllerNames(const Ice::Current &=Ice::emptyCurrent) const override
Returns the names of all activated NJointControllers.
void deactivateAndDeleteNJointControllers(const Ice::StringSeq &names, const Ice::Current &) override
Queues the given NJointControllers for deletion and deactivates them if necessary.
void activateNJointController(const std::string &name, const Ice::Current &=Ice::emptyCurrent) override
Requests activation for the given NJointControllerBase.
friend class ControllerManagementAttorneyForPublisher
This class allows minimal access to private members of ControllerManagement in a sane fashion for Pub...
NJointControllerDescriptionSeq getNJointControllerDescriptions(const Ice::Current &=Ice::emptyCurrent) const override
Returns the description of all NJointControllers.
NJointControllerStatus getNJointControllerStatus(const std::string &name, const Ice::Current &=Ice::emptyCurrent) const override
Returns the status of the NJointControllerBase.
Ice::StringSeq getNJointControllerNames(const Ice::Current &=Ice::emptyCurrent) const override
Returns the names of all NJointControllers.
void deactivateNJointControllers(const Ice::StringSeq &names, const Ice::Current &=Ice::emptyCurrent) override
Requests deactivation for the given NJointControllers.
std::vector< armarx::NJointControllerBasePtr > getNJointControllersNotNull(const std::vector< std::string > &names) const
Returns pointers to the NJointControllers.
static ControllerManagement & Instance()
Returns the singleton instance of this class.
std::vector< std::string > getNJointControllerNames(const std::vector< armarx::NJointControllerBasePtr > &ctrls) const
Returns the names of given NJointControllers.
void switchNJointControllerSetup(const Ice::StringSeq &newSetup, const Ice::Current &=Ice::emptyCurrent) override
Changes the set of requested NJointControllers to the given set.
Ice::StringSeq getNJointControllerClassNames(const Ice::Current &=Ice::emptyCurrent) const override
Returns the names of all available classes of NJointControllerBase.
void deactivateAndDeleteNJointController(const std::string &name, const Ice::Current &=Ice::emptyCurrent) override
Queues the given NJointControllerBase for deletion and deactivates it if necessary.
Ice::StringSeq getRequestedNJointControllerNames(const Ice::Current &=Ice::emptyCurrent) const override
Returns the names of all requested NJointControllers.
void deleteNJointController(const std::string &name, const Ice::Current &=Ice::emptyCurrent) override
Queues the given NJointControllerBase for deletion.
NJointControllerInterfacePrx getNJointController(const std::string &name, const Ice::Current &=Ice::emptyCurrent) const override
Returns a proxy to the NJointControllerBase.
NJointControllerInterfacePrx createNJointController(const std::string &className, const std::string &instanceName, const NJointControllerConfigPtr &config, const Ice::Current &=Ice::emptyCurrent) override
Cretes a NJointControllerBase.
NJointControllerInterfacePrx createNJointControllerFromVariantConfig(const std::string &className, const std::string &instanceName, const StringVariantBaseMap &variants, const Ice::Current &=Ice::emptyCurrent) override
Cretes a NJointControllerBase.
friend class ControllerManagementAttorneyForControlThreadDataBuffer
This class allows minimal access to private members of ControllerManagement in a sane fashion for Con...
void deleteNJointControllers(const Ice::StringSeq &names, const Ice::Current &=Ice::emptyCurrent) override
Queues the given NJointControllers for deletion.
static ModuleBase & Instance()
Returns the singleton instance of this class.
std::shared_ptr< class Robot > RobotPtr
std::map< std::string, VariantBasePtr > StringVariantBaseMap