DUNE: Uniform Navigational Environment  2022.04.1
DUNE::Hardware::BasicDeviceDriver Class Referenceabstract

Public Member Functions

 BasicDeviceDriver (const std::string &name, DUNE::Tasks::Context &ctx)
 
void consume (const IMC::EstimatedState *msg)
 
void consume (const IMC::LoggingControl *msg)
 
void consume (const IMC::SoundSpeed *msg)
 
void consume (const IMC::PowerChannelState *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)
 

Protected Member Functions

IO::HandleopenDeviceHandle (const std::string &uri)
 
IO::HandleopenUART (const std::string &uri)
 
IO::HandleopenSocketTCP (const std::string &uri)
 
void setPowerOnDelay (double value)
 
void setPowerOffDelay (double value)
 
void setPostPowerOnDelay (double value)
 
void clearPowerChannelNames (void)
 
void addPowerChannelName (const std::string &name)
 
virtual void onIdle (void)
 
virtual bool onConnect (void)=0
 
virtual void onDisconnect (void)=0
 
virtual bool enableLogControl (void)
 
virtual bool onReadData (void)=0
 
virtual bool onSynchronize (void)
 
virtual void onEstimatedState (const DUNE::IMC::EstimatedState &msg)
 
virtual void onSoundSpeed (double value)
 
virtual void onOpenLog (const DUNE::FileSystem::Path &path)
 
virtual void onCloseLog (void)
 
FileSystem::Path getUnusedLogPath (const FileSystem::Path &path, const std::string &extension)
 
virtual void onInitializeDevice (void)=0
 
virtual bool discardEstimatedState (const IMC::EstimatedState *msg)
 
void clearFaultCount (void)
 
void clearTimeoutCount (void)
 
void wait (double duration)
 
void setRestartDelay (double seconds)
 
