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::core::Linear Class Reference

Why isn't this a sublcass of Polynomial which sets MAX_NUM_COEFFS to 2? More...

#include <VariableConverter.h>

Inheritance diagram for nidas::core::Linear:
Inheritance graph
[legend]

Public Member Functions

 Linear ()
 
Linearclone () const
 
void setSlope (float val)
 
float getSlope () const
 
void setIntercept (float val)
 
float getIntercept () const
 
double convert (dsm_time_t t, double val)
 
void reset ()
 Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
 
void parseFields (CalFile *cf)
 Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.
 
virtual std::string toString () const override
 Generate a string description of this VariableConverter.
 
void fromString (const std::string &)
 
void fromDOMElement (const xercesc::DOMElement *)
 
virtual void readCalFile (dsm_time_t) throw ()
 Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists, needs to be advanced to the right record for the current sample time.
 
void setCalFileHandler (CalFileHandler *)
 Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records.
 
void setUnits (const std::string &val)
 
virtual const std::string & getUnits () const
 
void setVariable (const Variable *val)
 
const VariablegetVariable () const
 
const DSMSensorgetDSMSensor () const
 
const DSMConfiggetDSMConfig () const
 
void addParameter (Parameter *val)
 Add a parameter to this VariableConverter.
 
const std::list< const Parameter * > & getParameters () const
 Get list of parameters.
 
const ParametergetParameter (const std::string &name) const
 Fetch a parameter by name.
 
void setCalFile (CalFile *)
 
CalFilegetCalFile ()
 
const CalFilegetCalFile () const
 
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 VariableConvertercreateVariableConverter (XDOMElement &child)
 
static VariableConvertercreateFromString (const std::string &)
 
static const XMLChgetNamespaceURI ()
 

Protected Member Functions

void abortCalFile (const std::string &what)
 

Protected Attributes

CalFile_calFile
 
CalFileHandler_handler
 

Private Attributes

float _slope
 
float _intercept
 
std::string _units
 
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().
 
const Variable_variable
 

Static Private Attributes

static XMLChnamespaceURI = 0
 

Detailed Description

Why isn't this a sublcass of Polynomial which sets MAX_NUM_COEFFS to 2?

Constructor & Destructor Documentation

◆ Linear()

Linear::Linear ( )

Referenced by clone().

Member Function Documentation

◆ abortCalFile()

void VariableConverter::abortCalFile ( const std::string & what)
protectedinherited

◆ addParameter()

void VariableConverter::addParameter ( Parameter * val)
inherited

◆ clone()

Linear * Linear::clone ( ) const
virtual

Implements nidas::core::VariableConverter.

References Linear().

◆ convert()

double Linear::convert ( dsm_time_t t,
double val )
virtual

◆ createFromString()

VariableConverter * VariableConverter::createFromString ( const std::string & str)
staticinherited

◆ createVariableConverter()

VariableConverter * VariableConverter::createVariableConverter ( XDOMElement & child)
staticinherited

◆ fromDOMElement()

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

◆ fromString()

void Linear::fromString ( const std::string & str)
virtual

◆ getCalFile() [1/2]

CalFile * nidas::core::VariableConverter::getCalFile ( )
inlineinherited

◆ getCalFile() [2/2]

const CalFile * nidas::core::VariableConverter::getCalFile ( ) const
inlineinherited

◆ getDSMConfig()

const DSMConfig * VariableConverter::getDSMConfig ( ) const
inherited

◆ getDSMSensor()

const DSMSensor * VariableConverter::getDSMSensor ( ) const
inherited

◆ getIntercept()

float nidas::core::Linear::getIntercept ( ) const
inline

References _intercept.

◆ getNamespaceURI()

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

◆ getParameter()

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

Fetch a parameter by name.

Returns a NULL pointer if no such parameter exists.

References nidas::core::VariableConverter::_parameters.

Referenced by nidas::dynld::isff::CS_Krypton::fromDOMElement().

◆ getParameters()

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

Get list of parameters.

References nidas::core::VariableConverter::_constParameters.

◆ getSlope()

float nidas::core::Linear::getSlope ( ) const
inline

References _slope.

◆ getUnits()

virtual const std::string & nidas::core::VariableConverter::getUnits ( ) const
inlinevirtualinherited

◆ getVariable()

const Variable * nidas::core::VariableConverter::getVariable ( ) const
inlineinherited

◆ parseFields()

void Linear::parseFields ( CalFile * cf)
virtual

Parse the fields in the current CalFile record for the particular settings and coefficients needed by this converter.

Implements nidas::core::VariableConverter.

References setIntercept(), and setSlope().

◆ readCalFile()

void VariableConverter::readCalFile ( dsm_time_t t)
throw ( )
virtualinherited

Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists, needs to be advanced to the right record for the current sample time.

As records are read, this method calls parseFields() so the VariableConverter subclass can extract the particular information it needs from the CalFile fields, typically coefficients.

For sensors which need to extend the kind of conversions which can be specified by a CalFile, there is a callback function available. See setCalFileHandler().

References DLOG, nidas::util::UTime::format(), and nidas::core::getSample().

Referenced by convert(), nidas::core::Polynomial::convert(), nidas::dynld::isff::CS_Krypton::convert(), nidas::dynld::isff::RebsLinear::convert(), nidas::dynld::isff::NCAR_TRH::convertVariable(), and nidas::dynld::raf::SyncRecordSource::preLoadCalibrations().

◆ reset()

void Linear::reset ( )
virtual

Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.

Implements nidas::core::VariableConverter.

References setIntercept(), and setSlope().

◆ setCalFile()

void VariableConverter::setCalFile ( CalFile * val)
inherited

◆ setCalFileHandler()

void VariableConverter::setCalFileHandler ( CalFileHandler * cfh)
inherited

Set the instance of CalFileHandler which will be called and given first option to handle new CalFile records.

Pass null to disable the callbacks.

References nidas::core::VariableConverter::_handler, and nidas::core::getSample().

◆ setIntercept()

void nidas::core::Linear::setIntercept ( float val)
inline

◆ setSlope()

void nidas::core::Linear::setSlope ( float val)
inline

◆ setUnits()

void nidas::core::VariableConverter::setUnits ( const std::string & val)
inlineinherited

◆ setVariable()

void nidas::core::VariableConverter::setVariable ( const Variable * val)
inlineinherited

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

◆ toString()

std::string Linear::toString ( ) const
overridevirtual

Generate a string description of this VariableConverter.

May be used in meta-data, for example Netcdf comment.

Implements nidas::core::VariableConverter.

References _intercept, _slope, nidas::core::getSample(), and nidas::core::VariableConverter::getUnits().

Member Data Documentation

◆ _calFile

CalFile* nidas::core::VariableConverter::_calFile
protectedinherited

◆ _constParameters

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

◆ _handler

CalFileHandler* nidas::core::VariableConverter::_handler
protectedinherited

◆ _intercept

float nidas::core::Linear::_intercept
private

◆ _parameters

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

◆ _slope

float nidas::core::Linear::_slope
private

Referenced by convert(), getSlope(), setSlope(), and toString().

◆ _units

std::string nidas::core::VariableConverter::_units
privateinherited

◆ _variable

const Variable* nidas::core::VariableConverter::_variable
privateinherited

◆ namespaceURI

XMLCh * DOMable::namespaceURI = 0
staticprivateinherited

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