Fawkes API
Fawkes Development Version
|
24 #include <aspect/blocked_timing.h>
25 #include <core/exception.h>
26 #include <core/threading/thread.h>
55 blocked_timing_hook_to_start_syncpoint(wakeup_hook),
56 blocked_timing_hook_to_end_syncpoint(wakeup_hook))
59 wakeup_hook_ = wakeup_hook;
66 delete loop_listener_;
119 default:
throw Exception(
"Unknown blocked timing wakeup hook");
123 const std::map<const BlockedTimingAspect::WakeupHook, const std::string>
125 {WAKEUP_HOOK_SENSOR_ACQUIRE,
"/sensors/acquire"},
126 {WAKEUP_HOOK_SENSOR_PREPARE,
"/sensors/prepare"},
127 {WAKEUP_HOOK_SENSOR_PROCESS,
"/sensors/process"},
128 {WAKEUP_HOOK_WORLDSTATE,
"/worldstate"},
129 {WAKEUP_HOOK_THINK,
"/agent"},
130 {WAKEUP_HOOK_SKILL,
"/skill"},
131 {WAKEUP_HOOK_ACT,
"/act/main"},
132 {WAKEUP_HOOK_ACT_EXEC,
"/act/exec"},
133 {WAKEUP_HOOK_POST_LOOP,
"/postloop"}};
145 }
catch (
const std::out_of_range &e) {
146 throw Exception(
"Unknown blocked timing wakeup hook. Error: %s", e.what());
160 }
catch (
const std::out_of_range &e) {
161 throw Exception(
"Unknown blocked timing wakeup hook. Error: %s", e.what());
@ WAKEUP_HOOK_WORLDSTATE
world state thread
void add_aspect(const char *name)
Add an aspect to a thread.
void init_BlockedTimingAspect(Thread *thread)
Init BlockedTiming aspect.
static std::string blocked_timing_hook_to_start_syncpoint(WakeupHook hook)
Get the syncpoint identifier corresponding to the start of a wakeup hook.
@ WAKEUP_HOOK_SENSOR_PREPARE
sensor data preparation thread, convert acquired data to usable format
void finalize_BlockedTimingAspect(Thread *thread)
Finalize BlockedTiming aspect.
void wakeup()
Wake up thread.
static const std::map< const WakeupHook, const std::string > hook_to_syncpoint
Translation from WakeupHooks to SyncPoints.
@ WAKEUP_HOOK_THINK
think thread (agent)
void add_loop_listener(ThreadLoopListener *loop_listener)
Add loop listener.
@ WAKEUP_HOOK_SENSOR_PROCESS
sensor data processing thread
@ WAKEUP_HOOK_ACT_EXEC
act execution thread
Fawkes library namespace.
Loop Listener of the BlockedTimingAspect.
@ WAKEUP_HOOK_PRE_LOOP
before each loop
@ WAKEUP_HOOK_ACT
act thread (motor module etc.)
WakeupHook blockedTimingAspectHook() const
Get the wakeup hook.
WakeupHook
Type to define at which hook the thread is woken up.
void post_loop(Thread *thread)
The post loop function of the BlockedTimingAspect This function is called right after the loop of the...
BlockedTimingAspect(WakeupHook wakeup_hook)
Constructor.
static std::string blocked_timing_hook_to_end_syncpoint(WakeupHook hook)
Get the syncpoint identifier corresponding to the end of a wakeup hook.
Thread class encapsulation of pthreads.
static const char * blocked_timing_hook_to_string(WakeupHook hook)
Get string for wakeup hook.
@ WAKEUP_HOOK_POST_LOOP
run after loop
@ WAKEUP_HOOK_SKILL
skill thread (skill module)
Thread aspect to acces to SyncPoints Give this aspect to your thread to manage SyncPoints,...
void remove_loop_listener(ThreadLoopListener *loop_listener)
Remove loop listener.
@ WAKEUP_HOOK_SENSOR_ACQUIRE
sensor acquisition thread, acquire data from sensor
virtual ~BlockedTimingAspect()
Virtual empty destructor.
Base class for exceptions in Fawkes.