nidas v1.2.3
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static 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().
 
void addRequestedSampleTag (SampleTag *tag)
 
void connectSource (SampleSource *) override
 Do common operations necessary when a input has connected:
 
void disconnectSource (SampleSource *) throw ()
 Disconnect a SampleSource from this CVIProcessor.
 
void connect (SampleOutput *output) throw ()
 Do common operations necessary when a output has connected:
 
void disconnect (SampleOutput *output) throw ()
 Do common operations necessary when a output has disconnected:
 
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.
 
void fromDOMElement (const xercesc::DOMElement *node)
 
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?
 
virtual void setService (const DSMService *val)
 
virtual const DSMConfiggetDSMConfig () const
 What DSM am I associated with?
 
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.
 
SampleSourcegetProcessedSampleSource ()
 Several objects in NIDAS can be both a SampleSource of raw Samples and processed Samples.
 
virtual std::list< const SampleTag * > getRequestedSampleTags () const
 
void addSampleTag (const SampleTag *tag) throw ()
 Implementation of SampleSource::addSampleTag().
 
void removeSampleTag (const SampleTag *tag) throw ()
 
std::list< const SampleTag * > getSampleTags () const
 Implementation of SampleSource::getSampleTags().
 
SampleTagIterator getSampleTagIterator () const
 Implementation of SampleSource::getSampleTagIterator().
 
void addSampleClient (SampleClient *client) throw ()
 Implementation of SampleSource::addSampleClient().
 
void removeSampleClient (SampleClient *client) throw ()
 Remove a SampleClient from this SampleSource.
 
void addSampleClientForTag (SampleClient *client, const SampleTag *tag) throw ()
 Add a Client for a given SampleTag.
 
void removeSampleClientForTag (SampleClient *client, const SampleTag *tag) throw ()
 Remove a SampleClient for a given SampleTag from this SampleSource.
 
int getClientCount () const throw ()
 How many SampleClients are currently in my list.
 
const SampleStatsgetSampleStats () const
 
virtual void addOutput (SampleOutput *val)
 Add an SampleOutput to this SampleIOProcessor.
 
virtual const std::list< SampleOutput * > & getOutputs () const
 
void addParameter (Parameter *val)
 Add a parameter to this SampleIOProcessor, which will then own the pointer and will delete it in its destructor.
 
const std::list< const Parameter * > & getParameters () const
 Get list of parameters.
 
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
 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

void attachLVInput (SampleSource *src, const SampleTag *tag)
 
void removeRequestedSampleTag (SampleTag *tag)
 Allow subclasses to remove requested SampleTags.
 

Protected Attributes

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

Private Member Functions

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

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
 
std::string _name
 
dsm_sample_id_t _id
 
std::list< const SampleTag * > _constRequestedTags
 
std::list< SampleOutput * > _origOutputs
 
bool _optional
 
const DSMService_service
 What service am I a part of?
 
const DSMConfig_dsm
 Or, what DSM am I a part of?
 
std::list< Parameter * > _parameters
 
std::list< const Parameter * > _constParameters
 

Static Private Attributes

static XMLChnamespaceURI = 0
 

Detailed Description

Processor to support Counter-flow Virtual Impactor.

Constructor & Destructor Documentation

◆ CVIProcessor() [1/2]

CVIProcessor::CVIProcessor ( )

◆ ~CVIProcessor()

CVIProcessor::~CVIProcessor ( )

◆ CVIProcessor() [2/2]

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

Copy not supported.

Member Function Documentation

◆ addOutput()

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.

Referenced by nidas::core::SampleIOProcessor::fromDOMElement().

◆ addParameter()

void SampleIOProcessor::addParameter ( Parameter * val)
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.

Exceptions
nidas::util::InvalidParameterException

References nidas::core::SampleIOProcessor::_constParameters, and nidas::core::SampleIOProcessor::_parameters.

Referenced by nidas::core::SampleIOProcessor::fromDOMElement().

◆ addRequestedSampleTag()

void CVIProcessor::addRequestedSampleTag ( SampleTag * tag)
virtual

◆ addSampleClient()

void nidas::core::SampleIOProcessor::addSampleClient ( SampleClient * client)
throw ( )
inlinevirtualinherited

◆ addSampleClientForTag()

void nidas::core::SampleIOProcessor::addSampleClientForTag ( SampleClient * client,
const SampleTag * tag )
throw ( )
inlinevirtualinherited

◆ addSampleTag()

void SampleIOProcessor::addSampleTag ( const SampleTag * tag)
throw ( )
virtualinherited

