nidas
v1.2-1520
|
Read serial records from a file and send them at a given rate or after a prompt. More...
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::SerialPort * | port () |
Protected Member Functions | |
Looper * | getLooper () |
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 &) | |
FileSim & | operator= (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 |
Read serial records from a file and send them at a given rate or after a prompt.
|
inline |
References open().
|
inline |
References open().
|
private |
|
inline |
Referenced by open(), rewind(), and sendASCIIMessage().
|
protectedinherited |
|
inlineinherited |
Stop the simulation.
Referenced by sendASCIIMessage(), and sendBinaryMessage().
|
inlineinherited |
|
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().
|
inline |
|
inlineinherited |
|
protectedinherited |
|
inline |
References _infile, _path, _reopen, _verbose, close(), open(), and nidas::util::Exception::what().
Referenced by sendASCIIMessage().
|
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 | ||
) |
References _in, _msg, _onceThru, _reopen, _separator, _septype, _verbose, BOM_SEPARATOR, close(), EOM_SEPARATOR, SensorSimulator::interrupt(), nidas::util::replaceBackslashSequences(), rewind(), and SensorSimulator::writeMessage().
Referenced by sendMessage().
void FileSim::sendBinaryMessage | ( | ) | ||
throw | ( | n_u::IOException | ||
) |
References _in, SensorSimulator::interrupt(), and SensorSimulator::writeMessage().
Referenced by sendMessage().
|
virtual |
Implement this to send a message from the simulated sensor.
Implements SensorSimulator.
References sendASCIIMessage(), and sendBinaryMessage().
Referenced by Csat3Sim::run().
|
inlinevirtualinherited |
Subclasses generate the message to send, then call writeMessage() to send it out.
Referenced by sendASCIIMessage(), sendBinaryMessage(), and FixedSim::sendMessage().
|
inlinevirtualinherited |
overloaded function useful for writing binary data
|
private |
|
private |
Referenced by close(), open(), sendASCIIMessage(), and sendBinaryMessage().
|
protectedinherited |
|
staticprotectedinherited |
|
private |
Referenced by sendASCIIMessage().
|
protectedinherited |
Referenced by Csat3Sim::run().
|
private |
Referenced by sendASCIIMessage().
|
protectedinherited |
Referenced by Csat3Sim::run(), and Csat3Sim::sendMessage().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by Csat3Sim::run().
|
private |
Referenced by open(), rewind(), and sendASCIIMessage().
|
private |
Referenced by sendASCIIMessage().
|
private |
Referenced by sendASCIIMessage().
|
private |
Referenced by open(), rewind(), and sendASCIIMessage().