nidas v1.2.3
|
Simulate a CSAT3 sonic. More...
Public Member Functions | |
Csat3Sim (n_u::SerialPort *p, float rate, int nmessages) | |
void | run () |
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. | |
void | sendMessage () |
Implement this to send a message from the simulated sensor. | |
virtual void | writeMessage (const std::string &msg) |
Subclasses generate the message to send, then call writeMessage() to send it out. | |
virtual void | writeMessage (const char *buf, std::streamsize l) |
overloaded function useful for writing binary data | |
void | interrupt () |
Stop the simulation. | |
bool | isInterrupted () const |
n_u::SerialPort * | port () |
Protected Member Functions | |
Looper * | getLooper () |
void | looperNotify () override |
Method called by Looper. | |
void | readPrompts () |
Protected Attributes | |
n_u::SerialPort * | _port |
bool | _prompted |
string | _prompt |
float | _rate |
int | _nmessages |
bool | _interrupted |
Static Protected Attributes | |
static Looper * | _looper = 0 |
Private Attributes | |
int | _cntr |
Simulate a CSAT3 sonic.
|
inline |
|
protectedinherited |
References SensorSimulator::_looper.
Referenced by SensorSimulator::run().
|
inlineinherited |
Stop the simulation.
References SensorSimulator::_interrupted.
Referenced by SensorSimulator::looperNotify(), SensorSimulator::readPrompts(), FileSim::sendASCIIMessage(), and FileSim::sendBinaryMessage().
|
inlineinherited |
References SensorSimulator::_interrupted.
Referenced by SensorSimulator::readPrompts().
|
overrideprotectedvirtualinherited |
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 SensorSimulator::_interrupted, SensorSimulator::_looper, SensorSimulator::_nmessages, nidas::core::getSample(), SensorSimulator::interrupt(), and SensorSimulator::sendMessage().
|
inlineinherited |
References SensorSimulator::_port.
|
protectedinherited |
|
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 from SensorSimulator.
References _cntr, SensorSimulator::_nmessages, SensorSimulator::_port, SensorSimulator::_rate, nidas::util::SerialPort::getFd(), nidas::util::SerialPort::getName(), nidas::core::getSample(), nidas::util::SerialPort::read(), running, sendMessage(), USECS_PER_SEC, and nidas::util::SerialPort::write().
|
virtual |
Implement this to send a message from the simulated sensor.
nidas::util::IOException |
Implements SensorSimulator.
References _cntr, SensorSimulator::_port, nidas::core::getSample(), len, and nidas::util::SerialPort::write().
Referenced by run().
|
inlinevirtualinherited |
overloaded function useful for writing binary data
References SensorSimulator::_port, and nidas::util::SerialPort::write().
Subclasses generate the message to send, then call writeMessage() to send it out.
References SensorSimulator::_port, and nidas::util::SerialPort::write().
Referenced by FileSim::sendASCIIMessage(), FileSim::sendBinaryMessage(), and FixedSim::sendMessage().
|
private |
Referenced by run(), and sendMessage().
|
protectedinherited |
Referenced by SensorSimulator::interrupt(), SensorSimulator::isInterrupted(), and SensorSimulator::looperNotify().
|
staticprotectedinherited |
Referenced by SensorSimulator::getLooper(), SensorSimulator::looperNotify(), and SensorSimulator::run().
|
protectedinherited |
Referenced by SensorSimulator::looperNotify(), SensorSimulator::readPrompts(), and run().
|
protectedinherited |
|
protectedinherited |
Referenced by SensorSimulator::readPrompts().
|
protectedinherited |
Referenced by SensorSimulator::run().
|
protectedinherited |
Referenced by SensorSimulator::run(), and run().