◆ attachLVInput()

void CVIProcessor::attachLVInput ( SampleSource * src,
const SampleTag * tag )
protected

◆ connect()

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.

◆ connectSource()

void CVIProcessor::connectSource ( SampleSource * source)
overridevirtual

◆ disconnect()

void CVIProcessor::disconnect ( SampleOutput * output)
throw ( )
virtual

Do common operations necessary when a output has disconnected:

  1. do: output->close().
  2. remove output from a list of connected outputs.

Implements nidas::core::SampleConnectionRequester.

References nidas::core::SampleOutputRequestThread::getInstance(), nidas::core::SampleOutput::getOriginal(), nidas::core::getSample(), and LOG_ERR.

◆ disconnectSource()

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.

◆ flush()

void CVIProcessor::flush ( )
throw ( )
virtual

◆ fromDOMElement()

void CVIProcessor::fromDOMElement ( const xercesc::DOMElement * node)
virtual

◆ getClientCount()

int nidas::core::SampleIOProcessor::getClientCount ( ) const
throw ( )
inlinevirtualinherited

How many SampleClients are currently in my list.

Exceptions

)

Implements nidas::core::SampleSource.

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

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

◆ getD2ADeviceName()

const std::string & nidas::dynld::raf::CVIProcessor::getD2ADeviceName ( ) const
inline

References _d2aDeviceName.

Referenced by attachLVInput().

◆ getDigIODeviceName()

const std::string & nidas::dynld::raf::CVIProcessor::getDigIODeviceName ( )
inline

References _digioDeviceName.

Referenced by attachLVInput().

◆ getDSMConfig()

virtual const DSMConfig * nidas::core::SampleIOProcessor::getDSMConfig ( ) const
inlinevirtualinherited

What DSM am I associated with?

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

Referenced by addRequestedSampleTag().

◆ getId()

dsm_sample_id_t nidas::core::SampleIOProcessor::getId ( ) const
inlineinherited

◆ getName()

const std::string & SampleIOProcessor::getName ( ) const
virtualinherited

◆ getNamespaceURI()

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

◆ getOutputs()

virtual const std::list< SampleOutput * > & nidas::core::SampleIOProcessor::getOutputs ( ) const
inlinevirtualinherited

◆ getParameters()

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

Get list of parameters.

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

Referenced by fromDOMElement().

◆ getProcessedSampleSource()

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.

◆ getRawSampleSource()

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.

◆ getRequestedSampleTags()

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

◆ getSampleId()

unsigned int nidas::core::SampleIOProcessor::getSampleId ( ) const
inlineinherited

◆ getSampleStats()

const SampleStats & nidas::core::SampleIOProcessor::getSampleStats ( ) const
inlinevirtualinherited

◆ getSampleTagIterator()

SampleTagIterator nidas::core::SampleIOProcessor::getSampleTagIterator ( ) const
inlinevirtualinherited

◆ getSampleTags()

std::list< const SampleTag * > nidas::core::SampleIOProcessor::getSampleTags ( ) const
inlinevirtualinherited

◆ getService()

virtual const DSMService * nidas::core::SampleIOProcessor::getService ( ) const
inlinevirtualinherited

What DSMService am I associated with?

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

◆ init()

virtual void nidas::core::SampleIOProcessor::init ( dsm_time_t )
throw ( )
inlinevirtualinherited

◆ isOptional()

virtual bool nidas::core::SampleIOProcessor::isOptional ( ) const
inlinevirtualinherited

◆ operator=()

CVIProcessor & nidas::dynld::raf::CVIProcessor::operator= ( const CVIProcessor & )
private

Assignment not supported.

◆ printStatus()

virtual void nidas::core::SampleIOProcessor::printStatus ( std::ostream & ,
float ,
int &  )
throw ( )
inlinevirtualinherited

◆ receive()

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::core::FLOAT_ST, nidas::core::Sample::getDataLength(), nidas::core::getSample(), and LOG_ERR.

◆ removeRequestedSampleTag()

void SampleIOProcessor::removeRequestedSampleTag ( SampleTag * tag)
protectedinherited

◆ removeSampleClient()

void nidas::core::SampleIOProcessor::removeSampleClient ( SampleClient * c)
throw ( )
inlinevirtualinherited

Remove a SampleClient from this SampleSource.

Exceptions

)

Implements nidas::core::SampleSource.

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

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

◆ removeSampleClientForTag()

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.

Exceptions

)

Implements nidas::core::SampleSource.

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

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

