![]() |
DUNE: Uniform Navigational Environment
2024.09.0
|
DUNE::Daemon, on dune startup, is responsible for retrieving IMC addresses and user-defined profiles, and loading saved configuration parameters.
After this steps DUNE::Daemon starts DUNE::Tasks::Manager which will then start all other dune's tasks. Finally, DUNE::Daemon is reponsible for dispatching the system's heartbeat, cpu usage, query entity state and query power channel state, until DUNE is closed.
Public Member Functions | |
| Daemon (Tasks::Context &ctx, const std::string &profiles) | |
| ~Daemon (void) | |
| bool | callReboot (void) |
| void | onResourceInitialization (void) |
| void | consume (const DUNE::IMC::RestartSystem *msg) |
| void | consume (const DUNE::IMC::EntityList *msg) |
| void | consume (const DUNE::IMC::EntityParameters *msg) |
| void | consume (const DUNE::IMC::SaveEntityParameters *msg) |
| void | onMain (void) |
| void | writeParamsXML (std::ostream &os) const |
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) |
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 | bind (unsigned int message_id, AbstractConsumer *consumer) |
| 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 | onUpdateParameters (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 |
| DUNE::Daemon::Daemon | ( | Tasks::Context & | ctx, |
| const std::string & | profiles | ||
| ) |
References DUNE::Tasks::Profiles::add(), DUNE::FileSystem::Path::c_str(), DUNE::Tasks::Context::config, DUNE::FileSystem::Path::create(), DUNE::Tasks::Context::dir_app, DUNE::Tasks::Context::dir_cfg, DUNE::Tasks::Context::dir_db, DUNE::Tasks::Context::dir_lib, DUNE::Tasks::Context::dir_log, DUNE::Tasks::Context::dir_www, DUNE::Tasks::Task::err(), DUNE::Parsers::Config::get(), DUNE::Tasks::Factory::getRegisteredCount(), DUNE::IMC::AddressResolver::id(), DUNE::Tasks::Task::inf(), DUNE::IMC::AddressResolver::insert(), DUNE::IMC::AddressResolver::invalid(), DUNE::Tasks::Task::m_ctx, DUNE::Tasks::Manager, DUNE::Tasks::Context::mbus, DUNE::IMC::AddressResolver::name(), DUNE::Parsers::Config::options(), DUNE::Parsers::Config::parseFile(), DUNE::IMC::Bus::pause(), DUNE::Tasks::Context::profiles, DUNE::Tasks::Task::reserveEntities(), DUNE::Tasks::Context::resolver, DUNE::Tasks::Task::resolveSystemName(), DUNE::Tasks::Profiles::select(), DUNE::Tasks::Task::setEntityLabel(), and DUNE::FileSystem::Path::storageCapacity().
| DUNE::Daemon::~Daemon | ( | void | ) |
| bool DUNE::Daemon::callReboot | ( | void | ) |
| void DUNE::Daemon::consume | ( | const DUNE::IMC::RestartSystem * | msg | ) |
| void DUNE::Daemon::consume | ( | const DUNE::IMC::EntityList * | msg | ) |
| void DUNE::Daemon::consume | ( | const DUNE::IMC::EntityParameters * | msg | ) |
References DUNE::Tasks::Context::entities, DUNE::Parsers::Config::get(), DUNE::IMC::Message::getDestination(), DUNE::IMC::Message::getDestinationEntity(), DUNE::Tasks::Task::getEntityId(), DUNE::Tasks::Task::getSystemId(), DUNE::Tasks::Task::m_ctx, DUNE::IMC::EntityParameters::name, DUNE::Tasks::Context::original_cfg, DUNE::IMC::EntityParameters::params, DUNE::Entities::EntityDataBase::resolveTaskName(), DUNE::Parsers::Config::set(), and DUNE::Parsers::Config::writeToFile().
| void DUNE::Daemon::consume | ( | const DUNE::IMC::SaveEntityParameters * | msg | ) |
|
virtual |
|
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.
References DUNE::Status::CODE_ACTIVE, DUNE::IMC::EntityState::ESTA_NORMAL, DUNE::Tasks::Task::inf(), DUNE::Tasks::Task::m_ctx, DUNE::Concurrency::Scheduler::maximumPriority(), DUNE::Tasks::Context::mbus, DUNE::IMC::Bus::resume(), DUNE::Tasks::Task::setEntityState(), DUNE::Tasks::Task::setPriority(), DUNE::Time::Counter< T >::setTop(), and DUNE::Tasks::Manager::start().
| void DUNE::Daemon::writeParamsXML | ( | std::ostream & | os | ) | const |
References DUNE::Tasks::Manager::adjustPriorities(), DUNE::IMC::StorageUsage::available, DUNE::Status::CODE_ACTIVE, DUNE::Status::CODE_CPU_TOO_HIGH, DUNE::Tasks::DF_LOOP_BACK, DUNE::Tasks::Context::dir_log, DUNE::Tasks::Task::dispatch(), DUNE::IMC::EntityState::ESTA_ERROR, DUNE::IMC::EntityState::ESTA_NORMAL, DUNE::getFullVersion(), DUNE::I18N::getLanguage(), DUNE::System::Resources::getProcessorUsage(), DUNE::Tasks::Task::getSystemName(), DUNE::Tasks::Task::m_ctx, DUNE::Tasks::Manager::measureCpuUsage(), DUNE::Tasks::Task::setEntityState(), DUNE::FileSystem::Path::storageAvailable(), DUNE::Math::MovingAverage< T >::update(), DUNE::IMC::CpuUsage::value, DUNE::IMC::StorageUsage::value, and DUNE::Tasks::Manager::writeParamsXML().
