nidas  v1.2-1520
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
FileSim Class Reference

Read serial records from a file and send them at a given rate or after a prompt. More...

Inheritance diagram for FileSim:
Inheritance graph
[legend]

Public Member Functions

 FileSim (n_u::SerialPort *p, const string &path, enum sep_type septype, string separator, bool prompted, string prompt, float rate, int nmessages, bool once, bool verbose=false)
 
 FileSim (n_u::SerialPort *p, const string &path, float rate, bool once, bool verbose=false)
 
void open ()
 
void close ()
 
void rewind ()
 
void sendMessage () throw (n_u::IOException)
 Implement this to send a message from the simulated sensor. More...
 
void sendASCIIMessage () throw (n_u::IOException)
 
void sendBinaryMessage () throw (n_u::IOException)
 
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)
 

Protected Attributes

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

Static Protected Attributes

static Looper_looper = 0
 

Private Member Functions

 FileSim (const FileSim &)
 
FileSimoperator= (const FileSim &)
 

Private Attributes

string _path
 
std::ifstream _infile
 
std::istream * _in
 
std::string _msg
 
enum sep_type _septype
 
string _separator
 
bool _reopen
 
bool _onceThru
 
bool _verbose
 
bool _binary
 

Detailed Description

Read serial records from a file and send them at a given rate or after a prompt.

Constructor & Destructor Documentation

FileSim::FileSim ( n_u::SerialPort p,
const string &  path,
enum sep_type  septype,
string  separator,
bool  prompted,
string  prompt,
float  rate,
int  nmessages,
bool  once,
bool  verbose = false 
)
inline

References open().

FileSim::FileSim ( n_u::SerialPort p,
const string &  path,
float  rate,
bool  once,
bool  verbose = false 
)
inline

References open().

FileSim::FileSim ( const FileSim )
private

Member Function Documentation

void FileSim::close ( )
inline

References _in, and _infile.

Referenced by open(), rewind(), and sendASCIIMessage().

Looper * SensorSimulator::getLooper ( )
protectedinherited
void SensorSimulator::interrupt ( )
inlineinherited

Stop the simulation.

Referenced by sendASCIIMessage(), and sendBinaryMessage().

bool SensorSimulator::isInterrupted ( ) const
inlineinherited
void SensorSimulator::looperNotify ( )
throw (
)
protectedvirtualinherited

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().

void FileSim::open ( )
inline

References _in, _infile, _path, _reopen, _verbose, and close().

Referenced by FileSim(), and rewind().

FileSim& FileSim::operator= ( const FileSim )
private
n_u::SerialPort* SensorSimulator::port ( )
inlineinherited
void SensorSimulator::readPrompts ( )
throw (n_u::IOException
)
protectedinherited
void FileSim::rewind ( )
inline
void SensorSimulator::run ( )
throw (n_u::Exception
)
virtualinherited

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.

void FileSim::sendASCIIMessage ( )
throw (n_u::IOException
)
void FileSim::sendBinaryMessage ( )
throw (n_u::IOException
)
void FileSim::sendMessage ( )
throw (n_u::IOException
)
virtual

Implement this to send a message from the simulated sensor.

Implements SensorSimulator.

References sendASCIIMessage(), and sendBinaryMessage().

Referenced by Csat3Sim::run().

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

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

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

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

overloaded function useful for writing binary data

Member Data Documentation

bool FileSim::_binary
private
std::istream* FileSim::_in
private
std::ifstream FileSim::_infile
private

Referenced by close(), open(), and rewind().

bool SensorSimulator::_interrupted
protectedinherited
Looper * SensorSimulator::_looper = 0
staticprotectedinherited
std::string FileSim::_msg
private

Referenced by sendASCIIMessage().

int SensorSimulator::_nmessages
protectedinherited

Referenced by Csat3Sim::run().

bool FileSim::_onceThru
private

Referenced by sendASCIIMessage().

string FileSim::_path
private

Referenced by open(), and rewind().

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

Referenced by Csat3Sim::run().

bool FileSim::_reopen
private

Referenced by open(), rewind(), and sendASCIIMessage().

string FileSim::_separator
private

Referenced by sendASCIIMessage().

enum sep_type FileSim::_septype
private

Referenced by sendASCIIMessage().

bool FileSim::_verbose
private

Referenced by open(), rewind(), and sendASCIIMessage().


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