◆ removeSampleTag()

void SampleIOProcessor::removeSampleTag ( const SampleTag * )
throw ( )
virtualinherited
Exceptions

)

Implements nidas::core::SampleSource.

◆ setD2ADeviceName()

void nidas::dynld::raf::CVIProcessor::setD2ADeviceName ( const std::string & val)
inline

References _d2aDeviceName, and nidas::core::getSample().

Referenced by fromDOMElement().

◆ setDigIODeviceName()

void nidas::dynld::raf::CVIProcessor::setDigIODeviceName ( const std::string & val)
inline

◆ setDSMConfig()

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

◆ setName()

void SampleIOProcessor::setName ( const std::string & val)
virtualinherited

◆ setOptional()

virtual void nidas::core::SampleIOProcessor::setOptional ( bool val)
inlinevirtualinherited

◆ setSampleId()

void nidas::core::SampleIOProcessor::setSampleId ( int val)
inlineinherited

◆ setService()

virtual void nidas::core::SampleIOProcessor::setService ( const DSMService * val)
inlinevirtualinherited

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

Member Data Documentation

◆ _aout

DSC_AnalogOut nidas::dynld::raf::CVIProcessor::_aout
private

Referenced by attachLVInput().

◆ _averager

SampleAverager nidas::dynld::raf::CVIProcessor::_averager
private

◆ _connectedOutputs

std::set<SampleOutput*> nidas::dynld::raf::CVIProcessor::_connectedOutputs
private

Referenced by flush(), and ~CVIProcessor().

◆ _connectedSources

std::set<SampleSource*> nidas::dynld::raf::CVIProcessor::_connectedSources
private

Referenced by connectSource().

◆ _connectionMutex

nidas::util::Mutex nidas::dynld::raf::CVIProcessor::_connectionMutex
private

Referenced by connectSource().

◆ _constParameters

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

◆ _constRequestedTags

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

◆ _d2aDeviceName

std::string nidas::dynld::raf::CVIProcessor::_d2aDeviceName
private

◆ _digioDeviceName

std::string nidas::dynld::raf::CVIProcessor::_digioDeviceName
private

◆ _dout

ViperDIO nidas::dynld::raf::CVIProcessor::_dout
private

Referenced by attachLVInput().

◆ _douts

int nidas::dynld::raf::CVIProcessor::_douts[4]
private

Referenced by attachLVInput().

◆ _dsm

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

◆ _id

dsm_sample_id_t nidas::core::SampleIOProcessor::_id
privateinherited

◆ _lvSampleId

dsm_sample_id_t nidas::dynld::raf::CVIProcessor::_lvSampleId
private

Referenced by attachLVInput(), and connectSource().

◆ _name

std::string nidas::core::SampleIOProcessor::_name
privateinherited

◆ _numD2A

unsigned int nidas::dynld::raf::CVIProcessor::_numD2A
private

Referenced by attachLVInput().

◆ _numDigout

unsigned int nidas::dynld::raf::CVIProcessor::_numDigout
private

Referenced by attachLVInput().

◆ _optional

bool nidas::core::SampleIOProcessor::_optional
privateinherited

◆ _origOutputs

std::list<SampleOutput*> nidas::core::SampleIOProcessor::_origOutputs
privateinherited

◆ _outputSampleTag

SampleTag* nidas::dynld::raf::CVIProcessor::_outputSampleTag
private

Referenced by addRequestedSampleTag().

◆ _parameters

std::list<Parameter*> nidas::core::SampleIOProcessor::_parameters
privateinherited

◆ _rate

float nidas::dynld::raf::CVIProcessor::_rate
private

Referenced by addRequestedSampleTag().

◆ _requestedTags

std::list<SampleTag*> nidas::core::SampleIOProcessor::_requestedTags
protectedinherited

◆ _service

const DSMService* nidas::core::SampleIOProcessor::_service
privateinherited

◆ _site

const Site* nidas::dynld::raf::CVIProcessor::_site
private

Referenced by addRequestedSampleTag().

◆ _source

SampleSourceSupport nidas::core::SampleIOProcessor::_source
protectedinherited

◆ _tagsMutex

nidas::util::Mutex nidas::core::SampleIOProcessor::_tagsMutex
mutableprotectedinherited

◆ _varMatched

std::vector<bool> nidas::dynld::raf::CVIProcessor::_varMatched
private

Referenced by addRequestedSampleTag().

◆ _vouts

float nidas::dynld::raf::CVIProcessor::_vouts[5]
private

Referenced by attachLVInput().

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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