Go to the documentation of this file.
16 #include <RobotAPI/interface/skills/SkillManagerInterface.h>
19 #include "../error/Exception.h"
71 virtual ~Skill() =
default;
91 InitResult
initSkill(
const InitInput& in);
97 ExitResult
exitSkill(
const ExitInput& in);
122 virtual bool isAvailable(
const InitInput& in)
const;
125 virtual void reset();
128 virtual void waitForDependencies();
131 virtual InitResult init(
const InitInput& in);
134 virtual MainResult main(
const MainInput& in);
137 virtual ExitResult exit(
const ExitInput& in);
140 virtual void onTimeoutReached();
141 virtual void onStopRequested();
156 manager::dti::SkillManagerInterfacePrx
manager =
nullptr;
163 std::vector<std::pair<std::function<bool()>, std::function<void()>>>
callbacks;
172 std::thread conditionCheckingThread;
TerminatedSkillStatus status
void waitForDependenciesOfSkill()
manager::dti::SkillManagerInterfacePrx manager
proxy that called the skills. Will be set from provider and is const afterwards
This file is part of ArmarX.
std::string providerName
the provider that owns this skill. Will be set from provider and is const afterwards
void notifySkillToStopASAP()
std::atomic_bool running
Use conditions this way.
std::mutex callbacksMutex
std::atomic_bool timeoutReached
bool checkWhetherSkillShouldStopASAP() const
std::vector< std::pair< std::function< bool()>, std::function< void()> > > callbacks
active conditions. First is condition (bool return func)
void installConditionWithCallback(std::function< bool()> &&f, std::function< void()> &&cb)
install a condition which is frequently checked from the conditionCheckingThread
MainResult mainOfSkill(const MainInput &in)
const SkillDescription description
The descripion of the skill, which will be available via the provider/manager.
void notifyTimeoutReached()
ExitResult exitSkill(const ExitInput &in)
InitResult initSkill(const InitInput &in)
armarx::core::time::DateTime started
running params
Represents a point in time.
std::shared_ptr< Dict > DictPtr
std::function< void(const aron::data::DictPtr &)> CallbackT
MainResult executeFullSkill(const MainInput &in)
Do init, main, exit together.
TerminatedSkillStatus status
Base Class for all Logging classes.
TerminatedSkillStatus status
bool isSkillAvailable(const InitInput &in) const
static Frequency Hertz(std::int64_t hertz)
aron::data::DictPtr params
static DateTime Invalid()
This file offers overloads of toIce() and fromIce() functions for STL container types.
SkillID getSkillId() const
The id of the skill (combination of provider and name must be unique).
static MainResult MakeAbortedResult(aron::data::DictPtr data=nullptr)
armarx::core::time::DateTime exited