![]() |
DUNE: Uniform Navigational Environment
2019.02.0
|
Public Types | |
| typedef void(Task::* | PktHandler )(const mavlink_message_t *msg) |
| typedef std::map< int, PktHandler > | PktHandlerMap |
Public Types inherited from DUNE::Concurrency::Runnable | |
| enum | State { StateStarting, StateRunning, StateStopping, StateDead, StateUnknown } |
Public Member Functions | |
| Task (const std::string &name, Tasks::Context &ctx) | |
| void | onResourceAcquisition (void) |
| void | openConnection (void) |
| void | onResourceRelease (void) |
| void | onUpdateParameters (void) |
| void | consume (const IMC::AutopilotMode *msg) |
| void | clearMission (void) |
| void | sendCommandPacket (uint16_t cmd, float arg1=0, float arg2=0, float arg3=0, float arg4=0, float arg5=0, float arg6=0, float arg7=0) |
| void | consume (const IMC::DevCalibrationControl *msg) |
| void | consume (const IMC::ControlLoops *cloops) |
| void | consume (const IMC::PlanControl *msg) |
| void | consume (const IMC::Loiter *msg) |
| void | consume (const IMC::VehicleState *msg) |
| void | consume (const IMC::Announce *msg) |
| void | consume (const IMC::Takeoff *tkoff) |
| void | consume (const IMC::Land *land) |
| void | consume (const IMC::DesiredPath *path) |
| void | onMain (void) |
| void | handleArdupilotData (void) |
| void | checkParseState (mavlink_status_t &status) |
| bool | poll (double timeout) |
| int | sendData (uint8_t *bfr, int size) |
| int | receiveData (uint8_t *buf, size_t blen) |
| void | handleAttitudePacket (const mavlink_message_t *msg) |
| void | handleImuRaw (const mavlink_message_t *msg) |
| void | handlePositionPacket (const mavlink_message_t *msg) |
| void | handleHWStatusPacket (const mavlink_message_t *msg) |
| void | handleSystemStatusPacket (const mavlink_message_t *msg) |
| void | handleScaledPressurePacket (const mavlink_message_t *msg) |
| void | handleWindPacket (const mavlink_message_t *msg) |
| void | handleStatusTextPacket (const mavlink_message_t *msg) |
| void | handleHeartbeatPacket (const mavlink_message_t *msg) |
| void | handleHUDPacket (const mavlink_message_t *msg) |
| void | handleRawGPSPacket (const mavlink_message_t *msg) |
| void | handleSystemTimePacket (const mavlink_message_t *msg) |
| void | handleExtendedStatePacket (const mavlink_message_t *msg) |
| void | handleMissionAckPacket (const mavlink_message_t *msg) |
| void | handleMissionItemReachedPacket (const mavlink_message_t *msg) |
| void | handleNavControllerPacket (const mavlink_message_t *msg) |
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 |
| 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 | |
| Arguments | m_args |
| PktHandlerMap | m_mlh |
| bool | m_mission |
| float | m_hae_offset |
| bool | m_offset |
| int | m_duration |
| bool | m_maneuver |
| Network::TCPSocket * | m_TCP_sock |
| Network::UDPSocket * | m_UDP_sock |
| uint8_t | m_sysid |
| mavlink_message_t | m_msg |
| uint8_t | m_buf [512] |
| VTOL_State | m_vtol_state |
| Time::Counter< float > | m_timer |
| bool | m_error_missing |
| double | m_last_pkt_time |
| double | m_last_wp |
| IMC::GpsFix | m_fix |
| IMC::EstimatedState | m_estate |
| IMC::DesiredPath | m_dpath |
| IMC::PathControlState | m_pcs |
| IMC::AutopilotMode | m_mode |
| IMC::TrueSpeed | m_groundspeed |
| IMC::ControlLoops | m_cloops |
Additional Inherited Members | |
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) |
| Entities::BasicEntity * | getLocalEntity (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 | onEntityReservation (void) |
| virtual void | onEntityResolution (void) |
| virtual void | onReportEntityState (void) |
| virtual void | onResourceInitialization (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 |
| typedef void(Task::* Control::UAV::PX4::Task::PktHandler)(const mavlink_message_t *msg) |
Type definition for PX4 packet handler.
| typedef std::map<int, PktHandler> Control::UAV::PX4::Task::PktHandlerMap |
|
inline |
Constructor.
| [in] | name | task name. |
| [in] | ctx | context. |
References Control::UAV::PX4::Arguments::basestation, Control::UAV::PX4::Arguments::comm_timeout, DUNE::Tasks::Parameter::defaultValue(), handleAttitudePacket(), handleExtendedStatePacket(), handleHeartbeatPacket(), handleHUDPacket(), handleHWStatusPacket(), handleImuRaw(), handleMissionAckPacket(), handleMissionItemReachedPacket(), handleNavControllerPacket(), handlePositionPacket(), handleRawGPSPacket(), handleScaledPressurePacket(), handleStatusTextPacket(), handleSystemStatusPacket(), handleSystemTimePacket(), handleWindPacket(), Control::UAV::PX4::Arguments::heartbeat, Control::UAV::PX4::Arguments::home_update, Control::UAV::PX4::Arguments::ip, m_args, m_estate, m_last_pkt_time, m_mlh, Control::UAV::PX4::Arguments::mavlink_phototrigger, DUNE::Tasks::Parameter::maximumValue(), DUNE::Tasks::Parameter::minimumValue(), Control::UAV::PX4::Arguments::moving_home, DUNE::Tasks::Task::param(), DUNE::Tasks::Parameter::scope(), Control::UAV::PX4::Arguments::TCP_addr, Control::UAV::PX4::Arguments::tcp_or_udp, Control::UAV::PX4::Arguments::TCP_port, Control::UAV::PX4::Arguments::threshold_fw, Control::UAV::PX4::Arguments::threshold_mc, Control::UAV::PX4::Arguments::transition_fw, Control::UAV::PX4::Arguments::transition_mc, Control::UAV::PX4::Arguments::UDP_addr, Control::UAV::PX4::Arguments::UDP_listen_port, Control::UAV::PX4::Arguments::UDP_port, DUNE::Tasks::Parameter::units(), and DUNE::Tasks::Parameter::visibility().
|
inline |
References DUNE::Tasks::Task::spew().
Referenced by handleArdupilotData().
|
inline |
References m_buf, m_msg, m_sysid, and sendData().
Referenced by consume(), handleMissionItemReachedPacket(), and openConnection().
|
inline |
References sendCommandPacket().
|
inline |
References sendCommandPacket().
|
inline |
|
inline |
References m_mission, and DUNE::Tasks::Task::spew().
|
inline |
References m_duration.
|
inline |
References m_maneuver.
|
inline |
|
inline |
|
inline |
|
inline |
Message for AUTO(MISSION) control (using PX4's controllers)
References DUNE::Tasks::Task::dispatch(), DUNE::Tasks::Task::inf(), m_args, m_dpath, m_duration, m_estate, m_hae_offset, m_last_wp, m_mission, m_mode, m_pcs, m_sysid, m_vtol_state, Control::UAV::PX4::MAV_VTOL_STATE_FW, Control::UAV::PX4::MAV_VTOL_STATE_MC, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_AUTO, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_MISSION, sendCommandPacket(), sendData(), Control::UAV::PX4::Arguments::transition_fw, Control::UAV::PX4::Arguments::transition_mc, and DUNE::Tasks::Task::war().
|
inline |
References checkParseState(), Control::UAV::PX4::Arguments::comm_timeout, DUNE::Tasks::Task::debug(), m_args, m_buf, m_error_missing, m_last_pkt_time, m_mlh, m_msg, m_sysid, poll(), receiveData(), DUNE::Tasks::Task::setEntityState(), and DUNE::Tasks::Task::spew().
Referenced by onMain().
|
inline |
References DUNE::Tasks::Task::dispatch(), m_estate, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), m_vtol_state, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), Control::UAV::PX4::Arguments::heartbeat, m_args, m_buf, m_cloops, m_dpath, m_mode, m_msg, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_ACRO, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_ALTCTL, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_AUTO, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_MANUAL, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_OFFBOARD, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_POSCTL, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_RATTITUDE, Control::UAV::PX4::PX4_CUSTOM_MAIN_MODE_STABILIZED, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_FOLLOW_TARGET, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_LAND, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_LOITER, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_MISSION, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_RTL, Control::UAV::PX4::PX4_CUSTOM_SUB_MODE_AUTO_TAKEOFF, DUNE::Tasks::Task::receive(), sendData(), DUNE::Tasks::Task::spew(), DUNE::Tasks::Task::trace(), and DUNE::Tasks::Task::war().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), m_groundspeed, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::debug(), m_last_wp, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
|
inline |
References DUNE::Tasks::Task::dispatch(), m_args, m_dpath, m_estate, m_groundspeed, m_last_wp, m_mission, m_mode, m_pcs, m_vtol_state, Control::UAV::PX4::MAV_VTOL_STATE_FW, DUNE::Tasks::Task::receive(), DUNE::Tasks::Task::spew(), Control::UAV::PX4::Arguments::threshold_fw, Control::UAV::PX4::Arguments::threshold_mc, and DUNE::Tasks::Task::trace().
Referenced by Task().
|
inline |
References DUNE::Tasks::Context::dir_cfg, DUNE::Tasks::Task::dispatch(), DUNE::Tasks::Task::m_ctx, m_estate, m_fix, m_hae_offset, m_offset, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References m_fix, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), DUNE::Tasks::Task::inf(), and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), m_fix, and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inline |
References DUNE::Tasks::Task::dispatch(), and DUNE::Tasks::Task::spew().
Referenced by Task().
|
inlinevirtual |
Main loop.
Implements DUNE::Tasks::Task.
References DUNE::Tasks::Task::consumeMessages(), handleArdupilotData(), m_error_missing, m_TCP_sock, m_UDP_sock, openConnection(), DUNE::Tasks::Task::setEntityState(), and DUNE::Tasks::Task::stopping().
|
inlinevirtual |
Acquire resources.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Tasks::Task::dispatch(), Control::UAV::PX4::Arguments::ip, m_args, openConnection(), and Control::UAV::PX4::Arguments::TCP_port.
|
inlinevirtual |
|
inlinevirtual |
Called when the task is instructed to update its run-time parameters.
Derived classes that need to compute auxiliary values based on run-time parameters should override this function.
Reimplemented from DUNE::Tasks::Task.
References Control::UAV::PX4::Arguments::home_update, DUNE::Tasks::Task::inf(), m_args, m_buf, m_msg, m_sysid, m_timer, Control::UAV::PX4::Arguments::mavlink_phototrigger, Control::UAV::PX4::Arguments::moving_home, DUNE::Tasks::Task::paramChanged(), and sendData().
|
inline |
References clearMission(), DUNE::Tasks::Task::inf(), m_args, m_TCP_sock, m_UDP_sock, DUNE::Tasks::Task::setEntityState(), Control::UAV::PX4::Arguments::TCP_addr, Control::UAV::PX4::Arguments::tcp_or_udp, Control::UAV::PX4::Arguments::TCP_port, Control::UAV::PX4::Arguments::UDP_listen_port, and DUNE::Tasks::Task::war().
Referenced by onMain(), and onResourceAcquisition().
|
inline |
References m_TCP_sock, and m_UDP_sock.
Referenced by handleArdupilotData().
|
inline |
References DUNE::Tasks::Task::err(), m_args, m_TCP_sock, m_UDP_sock, Control::UAV::PX4::Arguments::TCP_addr, Control::UAV::PX4::Arguments::tcp_or_udp, Control::UAV::PX4::Arguments::TCP_port, Control::UAV::PX4::Arguments::UDP_addr, Control::UAV::PX4::Arguments::UDP_listen_port, and DUNE::Tasks::Task::war().
Referenced by handleArdupilotData().
|
inline |
References m_sysid, sendData(), and DUNE::Tasks::Task::trace().
Referenced by consume(), and handleMissionItemReachedPacket().
|
inline |
References m_args, m_TCP_sock, m_UDP_sock, DUNE::Tasks::Task::trace(), Control::UAV::PX4::Arguments::UDP_addr, and Control::UAV::PX4::Arguments::UDP_port.
Referenced by clearMission(), consume(), handleHeartbeatPacket(), onUpdateParameters(), and sendCommandPacket().
| Arguments Control::UAV::PX4::Task::m_args |
Task arguments.
Referenced by consume(), handleArdupilotData(), handleHeartbeatPacket(), handleNavControllerPacket(), onResourceAcquisition(), onUpdateParameters(), openConnection(), receiveData(), sendData(), and Task().
| uint8_t Control::UAV::PX4::Task::m_buf[512] |
Referenced by clearMission(), handleArdupilotData(), handleHeartbeatPacket(), and onUpdateParameters().
| IMC::ControlLoops Control::UAV::PX4::Task::m_cloops |
ControlLoops message.
Referenced by consume(), and handleHeartbeatPacket().
| IMC::DesiredPath Control::UAV::PX4::Task::m_dpath |
DesiredPath message.
Referenced by consume(), handleHeartbeatPacket(), handleMissionItemReachedPacket(), and handleNavControllerPacket().
| int Control::UAV::PX4::Task::m_duration |
Loiter maneuver duration.
Referenced by consume().
| bool Control::UAV::PX4::Task::m_error_missing |
Mavlink Timeouts.
Referenced by handleArdupilotData(), and onMain().
| IMC::EstimatedState Control::UAV::PX4::Task::m_estate |
Estimated state message.
Referenced by consume(), handleAttitudePacket(), handleNavControllerPacket(), handlePositionPacket(), and Task().
| IMC::GpsFix Control::UAV::PX4::Task::m_fix |
GPS Fix message.
Referenced by handlePositionPacket(), handleRawGPSPacket(), and handleSystemTimePacket().
| IMC::TrueSpeed Control::UAV::PX4::Task::m_groundspeed |
TrueSpeed message.
Referenced by handleHUDPacket(), and handleNavControllerPacket().
| float Control::UAV::PX4::Task::m_hae_offset |
Height offset between MSL and WGS84.
Referenced by consume(), and handlePositionPacket().
| double Control::UAV::PX4::Task::m_last_pkt_time |
Referenced by handleArdupilotData(), and Task().
| double Control::UAV::PX4::Task::m_last_wp |
Referenced by consume(), handleMissionAckPacket(), and handleNavControllerPacket().
| bool Control::UAV::PX4::Task::m_maneuver |
Vehicle State is "Maneuver".
Referenced by consume().
| bool Control::UAV::PX4::Task::m_mission |
Flag of mission mode.
Referenced by consume(), handleMissionItemReachedPacket(), and handleNavControllerPacket().
| PktHandlerMap Control::UAV::PX4::Task::m_mlh |
PX4 packet handling.
Referenced by handleArdupilotData(), and Task().
| IMC::AutopilotMode Control::UAV::PX4::Task::m_mode |
AutopilotMode message.
Referenced by consume(), handleHeartbeatPacket(), and handleNavControllerPacket().
| mavlink_message_t Control::UAV::PX4::Task::m_msg |
Parser Variables.
Referenced by clearMission(), handleArdupilotData(), handleHeartbeatPacket(), and onUpdateParameters().
| bool Control::UAV::PX4::Task::m_offset |
Flag to signal if MSL-WGS84 offset has already been calculated.
Referenced by handlePositionPacket().
| IMC::PathControlState Control::UAV::PX4::Task::m_pcs |
PathControlState message.
Referenced by consume(), and handleNavControllerPacket().
| uint8_t Control::UAV::PX4::Task::m_sysid |
System ID.
Referenced by clearMission(), consume(), handleArdupilotData(), onUpdateParameters(), and sendCommandPacket().
| Network::TCPSocket* Control::UAV::PX4::Task::m_TCP_sock |
TCP socket.
Referenced by onMain(), onResourceRelease(), openConnection(), poll(), receiveData(), and sendData().
| Time::Counter<float> Control::UAV::PX4::Task::m_timer |
Moving Home timer.
Referenced by consume(), and onUpdateParameters().
| Network::UDPSocket* Control::UAV::PX4::Task::m_UDP_sock |
UDP socket.
Referenced by onMain(), onResourceRelease(), openConnection(), poll(), receiveData(), and sendData().
| VTOL_State Control::UAV::PX4::Task::m_vtol_state |
VTOL State.
Referenced by consume(), handleExtendedStatePacket(), and handleNavControllerPacket().
