nidas v1.2.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | List of all members
nidas::dynld::raf::CVIOutput Class Reference

#include <CVIOutput.h>

Inheritance diagram for nidas::dynld::raf::CVIOutput:
Inheritance graph
[legend]

Public Member Functions

 CVIOutput ()
 
 CVIOutput (IOChannel *iochannel, SampleConnectionRequester *rqstr=0)
 
 ~CVIOutput ()
 
void flush () throw ()
 Implementation of SampleClient::flush().
 
CVIOutputclone (IOChannel *iochannel=0)
 
void addRequestedSampleTag (SampleTag *)
 
void requestConnection (SampleConnectionRequester *requester)
 
bool receive (const Sample *samp)
 
void derivedDataNotify (const DerivedDataReader *s)
 
void setIOChannel (IOChannel *val)
 Set the IOChannel for this SampleOutput.
 
SampleOutputgetOriginal () const
 Get pointer to SampleOutput that was cloned.
 
void setName (const std::string &val)
 
const std::string & getName () const
 
bool isRaw () const
 
std::list< const SampleTag * > getRequestedSampleTags () const
 
void addSourceSampleTag (const SampleTag *tag)
 
void addSourceSampleTags (const std::list< const SampleTag * > &tags)
 
std::list< const SampleTag * > getSourceSampleTags () const
 
SampleOutputconnected (IOChannel *ochan)
 Implementation of IOChannelRequester::connected().
 
int getReconnectDelaySecs () const
 Base class implementation.
 
void setReconnectDelaySecs (int val)
 
int getFd () const
 
void close ()
 
dsm_time_t getNextFileTime () const
 
void createNextFile (dsm_time_t)
 
size_t write (const void *buf, size_t len)
 Raw write method, typically used to write the initial header.
 
void fromDOMElement (const xercesc::DOMElement *node)
 
IOChannelgetIOChannel () const
 
void setHeaderSource (HeaderSource *val)
 
void setDSMConfig (const DSMConfig *val)
 
const DSMConfiggetDSMConfig () const
 
size_t getNumDiscardedSamples () const
 
void addParameter (Parameter *val)
 Add a parameter to this DSMSensor.
 
const std::list< const Parameter * > & getParameters () const
 Get list of parameters.
 
const ParametergetParameter (const std::string &name) const
 Fetch a parameter by name.
 
void setLatency (float val)
 Set desired latency, providing some control over the response time vs buffer efficiency tradeoff.
 
float getLatency () const
 
void setTimeClippingWindow (const nidas::util::UTime &startTime, const nidas::util::UTime &endTime)
 The sample output can have a time window which clips the samples outside the window.
 
virtual xercesc::DOMElement * toDOMParent (xercesc::DOMElement *parent, bool complete) const
 Create a DOMElement and append it to the parent.
 
virtual xercesc::DOMElement * toDOMElement (xercesc::DOMElement *node, bool complete) const
 Add my content into a DOMElement.
 

Static Public Member Functions

static const XMLChgetNamespaceURI ()
 

Protected Member Functions

 CVIOutput (CVIOutput &, IOChannel *)
 Copy constructor, with a new IOChannel.
 
size_t incrementDiscardedSamples ()
 
SampleConnectionRequestergetSampleConnectionRequester ()
 
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 XMLChnamespaceURI = 0
 

Constructor & Destructor Documentation

◆ CVIOutput() [1/3]

CVIOutput::CVIOutput ( )

Referenced by clone().

◆ CVIOutput() [2/3]

CVIOutput::CVIOutput ( IOChannel * iochannel,
SampleConnectionRequester * rqstr = 0 )

◆ ~CVIOutput()

CVIOutput::~CVIOutput ( )

◆ CVIOutput() [3/3]

CVIOutput::CVIOutput ( CVIOutput & x,
IOChannel * ioc )
protected

Member Function Documentation

◆ addParameter()

void SampleOutputBase::addParameter ( Parameter * val)
inherited

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

◆ addRequestedSampleTag()

void CVIOutput::addRequestedSampleTag ( SampleTag * tag)
virtual

◆ addSourceSampleTag()

void SampleOutputBase::addSourceSampleTag ( const SampleTag * tag)
virtualinherited

◆ addSourceSampleTags()

