DUNE: Uniform Navigational Environment
2016.09.0
|
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
~Task (void) | |
void | onEntityReservation (void) |
void | onUpdateParameters (void) |
void | onResourceAcquisition (void) |
void | onResourceInitialization (void) |
void | onResourceRelease (void) |
void | addRemoteAction (const std::string &action, const std::string &type) |
bool | actCommand (ActuateCommands cmd, int8_t dir) |
bool | cameraPan (PanCommands dir) |
bool | cameraTilt (TiltCommands dir) |
bool | cameraZoom (ZoomCommands dir) |
bool | cameraFocus (FocusCommands cmd) |
bool | cameraExposure (ExposureCommands cmd) |
bool | armPulse (PulseCommands dir) |
bool | armFinger (FingerCommands dir) |
bool | toggleLaser (void) |
bool | dispatchState (void) |
void | consume (const IMC::SetLedBrightness *msg) |
void | consume (const IMC::QueryLedBrightness *msg) |
void | consume (const IMC::RemoteActions *msg) |
void | consume (const IMC::RemoteActionsRequest *msg) |
void | onMain (void) |
Public Member Functions inherited from DUNE::Tasks::Task | |
Task (const std::string &name, Context &context) | |
const char * | getName (void) const |
const char * | getSystemName (void) const |
unsigned int | getSystemId (void) const |
unsigned int | getEntityId (void) const |
unsigned int | resolveEntity (const std::string &label) const |
std::string | resolveEntity (unsigned int id) const |
DebugLevel | getDebugLevel (void) const |
uint16_t | getActivationTime (void) const |
uint16_t | getDeactivationTime (void) const |
unsigned int | resolveSystemName (const std::string &name) const |
const char * | resolveSystemId (unsigned int id) const |
void | loadConfig (void) |
void | setPriority (unsigned int value) |
unsigned int | getPriority (void) const |
void | inf (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void | war (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void | err (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void | cri (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void | debug (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void | trace (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void | spew (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void void | dispatch (IMC::Message *msg, unsigned int flags=0) |
void | dispatch (IMC::Message &msg, unsigned int flags=0) |
void | dispatchReply (const IMC::Message &original, IMC::Message &msg, unsigned int flags=0) |
void | receive (const IMC::Message *msg) |
void | reserveEntities (void) |
void | resolveEntities (void) |
void | acquireResources (void) |
void | releaseResources (void) |
void | initializeResources (void) |
void | updateParameters (bool act_deact=true) |
void | writeParamsXML (std::ostream &os) const |
const char * | getEntityLabel (void) const |
void | setEntityLabel (const std::string &label) |
Public Member Functions inherited from DUNE::Tasks::AbstractTask | |
AbstractTask (void) | |
virtual | ~AbstractTask (void) |
Public Member Functions inherited from DUNE::Concurrency::Thread | |
Thread (void) | |
virtual | ~Thread (void) |
int | getProcessorUsage (void) |
Public Member Functions inherited from DUNE::Concurrency::Runnable | |
Runnable (void) | |
virtual | ~Runnable (void) |
void | start (void) |
void | stop (void) |
void | join (void) |
void | stopAndJoin (void) |
void | setPriority (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriority (void) |
State | getState (void) |
bool | isCreated (void) |
bool | isStopping (void) |
bool | isRunning (void) |
bool | isStarting (void) |
bool | isDead (void) |
Public Attributes | |
SerialPort * | m_uart |
UCTK::Interface * | m_ctl |
IMC::Current | m_current [SC_TOTAL] |
IMC::Voltage | m_voltage [SV_TOTAL] |
Counter< double > | m_wdog |
IMC::RemoteActionsRequest | m_actions |
bool | m_laser |
Time::Counter< float > | m_laser_cnt |
Arguments | m_args |
Additional Inherited Members | |
Public Types inherited from DUNE::Concurrency::Runnable | |
enum | State { StateStarting, StateRunning, StateStopping, StateDead, StateUnknown } |
Protected Member Functions inherited from DUNE::Tasks::Task | |
void | setEntityState (IMC::EntityState::StateEnum state, Status::Code code) |
void | setEntityState (IMC::EntityState::StateEnum state, const std::string &description) |
IMC::EntityState::StateEnum | getEntityState (void) const |
unsigned int | reserveEntity (const std::string &label) |
template<typename E > | |
E * | reserveEntity (const std::string &label) |
bool | stopping (void) |
bool | isActive (void) const |
bool | isActivating (void) const |
bool | isDeactivating (void) const |
void | waitForMessages (double timeout) |
void | consumeMessages (void) |
template<typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename Y , typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename T > | |
bool | paramChanged (T &var) |
void | paramActive (Parameter::Scope def_scope, Parameter::Visibility def_visibility, bool def_value=false) |
void | setParamSectionEditor (const std::string &name) |
template<typename M , typename T > | |
void | bind (T *task_obj, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list) |
template<typename T , typename M > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< std::string > &list) |
void | requestActivation (void) |
void | requestDeactivation (void) |
void | activate (void) |
void | activationFailed (const std::string &reason) |
void | deactivate (void) |
void | deactivationFailed (const std::string &reason) |
virtual bool | onWriteParamsXML (std::ostream &os) const |
virtual void | onEntityResolution (void) |
virtual void | onReportEntityState (void) |
virtual void | onRequestActivation (void) |
virtual void | onRequestDeactivation (void) |
virtual void | onActivation (void) |
virtual void | onDeactivation (void) |
virtual void | onQueryEntityParameters (const IMC::QueryEntityParameters *msg) |
virtual void | onSetEntityParameters (const IMC::SetEntityParameters *msg) |
virtual void | onPushEntityParameters (const IMC::PushEntityParameters *msg) |
virtual void | onPopEntityParameters (const IMC::PopEntityParameters *msg) |
Protected Member Functions inherited from DUNE::Concurrency::Thread | |
void | startImpl (void) |
void | stopImpl (void) |
void | joinImpl (void) |
void | setPriorityImpl (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriorityImpl (void) |
Protected Attributes inherited from DUNE::Tasks::Task | |
Context & | m_ctx |
std::vector < Entities::BasicEntity * > | m_entities |
|
inline |
Constructor.
[in] | name | task name. |
[in] | ctx | context. |
References DUNE::Tasks::Parameter::defaultValue(), Actuators::MCD4R::Arguments::laser_name, m_args, DUNE::Tasks::Task::param(), Actuators::MCD4R::Arguments::uart_dev, DUNE::Tasks::Parameter::units(), and Actuators::MCD4R::Arguments::wdog_tout.
|
inlinevirtual |
Destructor.
Reimplemented from DUNE::Tasks::Task.
|
inline |
Generic actuation command.
[in] | cmd | actuator to interface with |
[in] | dir | command to apply to actuator |
References m_ctl, and Actuators::MCD4R::PKT_ID_ACTUATE.
Referenced by armFinger(), armPulse(), cameraExposure(), cameraFocus(), cameraPan(), cameraTilt(), cameraZoom(), consume(), and toggleLaser().
|
inline |
Add a new remote action.
[in] | action | name of the action to add |
[in] | type | type of the action to add |
References m_actions.
Referenced by onResourceInitialization().
|
inline |
Command arm's finger.
[in] | dir | arm's finger direction |
References Actuators::MCD4R::ACT_ARM_FINGER, and actCommand().
|
inline |
Command arm's pulse.
[in] | dir | arm's pulse direction |
References Actuators::MCD4R::ACT_ARM_PULSE, and actCommand().
|
inline |
Command camera's exposure.
[in] | cmd | exposure command |
References Actuators::MCD4R::ACT_CAM_EXPO, and actCommand().
|
inline |
Command camera's focus.
[in] | cmd | focus command |
References Actuators::MCD4R::ACT_CAM_FOCUS, and actCommand().
|
inline |
Pan camera forward, reverse or stop.
[in] | dir | direction to which it should pan |
References Actuators::MCD4R::ACT_CAM_PAN, and actCommand().
|
inline |
Tilt camera forward reverse or stop.
[in] | dir | direction to which it should tilt |
References Actuators::MCD4R::ACT_CAM_TILT, and actCommand().
|
inline |
Zoom camera.
[in] | dir | zoom direction |
References Actuators::MCD4R::ACT_CAM_ZOOM, and actCommand().
|
inline |
References Actuators::MCD4R::Arguments::laser_name, and m_args.
|
inline |
References Actuators::MCD4R::Arguments::laser_name, and m_args.
|
inline |
|
inline |
References DUNE::Tasks::Task::dispatch(), and m_actions.
|
inline |
Dispatch raw board state.
References Actuators::MCD4R::c_current_idx, Actuators::MCD4R::c_voltage_idx, DUNE::Tasks::Task::dispatch(), m_ctl, m_current, m_voltage, Actuators::MCD4R::PKT_ID_STATE, Actuators::MCD4R::SC_TOTAL, and Actuators::MCD4R::SV_TOTAL.
Referenced by onMain().
|
inlinevirtual |
Called when the task is instructed to reserve all the entity identifiers it needs for normal execution.
See reserveEntity(). Derived classes that need to reserve entity identifiers other than that of the main entity should override this function.
Reimplemented from DUNE::Tasks::Task.
References Actuators::MCD4R::c_current_labels, Actuators::MCD4R::c_voltage_labels, DUNE::Tasks::Task::getEntityLabel(), m_current, m_voltage, DUNE::Tasks::Task::reserveEntity(), Actuators::MCD4R::SC_TOTAL, and Actuators::MCD4R::SV_TOTAL.
|
inlinevirtual |
Main loop.
Implements DUNE::Tasks::Task.
References dispatchState(), m_wdog, DUNE::Time::Counter< T >::overflow(), DUNE::Time::Counter< T >::reset(), DUNE::Tasks::Task::setEntityState(), DUNE::Tasks::Task::stopping(), and DUNE::Tasks::Task::waitForMessages().
|
inlinevirtual |
Acquire resources.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Tasks::Task::inf(), m_args, m_ctl, m_uart, Actuators::MCD4R::Arguments::uart_dev, and DUNE::Tasks::Task::war().
|
inlinevirtual |
Initialize resources.
Reimplemented from DUNE::Tasks::Task.
References Actuators::MCD4R::ACT_TOTAL, addRemoteAction(), Actuators::MCD4R::c_action_names, Actuators::MCD4R::c_action_types, m_actions, m_laser_cnt, m_wdog, DUNE::Time::Counter< T >::reset(), and DUNE::Tasks::Task::setEntityState().
|
inlinevirtual |
|
inlinevirtual |
Update internal state with new parameter values.
Reimplemented from DUNE::Tasks::Task.
References m_args, m_wdog, DUNE::Time::Counter< T >::setTop(), and Actuators::MCD4R::Arguments::wdog_tout.
|
inline |
Toggle laser value.
References Actuators::MCD4R::ACT_LASER, actCommand(), m_laser, and m_laser_cnt.
Referenced by consume().
IMC::RemoteActionsRequest Actuators::MCD4R::Task::m_actions |
Set of remote actions.
Referenced by addRemoteAction(), consume(), and onResourceInitialization().
Arguments Actuators::MCD4R::Task::m_args |
Task arguments.
Referenced by consume(), onResourceAcquisition(), onUpdateParameters(), and Task().
UCTK::Interface* Actuators::MCD4R::Task::m_ctl |
Control Interface.
Referenced by actCommand(), dispatchState(), onResourceAcquisition(), and onResourceRelease().
IMC::Current Actuators::MCD4R::Task::m_current[SC_TOTAL] |
Current.
Referenced by dispatchState(), and onEntityReservation().
bool Actuators::MCD4R::Task::m_laser |
Laser state (assume off at boot)
Referenced by toggleLaser().
Time::Counter<float> Actuators::MCD4R::Task::m_laser_cnt |
Laser state timer.
Referenced by onResourceInitialization(), and toggleLaser().
SerialPort* Actuators::MCD4R::Task::m_uart |
Control UART.
Referenced by onResourceAcquisition(), and onResourceRelease().
IMC::Voltage Actuators::MCD4R::Task::m_voltage[SV_TOTAL] |
Voltage.
Referenced by dispatchState(), and onEntityReservation().
Counter<double> Actuators::MCD4R::Task::m_wdog |
Watchdog.
Referenced by onMain(), onResourceInitialization(), and onUpdateParameters().