- 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::BasicEntitygetLocalEntity (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 >
Parameterparam (const std::string &name, T &var)
 
template<typename Y , typename T >
Parameterparam (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 onUpdateParameters (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)
 

Additional Inherited Members

- Public Types inherited from DUNE::Concurrency::Runnable
enum  State {
  StateStarting, StateRunning, StateStopping, StateDead,
  StateUnknown
}
 
- Protected Attributes inherited from DUNE::Tasks::Task
Contextm_ctx
 
std::vector< Entities::BasicEntity * > m_entities
 

Constructor & Destructor Documentation

◆ BasicDeviceDriver()

DUNE::Hardware::BasicDeviceDriver::BasicDeviceDriver ( const std::string &  name,
DUNE::Tasks::Context ctx 
)

Member Function Documentation

◆ addPowerChannelName()

void DUNE::Hardware::BasicDeviceDriver::addPowerChannelName ( const std::string &  name)
inlineprotected

◆ clearFaultCount()

void DUNE::Hardware::BasicDeviceDriver::clearFaultCount ( void  )
inlineprotected

◆ clearPowerChannelNames()

void DUNE::Hardware::BasicDeviceDriver::clearPowerChannelNames ( void  )
inlineprotected

◆ clearTimeoutCount()

void DUNE::Hardware::BasicDeviceDriver::clearTimeoutCount ( void  )
inlineprotected

References wait().

◆ consume() [1/4]

void DUNE::Hardware::BasicDeviceDriver::consume ( const IMC::EstimatedState msg)

Consume estimated state messages.

Parameters
[in]msgEstimatedState message.

References discardEstimatedState(), DUNE::Tasks::Task::isActive(), and onEstimatedState().

◆ consume() [2/4]

void DUNE::Hardware::BasicDeviceDriver::consume ( const IMC::LoggingControl msg)

◆ consume() [3/4]

void DUNE::Hardware::BasicDeviceDriver::consume ( const IMC::SoundSpeed msg)

◆ consume() [4/4]

◆ discardEstimatedState()

virtual bool DUNE::Hardware::BasicDeviceDriver::discardEstimatedState ( const IMC::EstimatedState msg)
inlineprotectedvirtual

Test if the estimated state message should be discarded.

Parameters
[in]msgestimated state message.
Returns
true to discard message, false otherwise.

References DUNE::IMC::Message::getSource(), and DUNE::Tasks::Task::getSystemId().

Referenced by consume().

◆ enableLogControl()

virtual bool DUNE::Hardware::BasicDeviceDriver::enableLogControl ( void  )
inlineprotectedvirtual

◆ getUnusedLogPath()

FileSystem::Path DUNE::Hardware::BasicDeviceDriver::getUnusedLogPath ( const FileSystem::Path path,
const std::string &  extension 
)
protected

◆ onCloseLog()

void DUNE::Hardware::BasicDeviceDriver::onCloseLog ( void  )
protectedvirtual

References DUNE::Tasks::Task::trace().

Referenced by consume(), and enableLogControl().

◆ onConnect()

virtual bool DUNE::Hardware::BasicDeviceDriver::onConnect ( void  )
protectedpure virtual

Referenced by onIdle(), and openSocketTCP().

◆ onDisconnect()

virtual void DUNE::Hardware::BasicDeviceDriver::onDisconnect ( void  )
protectedpure virtual

Referenced by onIdle(), and openSocketTCP().

◆ onEstimatedState()

void DUNE::Hardware::BasicDeviceDriver::onEstimatedState ( const DUNE::IMC::EstimatedState msg)
protectedvirtual

Referenced by consume(), and enableLogControl().

◆ onIdle()

virtual void DUNE::Hardware::BasicDeviceDriver::onIdle ( void  )
inlineprotectedvirtual

References onConnect(), and onDisconnect().

Referenced by setRestartDelay().

◆ onInitializeDevice()

virtual void DUNE::Hardware::BasicDeviceDriver::onInitializeDevice ( void  )
protectedpure virtual

Referenced by enableLogControl(), and openSocketTCP().

◆ onOpenLog()

void DUNE::Hardware::BasicDeviceDriver::onOpenLog ( const DUNE::FileSystem::Path path)
protectedvirtual

◆ onReadData()

virtual bool DUNE::Hardware::BasicDeviceDriver::onReadData ( void  )
protectedpure virtual

Referenced by consume(), and enableLogControl().

◆ onSoundSpeed()

void DUNE::Hardware::BasicDeviceDriver::onSoundSpeed ( double  value)
protectedvirtual

Referenced by consume(), and enableLogControl().

◆ onSynchronize()

bool DUNE::Hardware::BasicDeviceDriver::onSynchronize ( void  )
protectedvirtual

Referenced by consume(), and enableLogControl().

◆ openDeviceHandle()

IO::Handle * DUNE::Hardware::BasicDeviceDriver::openDeviceHandle ( const std::string &  uri)
protected

Create an I/O handle given an URI.

Parameters
[in]uriURI.
Returns
I/O handle.

References DUNE::IO::Handle::flush(), openSocketTCP(), and openUART().

◆ openSocketTCP()

◆ openUART()

IO::Handle * DUNE::Hardware::BasicDeviceDriver::openUART ( const std::string &  uri)
protected

Create an I/O handle given a serial port URI.

Parameters
[in]uriURI of the form: uart://DEVICE:BAUD
Returns
I/O handle.

References DUNE::Hardware::SerialPort.

Referenced by openDeviceHandle().

◆ setPostPowerOnDelay()

void DUNE::Hardware::BasicDeviceDriver::setPostPowerOnDelay ( double  value)
inlineprotected

Set post power-on delay.

Parameters
[in]valuedelay in second.

◆ setPowerOffDelay()

void DUNE::Hardware::BasicDeviceDriver::setPowerOffDelay ( double  value)
inlineprotected

Set the amount of time to wait before powering down the device.

Parameters
[in]valuedelay in second.

◆ setPowerOnDelay()

void DUNE::Hardware::BasicDeviceDriver::setPowerOnDelay ( double  value)
inlineprotected

Set the amount of time to wait before powering up the device.

Parameters
[in]valuedelay in second.

◆ setRestartDelay()

void DUNE::Hardware::BasicDeviceDriver::setRestartDelay ( double  seconds)
inlineprotected

References onIdle().

◆ wait()

void DUNE::Hardware::BasicDeviceDriver::wait ( double  duration)
protected
Collaboration diagram for DUNE::Hardware::BasicDeviceDriver:
Collaboration graph