void SampleOutputBase::addSourceSampleTags ( const std::list< const SampleTag * > & tags)
virtualinherited

◆ clone()

CVIOutput * CVIOutput::clone ( IOChannel * iochannel = 0)
virtual

Implements nidas::core::SampleOutput.

References CVIOutput().

◆ close()

void SampleOutputBase::close ( )
virtualinherited

◆ connected()

SampleOutput * SampleOutputBase::connected ( IOChannel * ochan)
virtualinherited

◆ createNextFile()

void SampleOutputBase::createNextFile ( dsm_time_t tt)
inherited

◆ derivedDataNotify()

void CVIOutput::derivedDataNotify ( const DerivedDataReader * s)
virtual
Exceptions

)

Implements nidas::core::DerivedDataClient.

References _tas.

◆ disconnect()

void SampleOutputBase::disconnect ( )
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().

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

◆ flush()

void nidas::dynld::raf::CVIOutput::flush ( )
throw ( )
inlinevirtual

Implementation of SampleClient::flush().

Implements nidas::core::SampleClient.

◆ fromDOMElement()

void SampleOutputBase::fromDOMElement ( const xercesc::DOMElement * node)
virtualinherited

◆ getDSMConfig()

const DSMConfig * nidas::core::SampleOutputBase::getDSMConfig ( ) const
inlinevirtualinherited

◆ getFd()

int SampleOutputBase::getFd ( ) const
virtualinherited

◆ getIOChannel()

IOChannel * nidas::core::SampleOutputBase::getIOChannel ( ) const
inlinevirtualinherited

◆ getLatency()

float nidas::core::SampleOutputBase::getLatency ( ) const
inlinevirtualinherited

◆ getName()

const std::string & nidas::core::SampleOutputBase::getName ( ) const
inlinevirtualinherited

◆ getNamespaceURI()

static const XMLCh * nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited

◆ getNextFileTime()

dsm_time_t nidas::core::SampleOutputBase::getNextFileTime ( ) const
inlineinherited

◆ getNumDiscardedSamples()

size_t nidas::core::SampleOutputBase::getNumDiscardedSamples ( ) const
inlineinherited

◆ getOriginal()

SampleOutput * nidas::core::SampleOutputBase::getOriginal ( ) const
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.

◆ getParameter()

const Parameter * SampleOutputBase::getParameter ( const std::string & name) const
inherited

Fetch a parameter by name.

Returns a NULL pointer if no such parameter exists.

References nidas::core::SampleOutputBase::_parameters.

◆ getParameters()

const std::list< const Parameter * > & nidas::core::SampleOutputBase::getParameters ( ) const
inlineinherited

◆ getReconnectDelaySecs()

int SampleOutputBase::getReconnectDelaySecs ( ) const
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().

◆ getRequestedSampleTags()

std::list< const SampleTag * > SampleOutputBase::getRequestedSampleTags ( ) const
virtualinherited

◆ getSampleConnectionRequester()

SampleConnectionRequester * nidas::core::SampleOutputBase::getSampleConnectionRequester ( )
inlineprotectedinherited

◆ getSourceSampleTags()

list< const SampleTag * > SampleOutputBase::getSourceSampleTags ( ) const
virtualinherited

◆ incrementDiscardedSamples()

size_t nidas::core::SampleOutputBase::incrementDiscardedSamples ( )
inlineprotectedinherited

◆ isRaw()

bool nidas::core::SampleOutputBase::isRaw ( ) const
inlinevirtualinherited

◆ receive()

bool CVIOutput::receive ( const Sample * samp)
virtual

◆ requestConnection()

void CVIOutput::requestConnection ( SampleConnectionRequester * requester)
virtual

◆ setDSMConfig()

void nidas::core::SampleOutputBase::setDSMConfig ( const DSMConfig * val)
inlinevirtualinherited

◆ setHeaderSource()

void nidas::core::SampleOutputBase::setHeaderSource ( HeaderSource * val)
inlinevirtualinherited

◆ setIOChannel()

void CVIOutput::setIOChannel ( IOChannel * val)
virtual

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

◆ setLatency()

void nidas::core::SampleOutputBase::setLatency ( float val)
inlinevirtualinherited

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.

Parameters
valLatency, in seconds.
Exceptions
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().

◆ setName()

