22#ifndef _PLUGINS_NAO_DCM_THREAD_H_
23#define _PLUGINS_NAO_DCM_THREAD_H_
25#include <alcommon/alproxy.h>
26#include <althread/alprocesssignals.h>
27#include <aspect/blackboard.h>
28#include <aspect/blocked_timing.h>
29#include <aspect/clock.h>
30#include <aspect/configurable.h>
31#include <aspect/logging.h>
32#include <core/threading/thread.h>
33#include <core/utils/lock_vector.h>
34#include <interfaces/NaoJointPositionInterface.h>
35#include <interfaces/NaoSensorInterface.h>
36#include <plugins/nao/aspect/naoqi.h>
41class ALMemoryFastAccess;
44class NaoJointStiffnessInterface;
77 void process_messages();
78 std::vector<std::string> parse_servo_bitfield(
unsigned int servos);
80 void send_commands(
unsigned int servos,
const std::string &what,
float value,
int time_offset);
81 void send_command(
const std::string &
name,
float value,
const std::string &kind,
int time_offset);
86 HighFreqThread *highfreq_thread_;
89 AL::ALPtr<AL::DCMProxy> dcm_;
90 AL::ALPtr<AL::ALMotionProxy> almotion_;
91 AL::ALPtr<AL::ALMemoryFastAccess> memfa_;
92 bool robocup_version_;
94 AL::ALProcessSignals::ProcessSignalConnection dcm_sigconn_;
106 uint8_t robot_version_[4];
108 int usboard_version_;
110 AL::ALValue alljoint_names_;
Thread to provide DCM to Fawkes.
virtual void finalize()
Finalize the thread.
virtual void init()
Initialize the thread.
virtual ~NaoQiDCMThread()
Destructor.
NaoQiDCMThread()
Constructor.
virtual void loop()
Code to execute in the thread.
virtual void run()
Stub to see name in backtrace for easier debugging.
Thread aspect to access to BlackBoard.
Thread aspect to use blocked timing.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Thread aspect to log output.
NaoJointPositionInterface Fawkes BlackBoard Interface.
RobotType
Enumeration describing the actual version of the robot that's being used.
NaoJointStiffnessInterface Fawkes BlackBoard Interface.
Thread aspect to get access to NaoQi broker.
NaoSensorInterface Fawkes BlackBoard Interface.
UltrasonicDirection
This determines the chosen sender/receiver.
Thread class encapsulation of pthreads.
const char * name() const
Get name of thread.
Fawkes library namespace.