nidas  v1.2-1520
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SensorSimulator Class Referenceabstract

Base class for sensor simulators. More...

Inheritance diagram for SensorSimulator:
Inheritance graph
[legend]

Public Member Functions

 SensorSimulator (n_u::SerialPort *p, bool prompted, string prompt, float rate, int nmessages)
 
virtual void sendMessage ()=0 throw (n_u::IOException)
 Implement this to send a message from the simulated sensor. More...
 
virtual void writeMessage (const std::string &msg) throw (n_u::IOException)
 Subclasses generate the message to send, then call writeMessage() to send it out. More...
 
virtual void writeMessage (const char *buf, std::streamsize l) throw (n_u::IOException)
 overloaded function useful for writing binary data More...
 
virtual void run () throw (n_u::Exception)
 Default implementation of run will call the sendMessage() method either after receipt of a prompt or at the given rate if the sensor is not prompted. More...
 
void interrupt ()
 Stop the simulation. More...
 
bool isInterrupted () const
 
n_u::SerialPortport ()
 

Protected Member Functions

LoopergetLooper ()
 
void looperNotify () throw ()
 Method called by Looper. More...
 
void readPrompts () throw (n_u::IOException)
 
 SensorSimulator (const SensorSimulator &)
 
SensorSimulatoroperator= (const SensorSimulator &)
 

Protected Attributes

n_u::SerialPort_port
 
bool _prompted
 
string _prompt
 
float _rate
 
int _nmessages
 
bool _interrupted
 

Static Protected Attributes

static Looper_looper = 0
 

Detailed Description

Base class for sensor simulators.

Constructor & Destructor Documentation

SensorSimulator::SensorSimulator ( n_u::SerialPort p,
bool  prompted,
string  prompt,
float  rate,
int  nmessages 
)
inline
SensorSimulator::SensorSimulator ( const SensorSimulator )
protected

Member Function Documentation

Looper * SensorSimulator::getLooper ( )
protected
void SensorSimulator::interrupt ( )
inline

Stop the simulation.

Referenced by FileSim::sendASCIIMessage(), and FileSim::sendBinaryMessage().

bool SensorSimulator::isInterrupted ( ) const
inline
void SensorSimulator::looperNotify ( )
throw (
)
protectedvirtual

Method called by Looper.

This method should not be a heavy user of resources, since the notification of other clients is delayed until this method finishes. If much work is to be done, this method should post a semaphore for another worker thread to proceed.

Implements nidas::core::LooperClient.

References nidas::util::Exception::what().

SensorSimulator& SensorSimulator::operator= ( const SensorSimulator )
protected
n_u::SerialPort* SensorSimulator::port ( )
inline
void SensorSimulator::readPrompts ( )
throw (n_u::IOException
)
protected
void SensorSimulator::run ( )
throw (n_u::Exception
)
virtual

Default implementation of run will call the sendMessage() method either after receipt of a prompt or at the given rate if the sensor is not prompted.

run() will return when isInterrupted() is true.

Reimplemented in Csat3Sim.

References MSECS_PER_SEC.

virtual void SensorSimulator::sendMessage ( )
throw (n_u::IOException
)
pure virtual

Implement this to send a message from the simulated sensor.

Implemented in Csat3Sim, FileSim, and FixedSim.

virtual void SensorSimulator::writeMessage ( const std::string &  msg)
throw (n_u::IOException
)
inlinevirtual

Subclasses generate the message to send, then call writeMessage() to send it out.

Referenced by FileSim::sendASCIIMessage(), FileSim::sendBinaryMessage(), and FixedSim::sendMessage().

virtual void SensorSimulator::writeMessage ( const char *  buf,
std::streamsize  l 
)
throw (n_u::IOException
)
inlinevirtual

overloaded function useful for writing binary data

Member Data Documentation

bool SensorSimulator::_interrupted
protected
Looper * SensorSimulator::_looper = 0
staticprotected
int SensorSimulator::_nmessages
protected

Referenced by Csat3Sim::run().

n_u::SerialPort* SensorSimulator::_port
protected
string SensorSimulator::_prompt
protected
bool SensorSimulator::_prompted
protected
float SensorSimulator::_rate
protected

Referenced by Csat3Sim::run().


The documentation for this class was generated from the following file: