nidas  v1.2-1520
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
nidas::dynld::raf::CVIProcessor Class Reference

Processor to support Counter-flow Virtual Impactor. More...

#include <CVIProcessor.h>

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

Public Member Functions

 CVIProcessor ()
 
 ~CVIProcessor ()
 
void flush () throw ()
 Implementation of SampleSource and SampleClient flush(). More...
 
void addRequestedSampleTag (SampleTag *tag) throw (nidas::util::InvalidParameterException)
 Add a request for a SampleTag from this SampleIOProcessor. More...
 
void connectSource (SampleSource *) override
 Do common operations necessary when a input has connected: More...
 
void disconnectSource (SampleSource *) throw ()
 Disconnect a SampleSource from this CVIProcessor. More...
 
void connect (SampleOutput *output) throw ()
 Do common operations necessary when a output has connected: More...
 
void disconnect (SampleOutput *output) throw ()
 Do common operations necessary when a output has disconnected: More...
 
void setD2ADeviceName (const std::string &val)
 
const std::string & getD2ADeviceName () const
 
void setDigIODeviceName (const std::string &val)
 
const std::string & getDigIODeviceName ()
 
bool receive (const Sample *s) throw ()
 The CVIProcessor receive method is configured to received the processed samples from CVI_LV_Input. More...
 
void fromDOMElement (const xercesc::DOMElement *node) throw (nidas::util::InvalidParameterException)
 Initialize myself from a xercesc::DOMElement. More...
 
virtual const std::string & getName () const
 
virtual void setName (const std::string &val)
 
virtual void setOptional (bool val)
 
virtual bool isOptional () const
 
virtual const DSMServicegetService () const
 What DSMService am I associated with? More...
 
virtual void setService (const DSMService *val)
 
virtual const DSMConfiggetDSMConfig () const
 What DSM am I associated with? More...
 
virtual void setDSMConfig (const DSMConfig *val)
 
dsm_sample_id_t getId () const
 
void setSampleId (int val)
 
unsigned int getSampleId () const
 
SampleSourcegetRawSampleSource ()
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More...
 
SampleSourcegetProcessedSampleSource ()
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples. More...
 
virtual std::list< const
SampleTag * > 
getRequestedSampleTags () const
 
void addSampleTag (const SampleTag *tag) throw ()
 Implementation of SampleSource::addSampleTag(). More...
 
void removeSampleTag (const SampleTag *tag) throw ()
 
std::list< const SampleTag * > getSampleTags () const
 Implementation of SampleSource::getSampleTags(). More...
 
SampleTagIterator getSampleTagIterator () const
 Implementation of SampleSource::getSampleTagIterator(). More...
 
void addSampleClient (SampleClient *client) throw ()
 Implementation of SampleSource::addSampleClient(). More...
 
void removeSampleClient (SampleClient *client) throw ()
 Remove a SampleClient from this SampleSource. More...
 
void addSampleClientForTag (SampleClient *client, const SampleTag *tag) throw ()
 Add a Client for a given SampleTag. More...
 
void removeSampleClientForTag (SampleClient *client, const SampleTag *tag) throw ()
 Remove a SampleClient for a given SampleTag from this SampleSource. More...
 
int getClientCount () const throw ()
 How many SampleClients are currently in my list. More...
 
const SampleStatsgetSampleStats () const
 
virtual void addOutput (SampleOutput *val)
 Add an SampleOutput to this SampleIOProcessor. More...
 
virtual const std::list
< SampleOutput * > & 
getOutputs () const
 
void addParameter (Parameter *val) throw (nidas::util::InvalidParameterException)
 Add a parameter to this SampleIOProcessor, which will then own the pointer and will delete it in its destructor. More...
 
const std::list< const
Parameter * > & 
getParameters () const
 Get list of parameters. More...
 
virtual void printStatus (std::ostream &, float, int &) throw ()
 
virtual void init (dsm_time_t) throw ()
 
virtual xercesc::DOMElement * toDOMParent (xercesc::DOMElement *parent, bool complete) const throw (xercesc::DOMException)
 Create a DOMElement and append it to the parent. More...
 
virtual xercesc::DOMElement * toDOMElement (xercesc::DOMElement *node, bool complete) const throw (xercesc::DOMException)
 Add my content into a DOMElement. More...
 

Static Public Member Functions

static const XMLCh * getNamespaceURI ()
 

Protected Member Functions

void attachLVInput (SampleSource *src, const SampleTag *tag) throw (nidas::util::IOException)
 
void removeRequestedSampleTag (SampleTag *tag)
 Allow subclasses to remove requested SampleTags. More...
 

Protected Attributes

SampleSourceSupport _source
 
nidas::util::Mutex _tagsMutex
 
std::list< SampleTag * > _requestedTags
 

Private Member Functions

 CVIProcessor (const CVIProcessor &)
 Copy not supported. More...
 
CVIProcessoroperator= (const CVIProcessor &)
 Assignment not supported. More...
 

Private Attributes

nidas::util::Mutex _connectionMutex
 
std::set< SampleSource * > _connectedSources
 
std::set< SampleOutput * > _connectedOutputs
 
SampleTag_outputSampleTag
 
std::string _d2aDeviceName
 
std::string _digioDeviceName
 
std::vector< bool > _varMatched
 
SampleAverager _averager
 
float _rate
 
dsm_sample_id_t _lvSampleId
 
DSC_AnalogOut _aout
 
ViperDIO _dout
 
unsigned int _numD2A
 
unsigned int _numDigout
 
float _vouts [5]
 
int _douts [4]
 
const Site_site
 

Detailed Description

Processor to support Counter-flow Virtual Impactor.

Constructor & Destructor Documentation

CVIProcessor::CVIProcessor ( )
CVIProcessor::~CVIProcessor ( )
nidas::dynld::raf::CVIProcessor::CVIProcessor ( const CVIProcessor )
private

Copy not supported.

Member Function Documentation

virtual void nidas::core::SampleIOProcessor::addOutput ( SampleOutput val)
inlinevirtualinherited

Add an SampleOutput to this SampleIOProcessor.

This is used to add a desired SampleOutput to this SampleIOProcessor. SampleIOProcessor will own the SampleOutput. Once a SampleSource has connected, then SampleIOProcessor is responsible for do SampleOutput::requestConnection, or SampleOutputRequestThread::addConnectRequest() on all these as-yet disconnected outputs.

References nidas::core::SampleIOProcessor::_origOutputs.

void SampleIOProcessor::addParameter ( Parameter val)
throw (nidas::util::InvalidParameterException
)
inherited

Add a parameter to this SampleIOProcessor, which 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.

void CVIProcessor::addRequestedSampleTag ( SampleTag tag)
throw (nidas::util::InvalidParameterException
)
virtual

Add a request for a SampleTag from this SampleIOProcessor.

This SampleIOProcessor will own the SampleTag.

Reimplemented from nidas::core::SampleIOProcessor.

References nidas::core::SampleIOProcessor::addRequestedSampleTag(), nidas::core::DSMConfig::getSite(), and nidas::core::Variable::setSite().

void nidas::core::SampleIOProcessor::addSampleClient ( SampleClient client)
throw (
)
inlinevirtualinherited
void nidas::core::SampleIOProcessor::addSampleClientForTag ( SampleClient client,
const SampleTag tag 
)
throw (
)
inlinevirtualinherited
void SampleIOProcessor::addSampleTag ( const SampleTag tag)
throw (
)
virtualinherited
void CVIProcessor::attachLVInput ( SampleSource src,
const SampleTag tag 
)
throw (nidas::util::IOException
)
protected
void CVIProcessor::connect ( SampleOutput output)
throw (
)
virtual

Do common operations necessary when a output has connected:

  1. do: output->init().
  2. add output to a list of connected outputs.

Implements nidas::core::SampleConnectionRequester.

References ILOG.

void CVIProcessor::connectSource ( SampleSource source)
overridevirtual
void CVIProcessor::disconnect ( SampleOutput output)
throw (
)
virtual
void CVIProcessor::disconnectSource ( SampleSource source)
throw (
)
virtual

Disconnect a SampleSource from this CVIProcessor.

Calls flush() on the averager and closes the digital and analog outputs.

Implements nidas::core::SampleIOProcessor.

void CVIProcessor::flush ( )
throw (
)
virtual

Implementation of SampleSource and SampleClient flush().

Implements nidas::core::SampleClient.

References nidas::core::SampleClient::flush().

void CVIProcessor::fromDOMElement ( const xercesc::DOMElement *  )
throw (nidas::util::InvalidParameterException
)
virtual
int nidas::core::SampleIOProcessor::getClientCount ( ) const
throw (
)
inlinevirtualinherited
const std::string& nidas::dynld::raf::CVIProcessor::getD2ADeviceName ( ) const
inline
const std::string& nidas::dynld::raf::CVIProcessor::getDigIODeviceName ( )
inline
virtual const DSMConfig* nidas::core::SampleIOProcessor::getDSMConfig ( ) const
inlinevirtualinherited

What DSM am I associated with?

References nidas::core::SampleIOProcessor::_dsm.

dsm_sample_id_t nidas::core::SampleIOProcessor::getId ( ) const
inlineinherited
const std::string & SampleIOProcessor::getName ( ) const
virtualinherited
static const XMLCh* nidas::core::DOMable::getNamespaceURI ( )
inlinestaticinherited
virtual const std::list<SampleOutput*>& nidas::core::SampleIOProcessor::getOutputs ( ) const
inlinevirtualinherited
const std::list<const Parameter*>& nidas::core::SampleIOProcessor::getParameters ( ) const
inlineinherited

Get list of parameters.

References nidas::core::SampleIOProcessor::_constParameters.

SampleSource* nidas::core::SampleIOProcessor::getProcessedSampleSource ( )
inlinevirtualinherited

Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.

SampleClients use this method to get a pointer to whatever sample source they are interested in. Derived classes can return NULL if they are not a SampleSource of processed samples.

Implements nidas::core::SampleSource.

References nidas::core::SampleIOProcessor::_source.

SampleSource* nidas::core::SampleIOProcessor::getRawSampleSource ( )
inlinevirtualinherited

Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.

SampleClients use this method to get a pointer to whatever sample source they are interested in. Derived classes can return NULL if they are not a SampleSource of raw samples.

Implements nidas::core::SampleSource.

std::list< const SampleTag * > SampleIOProcessor::getRequestedSampleTags ( ) const
virtualinherited
unsigned int nidas::core::SampleIOProcessor::getSampleId ( ) const
inlineinherited
const SampleStats& nidas::core::SampleIOProcessor::getSampleStats ( ) const
inlinevirtualinherited
SampleTagIterator nidas::core::SampleIOProcessor::getSampleTagIterator ( ) const
inlinevirtualinherited
std::list<const SampleTag*> nidas::core::SampleIOProcessor::getSampleTags ( ) const
inlinevirtualinherited
virtual const DSMService* nidas::core::SampleIOProcessor::getService ( ) const
inlinevirtualinherited

What DSMService am I associated with?

References nidas::core::SampleIOProcessor::_service.

virtual void nidas::core::SampleIOProcessor::init ( dsm_time_t  )
throw (
)
inlinevirtualinherited
virtual bool nidas::core::SampleIOProcessor::isOptional ( ) const
inlinevirtualinherited
CVIProcessor& nidas::dynld::raf::CVIProcessor::operator= ( const CVIProcessor )
private

Assignment not supported.

virtual void nidas::core::SampleIOProcessor::printStatus ( std::ostream &  ,
float  ,
int &   
)
throw (
)
inlinevirtualinherited
bool CVIProcessor::receive ( const Sample s)
throw (
)
virtual

The CVIProcessor receive method is configured to received the processed samples from CVI_LV_Input.

These samples contain settings for the analog and digital out channels. receive() reads these values and controls the outputs accordingly.

Implements nidas::core::SampleClient.

References nidas::util::BitArray::any(), nidas::core::FLOAT_ST, nidas::core::SampleT< DataT >::getConstDataPtr(), nidas::core::SampleT< DataT >::getDataLength(), nidas::util::Logger::getInstance(), nidas::util::Logger::log(), LOG_ERR, nidas::util::BitArray::setBit(), and nidas::util::Exception::what().

void SampleIOProcessor::removeRequestedSampleTag ( SampleTag tag)
protectedinherited
void nidas::core::SampleIOProcessor::removeSampleClient ( SampleClient c)
throw (
)
inlinevirtualinherited
void nidas::core::SampleIOProcessor::removeSampleClientForTag ( SampleClient c,
const SampleTag  
)
throw (
)
inlinevirtualinherited

Remove a SampleClient for a given SampleTag from this SampleSource.

The pointer to the SampleClient must remain valid, until after it is removed.

Implements nidas::core::SampleSource.

Reimplemented in nidas::dynld::raf::SyncRecordGenerator.

References nidas::core::SampleIOProcessor::_source, and nidas::core::SampleSourceSupport::removeSampleClientForTag().

void SampleIOProcessor::removeSampleTag ( const SampleTag tag)
throw (
)
virtualinherited
void nidas::dynld::raf::CVIProcessor::setD2ADeviceName ( const std::string &  val)
inline
void nidas::dynld::raf::CVIProcessor::setDigIODeviceName ( const std::string &  val)
inline
virtual void nidas::core::SampleIOProcessor::setDSMConfig ( const DSMConfig val)
inlinevirtualinherited
void SampleIOProcessor::setName ( const std::string &  val)
virtualinherited
virtual void nidas::core::SampleIOProcessor::setOptional ( bool  val)
inlinevirtualinherited
void nidas::core::SampleIOProcessor::setSampleId ( int  val)
inlineinherited
virtual void nidas::core::SampleIOProcessor::setService ( const DSMService val)
inlinevirtualinherited
xercesc::DOMElement * DOMable::toDOMElement ( xercesc::DOMElement *  node,
bool  complete 
) const
throw (xercesc::DOMException
)
virtualinherited
xercesc::DOMElement * DOMable::toDOMParent ( xercesc::DOMElement *  parent,
bool  complete 
) const
throw (xercesc::DOMException
)
virtualinherited

Member Data Documentation

DSC_AnalogOut nidas::dynld::raf::CVIProcessor::_aout
private
SampleAverager nidas::dynld::raf::CVIProcessor::_averager
private
std::set<SampleOutput*> nidas::dynld::raf::CVIProcessor::_connectedOutputs
private
std::set<SampleSource*> nidas::dynld::raf::CVIProcessor::_connectedSources
private
nidas::util::Mutex nidas::dynld::raf::CVIProcessor::_connectionMutex
private
std::string nidas::dynld::raf::CVIProcessor::_d2aDeviceName
private
std::string nidas::dynld::raf::CVIProcessor::_digioDeviceName
private
ViperDIO nidas::dynld::raf::CVIProcessor::_dout
private
int nidas::dynld::raf::CVIProcessor::_douts[4]
private
dsm_sample_id_t nidas::dynld::raf::CVIProcessor::_lvSampleId
private
unsigned int nidas::dynld::raf::CVIProcessor::_numD2A
private
unsigned int nidas::dynld::raf::CVIProcessor::_numDigout
private
SampleTag* nidas::dynld::raf::CVIProcessor::_outputSampleTag
private
float nidas::dynld::raf::CVIProcessor::_rate
private
std::list<SampleTag*> nidas::core::SampleIOProcessor::_requestedTags
protectedinherited
const Site* nidas::dynld::raf::CVIProcessor::_site
private
SampleSourceSupport nidas::core::SampleIOProcessor::_source
protectedinherited
nidas::util::Mutex nidas::core::SampleIOProcessor::_tagsMutex
mutableprotectedinherited
std::vector<bool> nidas::dynld::raf::CVIProcessor::_varMatched
private
float nidas::dynld::raf::CVIProcessor::_vouts[5]
private

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