DUNE: Uniform Navigational Environment
2019.02.0
|
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
void | onUpdateParameters (void) |
void | onResourceInitialization (void) |
void | consume (const IMC::Message *msg) |
void | process (const IMC::EstimatedState *msg) |
void | process (const IMC::HistoricData *msg) |
void | process (const IMC::HistoricDataQuery *msg) |
void | acousticRouting () |
void | wifiRouting () |
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 |
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 | |
DataStore | m_store |
Arguments | m_args |
IMC::EstimatedState | m_state |
std::map< std::string, int > | m_priorities |
std::map< std::pair< int, int > , IMC::HistoricData * > | m_sending |
Time::Counter< double > | m_acoustic_forward_timer |
Time::Counter< double > | m_wifi_forward_timer |
Time::Counter< double > | m_iridium_upload_timer |
int | sample_count |
Router | m_router |
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) |
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 | onResourceAcquisition (void) |
virtual void | onResourceRelease (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 |
References Transports::DataStore::Arguments::acoustic_forward_period, Transports::DataStore::Arguments::acoustic_gateway, Transports::DataStore::Arguments::acoustic_mtu, DUNE::Tasks::Parameter::description(), Transports::DataStore::Arguments::iridium_upload_period, m_acoustic_forward_timer, m_args, m_iridium_upload_timer, m_wifi_forward_timer, Transports::DataStore::Arguments::messages, DUNE::Tasks::Task::param(), Transports::DataStore::Arguments::variable_priorities, Transports::DataStore::Arguments::wifi_forward_period, and Transports::DataStore::Arguments::wifi_gateway.
|
inline |
References Transports::DataStore::Arguments::acoustic_gateway, Transports::DataStore::Arguments::acoustic_mtu, Transports::DataStore::DataStore::addData(), DUNE::Tasks::Task::inf(), m_args, m_router, m_store, Transports::DataStore::DataStore::pollSamples(), Transports::DataStore::Router::routeOverAcoustic(), and DUNE::Tasks::Task::war().
Referenced by onMain().
|
inline |
References Transports::DataStore::DataStore::addSample(), DUNE::Tasks::Task::inf(), DUNE::IMC::AddressResolver::isLocal(), Transports::DataStore::DataSample::latDegs, Transports::DataStore::DataSample::lonDegs, m_args, DUNE::Tasks::Task::m_ctx, m_priorities, m_router, m_state, m_store, Transports::DataStore::DataSample::priority, Transports::DataStore::Router::process(), process(), DUNE::Tasks::Context::resolver, Transports::DataStore::DataSample::sample, sample_count, Transports::DataStore::DataSample::serializationSize(), Transports::DataStore::DataSample::source, Transports::DataStore::DataSample::timestamp, Transports::DataStore::Arguments::variable_priorities, DUNE::Tasks::Task::war(), and Transports::DataStore::DataSample::zMeters.
|
inlinevirtual |
Implements DUNE::Tasks::Task.
References Transports::DataStore::Arguments::acoustic_forward_period, Transports::DataStore::Arguments::acoustic_gateway, acousticRouting(), Transports::DataStore::Router::forwardCommandsAcoustic(), Transports::DataStore::Router::forwardCommandsWifi(), Transports::DataStore::Arguments::iridium_upload_period, Transports::DataStore::Router::iridiumUpload(), m_acoustic_forward_timer, m_args, m_iridium_upload_timer, m_router, m_store, m_wifi_forward_timer, DUNE::Tasks::Task::stopping(), DUNE::Tasks::Task::waitForMessages(), Transports::DataStore::Arguments::wifi_forward_period, Transports::DataStore::Arguments::wifi_gateway, and wifiRouting().
|
inlinevirtual |
Called when the task is instructed to initialize resources acquired previously or whose initialization depends on run-time parameters.
Reimplemented from DUNE::Tasks::Task.
References DUNE::Tasks::Task::setEntityState().
|
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 Transports::DataStore::Arguments::acoustic_forward_period, DUNE::Tasks::Task::bind(), DUNE::Tasks::Task::debug(), Transports::DataStore::Arguments::iridium_upload_period, m_acoustic_forward_timer, m_args, m_iridium_upload_timer, m_priorities, m_wifi_forward_timer, Transports::DataStore::Arguments::messages, and Transports::DataStore::Arguments::wifi_forward_period.
|
inline |
Updates position of this platform.
References DUNE::IMC::AddressResolver::isLocal(), DUNE::Tasks::Task::m_ctx, m_state, and DUNE::Tasks::Context::resolver.
Referenced by consume().
|
inline |
Process incoming HistoricData (multi-hop forwarding)
References Transports::DataStore::DataStore::addData(), DUNE::Tasks::Task::debug(), DUNE::Tasks::Task::getEntityId(), DUNE::IMC::AddressResolver::isLocal(), DUNE::Tasks::Task::m_ctx, m_store, DUNE::IMC::AddressResolver::resolve(), DUNE::Tasks::Context::resolver, and DUNE::Tasks::Task::resolveSystemId().
|
inline |
Handle incoming HistoricDataQuery messages.
References Transports::DataStore::DataStore::addData(), DUNE::Tasks::Task::debug(), DUNE::Tasks::Task::dispatch(), DUNE::Tasks::Context::entities, DUNE::IMC::AddressResolver::isLocal(), DUNE::Tasks::Task::m_ctx, m_sending, m_store, Transports::DataStore::DataStore::pollSamples(), DUNE::IMC::AddressResolver::resolve(), DUNE::Entities::EntityDataBase::resolve(), and DUNE::Tasks::Context::resolver.
|
inline |
References Transports::DataStore::DataStore::addData(), DUNE::Tasks::Task::debug(), DUNE::Tasks::Task::inf(), m_args, m_router, m_store, Transports::DataStore::DataStore::pollSamples(), Transports::DataStore::Router::routeOverWifi(), DUNE::Tasks::Task::war(), and Transports::DataStore::Arguments::wifi_gateway.
Referenced by onMain().
Time::Counter<double> Transports::DataStore::Task::m_acoustic_forward_timer |
Timer used for forwarding data over acoustic modem.
Referenced by onMain(), onUpdateParameters(), and Task().
Arguments Transports::DataStore::Task::m_args |
task arguments
Referenced by acousticRouting(), consume(), onMain(), onUpdateParameters(), Task(), and wifiRouting().
Time::Counter<double> Transports::DataStore::Task::m_iridium_upload_timer |
Timer used for uploading data over iridium.
Referenced by onMain(), onUpdateParameters(), and Task().
std::map<std::string, int> Transports::DataStore::Task::m_priorities |
priority for each message type
Referenced by consume(), and onUpdateParameters().
Router Transports::DataStore::Task::m_router |
Router is used to forward data to other systems.
Referenced by acousticRouting(), consume(), onMain(), and wifiRouting().
std::map<std::pair<int, int>, IMC::HistoricData*> Transports::DataStore::Task::m_sending |
messages currently on the way to their destination
Referenced by process().
IMC::EstimatedState Transports::DataStore::Task::m_state |
DataStore Transports::DataStore::Task::m_store |
object used to store samples locally
Referenced by acousticRouting(), consume(), onMain(), process(), and wifiRouting().
Time::Counter<double> Transports::DataStore::Task::m_wifi_forward_timer |
Timer used for forwarding data over wifi.
Referenced by onMain(), onUpdateParameters(), and Task().
int Transports::DataStore::Task::sample_count |
Number of stored local samples.
Referenced by consume().