nidas v1.2.3
|
#include <CVIOutput.h>
Static Public Member Functions | |
static const XMLCh * | getNamespaceURI () |
Protected Member Functions | |
CVIOutput (CVIOutput &, IOChannel *) | |
Copy constructor, with a new IOChannel. | |
size_t | incrementDiscardedSamples () |
SampleConnectionRequester * | getSampleConnectionRequester () |
void | disconnect () |
Close the IOChannel and notify whoever did the requestConnection that it is time to disconnect, perhaps because of an IOException. | |
Protected Attributes | |
std::string | _name |
Private Attributes | |
std::ostringstream | _ostr |
std::vector< const Variable * > | _variables |
dsm_time_t | _tt0 |
float | _tas |
True airspeed from DerivedDataReader. | |
nidas::util::Mutex | _tagsMutex |
std::list< SampleTag * > | _requestedTags |
std::list< const SampleTag * > | _constRequestedTags |
IOChannel * | _iochan |
SampleConnectionRequester * | _connectionRequester |
dsm_time_t | _nextFileTime |
HeaderSource * | _headerSource |
const DSMConfig * | _dsm |
size_t | _nsamplesDiscarded |
std::map< std::string, Parameter * > | _parameters |
Map of parameters by name. | |
std::list< const Parameter * > | _constParameters |
List of const pointers to Parameters for providing via getParameters(). | |
std::list< const SampleTag * > | _sourceTags |
SampleOutput * | _original |
Pointer to the SampleOutput that I was cloned from. | |
float | _latency |
int | _reconnectDelaySecs |
dsm_time_t | _startTime |
Clipping time window. | |
dsm_time_t | _endTime |
Static Private Attributes | |
static XMLCh * | namespaceURI = 0 |
CVIOutput::CVIOutput | ( | ) |
Referenced by clone().
CVIOutput::CVIOutput | ( | IOChannel * | iochannel, |
SampleConnectionRequester * | rqstr = 0 ) |
CVIOutput::~CVIOutput | ( | ) |
References nidas::core::DerivedDataReader::getInstance().
Copy constructor, with a new IOChannel.
References nidas::core::DerivedDataReader::getInstance(), nidas::core::SampleOutputBase::getIOChannel(), nidas::core::SampleOutputBase::getName(), and nidas::core::SampleOutputBase::setName().
Add a parameter to this DSMSensor.
DSMSensor will then own the pointer and will delete it in its destructor. If a Parameter exists with the same name, it will be replaced with the new Parameter.
References nidas::core::SampleOutputBase::_constParameters, nidas::core::SampleOutputBase::_parameters, and nidas::core::getSample().
Referenced by nidas::core::SampleOutputBase::fromDOMElement().
nidas::util::InvalidParameterException |
Implements nidas::core::SampleOutput.
References _variables, nidas::core::SampleOutputBase::addRequestedSampleTag(), and nidas::core::SampleTag::getVariableIterator().
nidas::util::InvalidParameterException |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_sourceTags, nidas::core::SampleOutputBase::_tagsMutex, and nidas::core::getSample().
Referenced by nidas::core::SampleOutputBase::addSourceSampleTags(), and nidas::core::SampleOutputBase::SampleOutputBase().
|
virtualinherited |
nidas::util::InvalidParameterException |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::addSourceSampleTag(), and nidas::core::getSample().
Implements nidas::core::SampleOutput.
References CVIOutput().
|
virtualinherited |
nidas::util::IOException |
Implements nidas::core::SampleOutput.
Reimplemented in nidas::dynld::SampleOutputStream, and nidas::dynld::UDPSampleOutput.
References nidas::core::SampleOutputBase::_iochan, nidas::core::SampleOutputBase::_nextFileTime, nidas::core::IOChannel::close(), DLOG, nidas::core::SampleOutputBase::getName(), and nidas::core::getSample().
Referenced by nidas::dynld::SampleOutputStream::close(), nidas::dynld::UDPSampleOutput::close(), and nidas::core::SampleOutputBase::disconnect().
|
virtualinherited |
Implementation of IOChannelRequester::connected().
How an IOChannel calls back to a SampleConnectionRequester that it is connected. The ConnectionRequester can then return a clone of itself if the IOChannel is a new instance.
Implements nidas::core::IOChannelRequester.
Reimplemented in nidas::dynld::SampleOutputStream, and nidas::dynld::UDPSampleOutput.
References nidas::core::SampleOutputBase::_connectionRequester, nidas::core::SampleOutputBase::_iochan, nidas::core::SampleOutputBase::_nextFileTime, nidas::core::SampleOutput::clone(), nidas::core::IOChannel::close(), nidas::core::SampleConnectionRequester::connect(), nidas::core::getSample(), nidas::core::SampleOutputBase::setIOChannel(), and nidas::core::SampleOutputBase::setName().
Referenced by nidas::dynld::SampleOutputStream::connected(), and nidas::dynld::UDPSampleOutput::connected().
|
inherited |
nidas::util::IOException |
References nidas::core::SampleOutputBase::_headerSource, nidas::core::SampleOutputBase::_nextFileTime, nidas::core::IOChannel::createFile(), nidas::core::SampleOutputBase::getIOChannel(), nidas::core::HeaderSource::sendDefaultHeader(), and nidas::core::HeaderSource::sendHeader().
Referenced by nidas::dynld::AsciiOutput::receive(), and receive().
|
virtual |
|
protectedinherited |
Close the IOChannel and notify whoever did the requestConnection that it is time to disconnect, perhaps because of an IOException.
This is typically called in the receive() method of a SampleOutput if it gets an IOException when writing data. A common implementation of a connection requester is to delete this SampleOutput after the removing it from the sample stream. So the caller method should immediately return after calling disconnect().
nidas::util::IOException |
References nidas::core::SampleOutputBase::_connectionRequester, nidas::core::SampleOutputBase::close(), nidas::core::SampleConnectionRequester::disconnect(), nidas::core::SampleOutputBase::getName(), nidas::core::getSample(), and ILOG.
Referenced by nidas::dynld::AsciiOutput::receive(), and receive().
|
inlinevirtual |
Implementation of SampleClient::flush().
Implements nidas::core::SampleClient.
nidas::util::InvalidParameterException |
Implements nidas::core::DOMable.
Reimplemented in nidas::dynld::UDPSampleOutput.
References nidas::core::SampleOutputBase::addParameter(), nidas::core::IOChannel::createIOChannel(), nidas::core::Parameter::createParameter(), nidas::core::SampleOutputBase::getDSMConfig(), nidas::core::Project::getInstance(), nidas::core::SampleOutputBase::getIOChannel(), nidas::core::SampleOutputBase::getName(), nidas::core::getSample(), nidas::core::SampleOutputBase::setIOChannel(), nidas::core::SampleOutputBase::setLatency(), nidas::core::SampleOutputBase::setName(), and WLOG.
Referenced by nidas::dynld::UDPSampleOutput::fromDOMElement().
|
virtualinherited |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_iochan, and nidas::core::IOChannel::getFd().
|
inlinevirtualinherited |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_iochan.
Referenced by nidas::dynld::AsciiOutput::AsciiOutput(), nidas::dynld::AsciiOutput::AsciiOutput(), nidas::dynld::AsciiOutput::connect(), nidas::core::SampleOutputBase::createNextFile(), CVIOutput(), CVIOutput(), nidas::core::SampleOutputBase::fromDOMElement(), nidas::dynld::RawSampleOutputStream::fromDOMElement(), nidas::dynld::UDPSampleOutput::fromDOMElement(), nidas::dynld::AsciiOutput::printHeader(), nidas::dynld::RawSampleOutputStream::RawSampleOutputStream(), nidas::dynld::RawSampleOutputStream::RawSampleOutputStream(), nidas::dynld::AsciiOutput::receive(), receive(), requestConnection(), nidas::dynld::SampleOutputStream::SampleOutputStream(), nidas::dynld::SampleOutputStream::SampleOutputStream(), setIOChannel(), and nidas::dynld::UDPSampleOutput::write().
|
inlinevirtualinherited |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_latency.
Referenced by nidas::dynld::SampleOutputStream::SampleOutputStream(), and nidas::dynld::SampleOutputStream::SampleOutputStream().
|
inlinevirtualinherited |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_name.
Referenced by nidas::dynld::UDPSampleOutput::ConnectionMonitor::addConnection(), nidas::dynld::AsciiOutput::AsciiOutput(), nidas::dynld::AsciiOutput::AsciiOutput(), nidas::dynld::UDPSampleOutput::XMLSocketListener::checkWorkers(), nidas::core::SampleOutputBase::close(), CVIOutput(), CVIOutput(), nidas::core::SampleOutputBase::disconnect(), nidas::dynld::UDPSampleOutput::XMLSocketListener::fireWorkers(), nidas::dynld::SampleOutputStream::flush(), nidas::core::SampleOutputBase::fromDOMElement(), nidas::dynld::UDPSampleOutput::fromDOMElement(), nidas::dynld::RawSampleOutputStream::RawSampleOutputStream(), nidas::dynld::RawSampleOutputStream::RawSampleOutputStream(), nidas::dynld::AsciiOutput::receive(), receive(), nidas::dynld::UDPSampleOutput::ConnectionMonitor::removeConnection(), nidas::dynld::SampleOutputStream::SampleOutputStream(), nidas::dynld::SampleOutputStream::SampleOutputStream(), setIOChannel(), and nidas::dynld::SampleOutputStream::setLatency().
References nidas::core::DOMable::namespaceURI.
Referenced by nidas::dynld::UDPSampleOutput::getProjectDOM(), nidas::core::Dataset::toDOMElement(), nidas::core::ProjectConfig::toDOMElement(), nidas::core::Dataset::toDOMParent(), nidas::core::Datasets::toDOMParent(), nidas::core::ProjectConfig::toDOMParent(), nidas::core::ProjectConfigs::toDOMParent(), nidas::core::DSMConfig::toDOMParent(), nidas::core::DSMSensor::toDOMParent(), nidas::core::Project::toDOMParent(), nidas::core::SampleTag::toDOMParent(), nidas::core::Site::toDOMParent(), nidas::core::ServerSocket::toDOMParent(), nidas::core::Variable::toDOMParent(), nidas::core::Datasets::writeXML(), and nidas::core::ProjectConfigs::writeXML().
|
inlineinherited |
References nidas::core::SampleOutputBase::_nextFileTime.
Referenced by nidas::dynld::AsciiOutput::receive(), and receive().
|
inlineinherited |
|
inlinevirtualinherited |
Get pointer to SampleOutput that was cloned.
Will be NULL if this SampleOutput is an un-cloned original.
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_original.
Fetch a parameter by name.
Returns a NULL pointer if no such parameter exists.
References nidas::core::SampleOutputBase::_parameters.
|
inlineinherited |
Get list of parameters.
References nidas::core::SampleOutputBase::_constParameters.
Referenced by nidas::dynld::UDPSampleOutput::fromDOMElement().
|
virtualinherited |
Base class implementation.
If setReconnectDelaySecs() has been called on this SampleOutput, then that value will be returned. Otherwise this will return the value of the IOChannel.
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_iochan, nidas::core::SampleOutputBase::_reconnectDelaySecs, and nidas::core::IOChannel::getReconnectDelaySecs().
|
inlineprotectedinherited |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_sourceTags, nidas::core::SampleOutputBase::_tagsMutex, and nidas::core::getSample().
|
inlineprotectedinherited |
|
inlinevirtualinherited |
Implements nidas::core::SampleOutput.
)
Implements nidas::core::SampleClient.
References _ostr, _tas, _tt0, nidas::core::SampleOutputBase::createNextFile(), nidas::core::SampleOutputBase::disconnect(), nidas::core::FLOAT_ST, fp, nidas::core::SampleOutputBase::getIOChannel(), nidas::core::SampleOutputBase::getName(), nidas::core::SampleOutputBase::getNextFileTime(), nidas::core::getSample(), LOG_ERR, MSECS_PER_SEC, USECS_PER_DAY, USECS_PER_MSEC, and nidas::core::IOChannel::write().
|
virtual |
)
Implements nidas::core::SampleOutput.
References nidas::core::DerivedDataReader::getInstance(), nidas::core::SampleOutputBase::getIOChannel(), nidas::core::SampleOutputBase::requestConnection(), and setIOChannel().
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_dsm, and nidas::core::getSample().
|
inlinevirtualinherited |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_headerSource, and nidas::core::getSample().
Referenced by ARLIngest::run(), NidsMerge::run(), and SensorExtract::run().
Set the IOChannel for this SampleOutput.
This IOChannel is not yet connected. The IOChannel must be connected before the SampleOutput is used for I/O, using the requestConnection() method, or by IOChannel::connect() followed by SampleOutput::connected(IOChannel*).
Reimplemented from nidas::core::SampleOutputBase.
References nidas::core::DerivedDataReader::getInstance(), nidas::core::SampleOutputBase::getIOChannel(), nidas::core::SampleOutputBase::getName(), nidas::core::SampleOutputBase::setIOChannel(), and nidas::core::SampleOutputBase::setName().
Referenced by requestConnection().
Set desired latency, providing some control over the response time vs buffer efficiency tradeoff.
Setting a latency of 1/10 sec means buffer data in the IOStream for a 1/10 sec, then send the data to the physical device.
val | Latency, in seconds. |
nidas::util::InvalidParameterException |
Implements nidas::core::SampleOutput.
Reimplemented in nidas::dynld::SampleOutputStream.
References nidas::core::SampleOutputBase::_latency, and nidas::core::getSample().
Referenced by nidas::core::SampleOutputBase::fromDOMElement(), and nidas::dynld::SampleOutputStream::setLatency().
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_name, and nidas::core::getSample().
Referenced by nidas::dynld::AsciiOutput::AsciiOutput(), nidas::dynld::AsciiOutput::AsciiOutput(), nidas::core::SampleOutputBase::connected(), CVIOutput(), CVIOutput(), nidas::core::SampleOutputBase::fromDOMElement(), nidas::dynld::RawSampleOutputStream::RawSampleOutputStream(), nidas::dynld::RawSampleOutputStream::RawSampleOutputStream(), nidas::dynld::SampleOutputStream::SampleOutputStream(), nidas::dynld::SampleOutputStream::SampleOutputStream(), and setIOChannel().
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_reconnectDelaySecs, and nidas::core::getSample().
Referenced by nidas::dynld::raf::SyncServer::init().
|
inherited |
The sample output can have a time window which clips the samples outside the window.
Only samples at or after startTime
and before endTime
will be passed along. One or both of start and end time can be zero, in which case only the non-zero times are used to clip samples.
References nidas::core::SampleOutputBase::_endTime, nidas::core::SampleOutputBase::_startTime, and nidas::util::UTime::toUsecs().
Referenced by nidas::core::NidasApp::setOutputClipping().
|
virtualinherited |
Add my content into a DOMElement.
xercesc::DOMException |
Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.
Referenced by nidas::core::ServerSocket::toDOMParent().
|
virtualinherited |
Create a DOMElement and append it to the parent.
xercesc::DOMException |
Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.
Raw write method, typically used to write the initial header.
nidas::util::IOException |
Implements nidas::core::SampleOutput.
References nidas::core::SampleOutputBase::_iochan, nidas::core::getSample(), len, and nidas::core::IOChannel::write().
|
privateinherited |
List of const pointers to Parameters for providing via getParameters().
Referenced by nidas::core::SampleOutputBase::addParameter(), and nidas::core::SampleOutputBase::getParameters().
|
privateinherited |
|
privateinherited |
|
privateinherited |
Referenced by nidas::core::SampleOutputBase::close(), nidas::core::SampleOutputBase::connected(), nidas::core::SampleOutputBase::getFd(), nidas::core::SampleOutputBase::getIOChannel(), nidas::core::SampleOutputBase::getReconnectDelaySecs(), nidas::core::SampleOutputBase::requestConnection(), nidas::core::SampleOutputBase::SampleOutputBase(), nidas::core::SampleOutputBase::setIOChannel(), nidas::core::SampleOutputBase::write(), and nidas::core::SampleOutputBase::~SampleOutputBase().
|
privateinherited |
|
protectedinherited |
Referenced by nidas::core::SampleOutputBase::getName(), and nidas::core::SampleOutputBase::setName().
|
privateinherited |
|
privateinherited |
|
privateinherited |
Pointer to the SampleOutput that I was cloned from.
Referenced by nidas::core::SampleOutputBase::getOriginal().
|
private |
Referenced by receive().
|
privateinherited |
Map of parameters by name.
Referenced by nidas::core::SampleOutputBase::addParameter(), nidas::core::SampleOutputBase::getParameter(), and nidas::core::SampleOutputBase::~SampleOutputBase().
|
privateinherited |
|
privateinherited |
|
privateinherited |
Clipping time window.
Samples outside the given time window will not pass.
Referenced by nidas::core::SampleOutputBase::receive(), and nidas::core::SampleOutputBase::setTimeClippingWindow().
|
mutableprivateinherited |
|
private |
True airspeed from DerivedDataReader.
Referenced by derivedDataNotify(), and receive().
|
private |
Referenced by receive().
Referenced by addRequestedSampleTag().
|
staticprivateinherited |
Referenced by nidas::core::DOMable::getNamespaceURI().