DUNE: Uniform Navigational Environment  2020.01.0
Simulators::AcousticModem::Task Struct Reference

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
void onResourceAcquisition (void)
 
void onResourceRelease (void)
 
void clearTicket (IMC::UamTxStatus::ValueEnum reason, const std::string &error="")
 
void replaceTicket (const Ticket *ticket)
 
void sendTxStatus (const Ticket &ticket, IMC::UamTxStatus::ValueEnum value, const std::string &error="")
 
void consume (const IMC::UamTxFrame *msg)
 
void consume (const IMC::SimAcousticMessage *amsg)
 
void consume (const IMC::DevDataText *msg)
 
void consume (const IMC::GpsFix *msg)
 
void consume (const IMC::SimulatedState *msg)
 
void rcvRxFrame (const IMC::SimAcousticMessage *amsg)
 
void rcvRxRange (const IMC::SimAcousticMessage *amsg)
 
void checkTimeout ()
 
void onMain (void)
 

Public Attributes

Arguments m_args
 
Ticketm_ticket
 
Time::Counter< double > m_timeout
 
Driverm_driver
 
IMC::SimulatedState * m_sstate
 

Constructor & Destructor Documentation

Member Function Documentation

void Simulators::AcousticModem::Task::checkTimeout ( void  )
inline

Check timeout counter for overflow if there is an open transmission ticket.

References Simulators::AcousticModem::Ticket::ack.

void Simulators::AcousticModem::Task::clearTicket ( IMC::UamTxStatus::ValueEnum  reason,
const std::string &  error = "" 
)
inline

Clear ticket and send status.

Parameters
[in]reasonstatus to send.
[in]errorerror message, if available.
void Simulators::AcousticModem::Task::consume ( const IMC::SimAcousticMessage *  amsg)
inline
void Simulators::AcousticModem::Task::consume ( const IMC::DevDataText *  msg)
inline
void Simulators::AcousticModem::Task::consume ( const IMC::GpsFix *  msg)
inline
void Simulators::AcousticModem::Task::consume ( const IMC::SimulatedState *  msg)
inline
void Simulators::AcousticModem::Task::onMain ( void  )
inline
void Simulators::AcousticModem::Task::onResourceAcquisition ( void  )
inline

Initialize resources.

References Simulators::AcousticModem::Arguments::driver_args.

void Simulators::AcousticModem::Task::onResourceRelease ( void  )
inline

Release resources.

void Simulators::AcousticModem::Task::rcvRxFrame ( const IMC::SimAcousticMessage *  amsg)
inline

Parse SimAcousticMessage into UamRxFrame and send.

Parameters
[in]amsgSimAcousticMessage encapsulating UamRxFrame data.
void Simulators::AcousticModem::Task::rcvRxRange ( const IMC::SimAcousticMessage *  amsg)
inline

Parse SimAcousticMessage into UamRxRange and send.

Parameters
[in]amsgSimAcousticMessage encapsulating UamRxRange data.

References Simulators::AcousticModem::Driver::distance().

void Simulators::AcousticModem::Task::replaceTicket ( const Ticket ticket)
inline

Replace current ticket.

Parameters
[in]ticketticket to replae current.
[in]reasonstatus to send.
void Simulators::AcousticModem::Task::sendTxStatus ( const Ticket ticket,
IMC::UamTxStatus::ValueEnum  value,
const std::string &  error = "" 
)
inline

Send status.

Parameters
[in]ticketticket to return status.
[in]valuestatus to send.
[in]errorerror message, if available.

References Simulators::AcousticModem::Ticket::imc_eid, Simulators::AcousticModem::Ticket::imc_sid, and Simulators::AcousticModem::Ticket::seq.

Member Data Documentation

Arguments Simulators::AcousticModem::Task::m_args

Task arguments.

Driver* Simulators::AcousticModem::Task::m_driver

Modem driver handler.

IMC::SimulatedState* Simulators::AcousticModem::Task::m_sstate

Simulated state.

Ticket* Simulators::AcousticModem::Task::m_ticket

Current transmission ticket.

Time::Counter<double> Simulators::AcousticModem::Task::m_timeout

Timeout counter.

Collaboration diagram for Simulators::AcousticModem::Task:
Collaboration graph