DUNE: Uniform Navigational Environment  2.3.0
DUNE::Hardware::BasicModem Class Reference

Public Member Functions

 BasicModem (Tasks::Task *task, Hardware::SerialPort *uart)
 
virtual ~BasicModem (void)
 
void initialize (void)
 
void setTxRateMax (double rate)
 
bool isBusy (void)
 
bool isCooling (void)
 
- Public Member Functions inherited from DUNE::Concurrency::Thread
 Thread (void)
 
virtual ~Thread (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)
 
State getState (void)
 
bool isCreated (void)
 
bool isStopping (void)
 
bool isRunning (void)
 
bool isStarting (void)
 
bool isDead (void)
 

Protected Types

enum  ReadMode { READ_MODE_LINE, READ_MODE_RAW }
 

Protected Member Functions

virtual bool handleUnsolicited (const std::string &str)
 
virtual void sendInitialization (void)
 
virtual void sendReset (void)
 
void sendRaw (const uint8_t *data, unsigned data_size)
 
void send (const std::string &str)
 
void setTimeout (double timeout)
 
double getTimeout (void)
 
void expect (const std::string &str)
 
void readRaw (Time::Counter< double > &timer, uint8_t *data, unsigned data_size)
 
ReadMode getReadMode (void)
 
void setReadMode (ReadMode mode)
 
void flushInput (void)
 
std::string readLine (void)
 
std::string readLine (Time::Counter< double > &timer)
 
Tasks::TaskgetTask (void)
 
void setSkipLine (const std::string &line)
 
void setBusy (bool value)
 
- Protected Member Functions inherited from DUNE::Concurrency::Thread
void startImpl (void)
 
void stopImpl (void)
 
void joinImpl (void)
 
void setPriorityImpl (Scheduler::Policy policy, unsigned priority)
 

Protected Attributes

Concurrency::Mutex m_mutex
 
Hardware::SerialPortm_uart
 
std::string m_last_cmd
 

Additional Inherited Members

- Public Types inherited from DUNE::Concurrency::Runnable
enum  State {
  StateStarting, StateRunning, StateStopping, StateDead,
  StateUnknown
}
 
- Static Public Member Functions inherited from DUNE::Concurrency::Thread
static unsigned native (void)
 

Member Enumeration Documentation

Read mode.

Enumerator
READ_MODE_LINE 

Line oriented input.

READ_MODE_RAW 

Unprocessed sequence of bytes.

Constructor & Destructor Documentation

DUNE::Hardware::BasicModem::BasicModem ( Tasks::Task task,
Hardware::SerialPort uart 
)

Constructor.

Parameters
[in]taskparent task.
[in]uartserial port connected to the ISU.

References DUNE::Hardware::SerialPort::flushInput(), and m_uart.

virtual DUNE::Hardware::BasicModem::~BasicModem ( void  )
inlinevirtual

Member Function Documentation

void DUNE::Hardware::BasicModem::expect ( const std::string &  str)
protected

References readLine().

void DUNE::Hardware::BasicModem::flushInput ( void  )
protected
BasicModem::ReadMode DUNE::Hardware::BasicModem::getReadMode ( void  )
protected

References m_mutex.

Tasks::Task* DUNE::Hardware::BasicModem::getTask ( void  )
inlineprotected
double DUNE::Hardware::BasicModem::getTimeout ( void  )
protected

References m_mutex.

Referenced by readLine().

virtual bool DUNE::Hardware::BasicModem::handleUnsolicited ( const std::string &  str)
inlineprotectedvirtual
bool DUNE::Hardware::BasicModem::isBusy ( void  )

Test if the modem is busy.

Test if ISU is busy performing an SBD session.

Returns
true if the modem is busy, false otherwise.
true if ISU is busy, false otherwise.

References m_mutex.

bool DUNE::Hardware::BasicModem::isCooling ( void  )

Test if the modem is cooling down.

Test if ISU is cooling down.

Returns
true if the modem is cooling down, false otherwise.
true if ISU is cooling down, false otherwise.

References m_mutex, and DUNE::Time::Counter< T >::overflow().

std::string DUNE::Hardware::BasicModem::readLine ( void  )
protected
std::string DUNE::Hardware::BasicModem::readLine ( Time::Counter< double > &  timer)
protected
void DUNE::Hardware::BasicModem::readRaw ( Time::Counter< double > &  timer,
uint8_t *  data,
unsigned  data_size 
)
protected
void DUNE::Hardware::BasicModem::send ( const std::string &  str)
protected
virtual void DUNE::Hardware::BasicModem::sendInitialization ( void  )
inlineprotectedvirtual

Reimplemented in DUNE::Hardware::HayesModem.

Referenced by initialize().

void DUNE::Hardware::BasicModem::sendRaw ( const uint8_t *  data,
unsigned  data_size 
)
protected

References m_uart, and DUNE::Hardware::SerialPort::write().

Referenced by send().

virtual void DUNE::Hardware::BasicModem::sendReset ( void  )
inlineprotectedvirtual

Reimplemented in DUNE::Hardware::HayesModem.

Referenced by initialize().

void DUNE::Hardware::BasicModem::setBusy ( bool  value)
protected
void DUNE::Hardware::BasicModem::setReadMode ( BasicModem::ReadMode  mode)
protected
void DUNE::Hardware::BasicModem::setSkipLine ( const std::string &  line)
protected
void DUNE::Hardware::BasicModem::setTimeout ( double  timeout)
protected

References m_mutex.

void DUNE::Hardware::BasicModem::setTxRateMax ( double  rate)

Set maximum transmission rate.

Parameters
[in]ratetransmission rate in second. Negative values will disable transmission rate control.
[in]ratetransmission rate in second. Negative values will disable transmission rate cap.

References m_mutex, and DUNE::Time::Counter< T >::setTop().

Member Data Documentation

std::string DUNE::Hardware::BasicModem::m_last_cmd
protected

Last command sent to modem.

Referenced by readLine(), and DUNE::Hardware::HayesModem::sendAT().

Hardware::SerialPort* DUNE::Hardware::BasicModem::m_uart
protected
Collaboration diagram for DUNE::Hardware::BasicModem:
Collaboration graph