DUNE: Uniform Navigational Environment
2.3.0
|
Public Member Functions | |
BasicAutopilot (const std::string &name, Tasks::Context &ctx, const uint32_t controllable_loops, const uint32_t required_loops) | |
virtual | ~BasicAutopilot (void) |
virtual void | onResourceInitialization (void) |
virtual void | reset (void) |
virtual void | onEstimatedState (const double timestep, const IMC::EstimatedState *msg)=0 |
void | consume (const IMC::EstimatedState *msg) |
void | consume (const IMC::DesiredZ *msg) |
void | consume (const IMC::DesiredPitch *msg) |
void | consume (const IMC::DesiredHeading *msg) |
void | consume (const IMC::DesiredHeadingRate *msg) |
void | consume (const IMC::ControlLoops *msg) |
void | consume (const IMC::DesiredVelocity *msg) |
void | onMain (void) |
Public Member Functions inherited from DUNE::Tasks::Task | |
Task (const std::string &name, Context &context) | |
virtual | ~Task (void) |
const char * | getName (void) const |
const char * | getSystemName (void) const |
unsigned int | getSystemId (void) const |
unsigned int | getEntityId (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 |
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) |
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) |
State | getState (void) |
bool | isCreated (void) |
bool | isStopping (void) |
bool | isRunning (void) |
bool | isStarting (void) |
bool | isDead (void) |
Protected Types | |
enum | VerticalMode { VERTICAL_MODE_NONE, VERTICAL_MODE_DEPTH, VERTICAL_MODE_ALTITUDE, VERTICAL_MODE_PITCH, VERTICAL_MODE_HEAVE, VERTICAL_MODE_SIZE } |
enum | YawMode { YAW_MODE_NONE, YAW_MODE_HEADING, YAW_MODE_HRATE, YAW_MODE_BYPASS, YAW_MODE_SIZE } |
Protected Member Functions | |
void | onDeactivation (void) |
void | onActivation (void) |
void | signalBadYaw (const char *desc=DTR("yaw control mode %d not supported")) |
void | signalBadVertical (const char *desc=DTR("vertical control mode %d not supported")) |
float | getVerticalRef (void) const |
VerticalMode | getVerticalMode (void) const |
float | getYawRef (void) const |
YawMode | getYawMode (void) const |
float | getSurgeRef (void) const |
float | getSwayRef (void) const |
float | getBottomFollowDepth (void) const |
Protected Member Functions inherited from DUNE::Tasks::Task | |
const char * | getEntityLabel (void) const |
void | setEntityLabel (const std::string &label) |
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) |
unsigned int | resolveEntity (const std::string &label) const |
std::string | resolveEntity (unsigned int id) const |
bool | stopping (void) |
bool | isActive (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 > | |
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 void | onEntityReservation (void) |
virtual void | onEntityResolution (void) |
virtual void | onReportEntityState (void) |
virtual void | onResourceAcquisition (void) |
virtual void | onResourceRelease (void) |
virtual void | onUpdateParameters (void) |
virtual void | onRequestActivation (void) |
virtual void | onRequestDeactivation (void) |
Protected Member Functions inherited from DUNE::Concurrency::Thread | |
void | startImpl (void) |
void | stopImpl (void) |
void | joinImpl (void) |
void | setPriorityImpl (Scheduler::Policy policy, unsigned priority) |
Additional Inherited Members | |
Public Types inherited from DUNE::Concurrency::Runnable | |
enum | State { StateStarting, StateRunning, StateStopping, StateDead, StateUnknown } |
Static Public Member Functions inherited from DUNE::Concurrency::Thread | |
static unsigned | native (void) |
Protected Attributes inherited from DUNE::Tasks::Task | |
Context & | m_ctx |
|
protected |
|
protected |
DUNE::Control::BasicAutopilot::BasicAutopilot | ( | const std::string & | name, |
Tasks::Context & | ctx, | ||
const uint32_t | controllable_loops, | ||
const uint32_t | required_loops | ||
) |
|
virtual |
Destructor.
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::EstimatedState * | msg | ) |
References DUNE::IMC::EstimatedState::alt, DUNE::IMC::EstimatedState::depth, DUNE::Tasks::Task::err(), DUNE::IMC::EntityState::ESTA_ERROR, DUNE::IMC::EntityState::ESTA_NORMAL, DUNE::Time::Delta::getDelta(), DUNE::Tasks::Task::isActive(), onEstimatedState(), DUNE::Time::Counter< T >::overflow(), DUNE::Tasks::Task::requestDeactivation(), DUNE::Time::Counter< T >::reset(), DUNE::Tasks::Task::setEntityState(), signalBadVertical(), signalBadYaw(), VERTICAL_MODE_ALTITUDE, VERTICAL_MODE_NONE, VERTICAL_MODE_PITCH, VERTICAL_MODE_SIZE, DUNE::Tasks::Task::war(), YAW_MODE_NONE, and YAW_MODE_SIZE.
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::DesiredZ * | msg | ) |
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::DesiredPitch * | msg | ) |
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::DesiredHeading * | msg | ) |
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::DesiredHeadingRate * | msg | ) |
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::ControlLoops * | msg | ) |
References DUNE::IMC::ControlLoops::CL_ENABLE, DUNE::Tasks::Task::debug(), DUNE::Tasks::Task::dispatch(), DUNE::IMC::ControlLoops::enable, DUNE::Tasks::Task::isActive(), DUNE::IMC::ControlLoops::mask, DUNE::Tasks::Task::requestActivation(), DUNE::Tasks::Task::requestDeactivation(), and DUNE::IMC::ControlLoops::scope_ref.
void DUNE::Control::BasicAutopilot::consume | ( | const IMC::DesiredVelocity * | msg | ) |
References DUNE::IMC::DesiredVelocity::FL_HEAVE, DUNE::IMC::DesiredVelocity::FL_SURGE, DUNE::IMC::DesiredVelocity::FL_SWAY, DUNE::IMC::DesiredVelocity::FL_YAW, DUNE::IMC::DesiredVelocity::flags, DUNE::Tasks::Task::isActive(), DUNE::IMC::DesiredVelocity::r, DUNE::IMC::DesiredVelocity::u, DUNE::IMC::DesiredVelocity::v, VERTICAL_MODE_HEAVE, DUNE::IMC::DesiredVelocity::w, and YAW_MODE_HRATE.
|
inlineprotected |
Get depth for following the bottom.
Referenced by Control::ROV::Depth::Task::depthControl(), Control::AUV::Attitude::Task::depthControl(), and Control::AUV::LMI::Task::onEstimatedState().
|
inlineprotected |
get surge reference
Referenced by Control::ROV::HorizontalPlane::Task::surgeControl().
|
inlineprotected |
get sway reference
Referenced by Control::ROV::HorizontalPlane::Task::swayControl().
|
inlineprotected |
get vertical mode
Referenced by Control::ROV::Depth::Task::depthControl(), Control::AUV::Attitude::Task::depthControl(), and Control::AUV::LMI::Task::onEstimatedState().
|
inlineprotected |
get vertical ref value
Referenced by Control::ROV::Depth::Task::depthControl(), Control::AUV::Attitude::Task::depthControl(), and Control::AUV::LMI::Task::onEstimatedState().
|
inlineprotected |
get yaw mode
Referenced by Control::ROV::HorizontalPlane::Task::headingControl(), Control::AUV::Attitude::Task::headingControl(), and Control::AUV::LMI::Task::onEstimatedState().
|
inlineprotected |
get yaw ref value
Referenced by Control::ROV::HorizontalPlane::Task::headingControl(), Control::AUV::Attitude::Task::headingControl(), and Control::AUV::LMI::Task::onEstimatedState().
|
inlineprotectedvirtual |
On activation enter active entity state Method from parent class.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Status::CODE_ACTIVE, DUNE::IMC::EntityState::ESTA_NORMAL, reset(), and DUNE::Tasks::Task::setEntityState().
|
inlineprotectedvirtual |
On deactivation leave error or active entity state Method from parent class.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Status::CODE_IDLE, DUNE::IMC::EntityState::ESTA_NORMAL, reset(), and DUNE::Tasks::Task::setEntityState().
|
pure virtual |
To be used by derived class when estimated state is received.
Referenced by consume().
|
virtual |
Implements DUNE::Tasks::Task.
References DUNE::Tasks::Task::stopping(), and DUNE::Tasks::Task::waitForMessages().
|
virtual |
Called when the task is instructed to initialize resources acquired previously or whose initialization depends on run-time parameters.
Reimplemented from DUNE::Tasks::Task.
Reimplemented in Control::AUV::Attitude::Task, Control::ROV::HorizontalPlane::Task, Control::AUV::LMI::Task, and Control::ROV::Depth::Task.
References DUNE::Tasks::Task::requestDeactivation().
|
virtual |
Reset to initial values.
Reimplemented in Control::AUV::Attitude::Task, Control::AUV::LMI::Task, Control::ROV::HorizontalPlane::Task, and Control::ROV::Depth::Task.
References DUNE::Time::Delta::clear(), DUNE::Time::Counter< T >::setTop(), VERTICAL_MODE_NONE, and YAW_MODE_NONE.
Referenced by onActivation(), and onDeactivation().
|
inlineprotected |
Signal a bad vertical mode or incompatible.
[in] | desc | description of bad vertical mode |
References DUNE::Tasks::Task::err(), DUNE::IMC::EntityState::ESTA_ERROR, DUNE::Tasks::Task::requestDeactivation(), DUNE::Tasks::Task::setEntityState(), and DUNE::Utils::String::str().
Referenced by consume(), Control::ROV::Depth::Task::depthControl(), Control::AUV::Attitude::Task::depthControl(), and Control::AUV::LMI::Task::onEstimatedState().
|
inlineprotected |
Signal a bad yaw mode or incompatible.
[in] | desc | description of bad yaw mode |
References DUNE::Tasks::Task::err(), DUNE::IMC::EntityState::ESTA_ERROR, DUNE::Tasks::Task::requestDeactivation(), DUNE::Tasks::Task::setEntityState(), and DUNE::Utils::String::str().
Referenced by consume(), Control::ROV::HorizontalPlane::Task::headingControl(), Control::AUV::Attitude::Task::headingControl(), and Control::AUV::LMI::Task::onEstimatedState().