nidas v1.2.3
|
#include <SampleScanner.h>
Protected Attributes | |
const unsigned int | BUFSIZE |
Buffer size for reading from sensor. | |
char * | _buffer |
unsigned int | _bufhead |
unsigned int | _buftail |
Sample * | _osamp |
struct dsm_sample | _header |
unsigned int | _outSampRead |
unsigned int | _outSampToRead |
char * | _outSampDataPtr |
std::string | _messageSeparator |
int | _messageLength |
bool | _separatorAtEOM |
char * | _separator |
messageSeparator in a C string. | |
int | _separatorLen |
Length of messageSeparator. | |
Private Attributes | |
std::list< int > | _packetLengths |
std::list< dsm_time_t > | _packetTimes |
bool | _nullTerminate |
std::string | _emptyString |
time_t | _initialTimeSecs |
unsigned int | _minSampleLength [2] |
unsigned int | _maxSampleLength [2] |
int | _currentIndex |
int | _reportIndex |
size_t | _nsamples |
size_t | _nbytes |
unsigned int | _badTimeTags |
float | _sampleRateObs |
Observed number of samples per second. | |
float | _dataRateObs |
int | _usecsPerByte |
DatagramSampleScanner::DatagramSampleScanner | ( | int | bufsize = 16384 | ) |
References nidas::core::SampleScanner::_nbytes, and nidas::core::getSample().
Referenced by nidas::core::SampleScanner::readBuffer(), and readBuffer().
References nidas::core::SampleScanner::_currentIndex, nidas::core::SampleScanner::_maxSampleLength, nidas::core::SampleScanner::_minSampleLength, and nidas::core::SampleScanner::_nsamples.
Referenced by nidas::core::DriverSampleScanner::nextSample(), nextSample(), nidas::core::MessageStreamScanner::nextSampleByLength(), nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), and nidas::core::MessageStreamScanner::requestBiggerSample().
Update the sensor sampling statistics: samples/sec, bytes/sec, min/max sample size, that can be accessed via getObservedSamplingRate(), getObservedDataRate() etc.
Should be called every periodUsec by a user of this sensor.
periodUsec | Statistics period. |
References nidas::core::SampleScanner::_currentIndex, nidas::core::SampleScanner::_dataRateObs, nidas::core::SampleScanner::_maxSampleLength, nidas::core::SampleScanner::_minSampleLength, nidas::core::SampleScanner::_nbytes, nidas::core::SampleScanner::_nsamples, nidas::core::SampleScanner::_reportIndex, nidas::core::SampleScanner::_sampleRateObs, nidas::core::getSample(), and USECS_PER_SEC.
Referenced by nidas::core::DSMSensor::calcStatistics().
|
virtualinherited |
References nidas::core::SampleScanner::_bufhead, and nidas::core::SampleScanner::_buftail.
Referenced by nidas::core::DSMSensor::clearBuffer().
|
inlinevirtualinherited |
Returns an empty string.
Reimplemented in nidas::core::MessageSampleScanner, and nidas::core::MessageStreamScanner.
References nidas::core::SampleScanner::_emptyString.
References nidas::core::SampleScanner::_badTimeTags.
Referenced by nidas::core::DSMSensor::getBadTimeTagCount().
References nidas::core::SampleScanner::_bufhead, and nidas::core::SampleScanner::_buftail.
References nidas::core::SampleScanner::_maxSampleLength, and nidas::core::SampleScanner::_reportIndex.
Referenced by nidas::core::DSMSensor::getMaxSampleLength().
Returns 0.
Reimplemented in nidas::core::MessageSampleScanner, and nidas::core::MessageStreamScanner.
|
inlinevirtualinherited |
Returns an empty string.
Reimplemented in nidas::core::MessageSampleScanner, and nidas::core::MessageStreamScanner.
References nidas::core::SampleScanner::_emptyString.
Reimplemented in nidas::core::MessageSampleScanner, and nidas::core::MessageStreamScanner.
|
inlinevirtual |
Should the SampleScanner append a null character, '\0', to the messages.
Reimplemented from nidas::core::SampleScanner.
References _nullTerminate.
Referenced by nextSample().
|
inherited |
|
inherited |
|
inlineinherited |
References nidas::core::SampleScanner::_usecsPerByte.
Referenced by nidas::core::MessageStreamScanner::nextSampleByLength(), nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), nidas::core::MessageStreamScanner::readBuffer(), and nidas::core::MessageStreamScanner::readBuffer().
|
inlineinherited |
References nidas::core::SampleScanner::_badTimeTags.
Referenced by nidas::core::DriverSampleScanner::nextSample().
|
virtualinherited |
Initialize the scanner.
Must be called by a user of SampleScanner prior to calling readSamples().
References nidas::core::SampleScanner::resetStatistics().
Referenced by nidas::core::DSMSensor::open().
Extract the next sample from the buffer.
Returns NULL if there are no more samples in the buffer.
Implements nidas::core::SampleScanner.
References nidas::core::SampleScanner::_buffer, nidas::core::SampleScanner::_buftail, _packetLengths, _packetTimes, nidas::core::SampleScanner::addSampleToStats(), nidas::core::DSMSensor::getId(), getNullTerminate(), and nidas::core::getSample().
Read from the sensor into the internal buffer of this SampleScanner.
nidas::util::IOException |
Reimplemented from nidas::core::SampleScanner.
References nidas::core::SampleScanner::_buffer, nidas::core::SampleScanner::_bufhead, nidas::core::SampleScanner::_buftail, _packetLengths, _packetTimes, nidas::core::SampleScanner::addNumBytesToStats(), nidas::core::SampleScanner::BUFSIZE, nidas::core::DSMSensor::getBytesAvailable(), nidas::core::DSMSensor::getName(), nidas::core::getSample(), nidas::util::getSystemTime(), len, LOG_WARNING, and nidas::core::DSMSensor::read().
|
virtualinherited |
Read from the sensor into the internal buffer of this SampleScanner, providing a timeout in milliseconds.
This will throw nidas::util::IOTimeoutException if the read fails due to a timeout.
nidas::util::IOException |
Reimplemented in nidas::core::MessageStreamScanner.
References nidas::core::DSMSensor::getName(), nidas::core::DSMSensor::getReadFd(), nidas::core::getSample(), MSECS_PER_SEC, NLOG, NSECS_PER_MSEC, and nidas::core::SampleScanner::readBuffer().
|
virtualinherited |
References nidas::core::SampleScanner::_badTimeTags, nidas::core::SampleScanner::_currentIndex, nidas::core::SampleScanner::_dataRateObs, nidas::core::SampleScanner::_initialTimeSecs, nidas::core::SampleScanner::_maxSampleLength, nidas::core::SampleScanner::_minSampleLength, nidas::core::SampleScanner::_nbytes, nidas::core::SampleScanner::_nsamples, nidas::core::SampleScanner::_reportIndex, nidas::core::SampleScanner::_sampleRateObs, and nidas::core::getSample().
Referenced by nidas::core::SampleScanner::init(), and nidas::core::SampleScanner::SampleScanner().
|
inlinevirtual |
setMessageSeparator is not implemented in DatagramSampleScanner.
Throws nidas::util::InvalidParameterException.
nidas::util::InvalidParameterException |
Implements nidas::core::SampleScanner.
User of DatagramSampleScanner should specify if they want the samples to be null terminated.
In general, if this SampleScanner is used by a CharacterSensor with a scanfFormat defined for one or more samples, then the samples should be null terminated.
References _nullTerminate, and nidas::core::getSample().
References nidas::core::SampleScanner::_usecsPerByte, and nidas::core::getSample().
Referenced by nidas::dynld::ModbusRTU::open().
|
protectedinherited |
Referenced by nidas::core::DriverSampleScanner::nextSample(), nextSample(), nidas::core::MessageStreamScanner::nextSampleByLength(), nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), nidas::core::SampleScanner::readBuffer(), readBuffer(), and nidas::core::SampleScanner::~SampleScanner().
Referenced by nidas::core::SampleScanner::clearBuffer(), nidas::core::SampleScanner::getBytesInBuffer(), nidas::core::DriverSampleScanner::nextSample(), nidas::core::MessageStreamScanner::nextSampleByLength(), nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), nidas::core::SampleScanner::readBuffer(), and readBuffer().
Referenced by nidas::core::SampleScanner::clearBuffer(), nidas::core::SampleScanner::getBytesInBuffer(), nidas::core::DriverSampleScanner::nextSample(), nextSample(), nidas::core::MessageStreamScanner::nextSampleByLength(), nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), nidas::core::SampleScanner::readBuffer(), and readBuffer().
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
protectedinherited |
Referenced by nidas::core::DriverSampleScanner::nextSample().
|
privateinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by nidas::core::MessageSampleScanner::getBackslashedMessageSeparator(), nidas::core::MessageStreamScanner::getBackslashedMessageSeparator(), nidas::core::MessageSampleScanner::getMessageSeparator(), nidas::core::MessageStreamScanner::getMessageSeparator(), nidas::core::MessageSampleScanner::setMessageParameters(), and nidas::core::MessageStreamScanner::setMessageParameters().
|
privateinherited |
|
privateinherited |
|
private |
Referenced by getNullTerminate(), and setNullTerminate().
|
protectedinherited |
Referenced by nidas::core::DriverSampleScanner::nextSample(), nidas::core::MessageStreamScanner::nextSampleByLength(), nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), nidas::core::MessageStreamScanner::requestBiggerSample(), and nidas::core::SampleScanner::~SampleScanner().
|
protectedinherited |
Referenced by nidas::core::DriverSampleScanner::nextSample().
|
private |
Referenced by nextSample(), and readBuffer().
|
private |
Referenced by nextSample(), and readBuffer().
|
privateinherited |
Referenced by nidas::core::SampleScanner::calcStatistics(), nidas::core::SampleScanner::getMaxSampleLength(), nidas::core::SampleScanner::getMinSampleLength(), nidas::core::SampleScanner::getObservedDataRate(), nidas::core::SampleScanner::getObservedSamplingRate(), and nidas::core::SampleScanner::resetStatistics().
|
privateinherited |
Observed number of samples per second.
Referenced by nidas::core::SampleScanner::calcStatistics(), nidas::core::SampleScanner::getObservedSamplingRate(), and nidas::core::SampleScanner::resetStatistics().
|
protectedinherited |
messageSeparator in a C string.
Referenced by nidas::core::MessageStreamScanner::nextSampleSepBOM(), nidas::core::MessageStreamScanner::nextSampleSepEOM(), nidas::core::MessageStreamScanner::setMessageParameters(), and nidas::core::SampleScanner::~SampleScanner().
|
protectedinherited |
|
protectedinherited |
|
privateinherited |
Buffer size for reading from sensor.
Referenced by nidas::core::SampleScanner::readBuffer(), and readBuffer().