void nidas::core::SampleOutputBase::setName ( const std::string & val)
inlinevirtualinherited

◆ setReconnectDelaySecs()

void SampleOutputBase::setReconnectDelaySecs ( int val)
virtualinherited

◆ setTimeClippingWindow()

void SampleOutputBase::setTimeClippingWindow ( const nidas::util::UTime & startTime,
const nidas::util::UTime & endTime )
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().

◆ toDOMElement()

xercesc::DOMElement * DOMable::toDOMElement ( xercesc::DOMElement * node,
bool complete ) const
virtualinherited

◆ toDOMParent()

xercesc::DOMElement * DOMable::toDOMParent ( xercesc::DOMElement * parent,
bool complete ) const
virtualinherited

Create a DOMElement and append it to the parent.

Exceptions
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.

◆ write()

size_t SampleOutputBase::write ( const void * buf,
size_t len )
virtualinherited

Raw write method, typically used to write the initial header.

Exceptions
nidas::util::IOException

Implements nidas::core::SampleOutput.

References nidas::core::SampleOutputBase::_iochan, nidas::core::getSample(), len, and nidas::core::IOChannel::write().

Member Data Documentation

◆ _connectionRequester

SampleConnectionRequester* nidas::core::SampleOutputBase::_connectionRequester
privateinherited

◆ _constParameters

std::list<const Parameter*> nidas::core::SampleOutputBase::_constParameters
privateinherited

List of const pointers to Parameters for providing via getParameters().

Referenced by nidas::core::SampleOutputBase::addParameter(), and nidas::core::SampleOutputBase::getParameters().

◆ _constRequestedTags

std::list<const SampleTag*> nidas::core::SampleOutputBase::_constRequestedTags
privateinherited

◆ _dsm

const DSMConfig* nidas::core::SampleOutputBase::_dsm
privateinherited

◆ _endTime

dsm_time_t nidas::core::SampleOutputBase::_endTime
privateinherited

◆ _headerSource

HeaderSource* nidas::core::SampleOutputBase::_headerSource
privateinherited

◆ _iochan

IOChannel* nidas::core::SampleOutputBase::_iochan
privateinherited

◆ _latency

float nidas::core::SampleOutputBase::_latency
privateinherited

◆ _name

std::string nidas::core::SampleOutputBase::_name
protectedinherited

◆ _nextFileTime

dsm_time_t nidas::core::SampleOutputBase::_nextFileTime
privateinherited

◆ _nsamplesDiscarded

size_t nidas::core::SampleOutputBase::_nsamplesDiscarded
privateinherited

◆ _original

SampleOutput* nidas::core::SampleOutputBase::_original
privateinherited

Pointer to the SampleOutput that I was cloned from.

Referenced by nidas::core::SampleOutputBase::getOriginal().

◆ _ostr

std::ostringstream nidas::dynld::raf::CVIOutput::_ostr
private

Referenced by receive().

◆ _parameters

std::map<std::string,Parameter*> nidas::core::SampleOutputBase::_parameters
privateinherited

◆ _reconnectDelaySecs

int nidas::core::SampleOutputBase::_reconnectDelaySecs
privateinherited

◆ _requestedTags

std::list<SampleTag*> nidas::core::SampleOutputBase::_requestedTags
privateinherited

◆ _sourceTags

std::list<const SampleTag*> nidas::core::SampleOutputBase::_sourceTags
privateinherited

◆ _startTime

dsm_time_t nidas::core::SampleOutputBase::_startTime
privateinherited

Clipping time window.

Samples outside the given time window will not pass.

Referenced by nidas::core::SampleOutputBase::receive(), and nidas::core::SampleOutputBase::setTimeClippingWindow().

◆ _tagsMutex

nidas::util::Mutex nidas::core::SampleOutputBase::_tagsMutex
mutableprivateinherited

◆ _tas

float nidas::dynld::raf::CVIOutput::_tas
private

True airspeed from DerivedDataReader.

Referenced by derivedDataNotify(), and receive().

◆ _tt0

dsm_time_t nidas::dynld::raf::CVIOutput::_tt0
private

Referenced by receive().

◆ _variables

std::vector<const Variable*> nidas::dynld::raf::CVIOutput::_variables
private

Referenced by addRequestedSampleTag().

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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