27#ifndef NIDAS_CORE_VARIABLECONVERTER_H
28#define NIDAS_CORE_VARIABLECONVERTER_H
37namespace nidas {
namespace core {
142 "fromString() not supported in this VariableConverter");
248 virtual std::string
toString()
const override;
294 virtual std::string
toString()
const override;
311 static double eval(
double x,
float *p,
unsigned int np);
322 if (np == 0)
return y;
323 for (
unsigned int i = np - 1; i > 0; i--) {
A template subclass which implements the CalFileHandler interface by calling a function object.
Definition VariableConverter.h:338
F _handler
Definition VariableConverter.h:349
virtual bool handleCalFileRecord(nidas::core::CalFile *cf)
Definition VariableConverter.h:344
CalFileHandlerFunction(F &fo)
Definition VariableConverter.h:340
This is the interface for handling CalFile records as they are read by a VariableConverter.
Definition VariableConverter.h:58
CalFileHandler()
Definition VariableConverter.h:60
virtual ~CalFileHandler()
Definition VariableConverter.h:65
virtual bool handleCalFileRecord(nidas::core::CalFile *)=0
A class for reading ASCII files containing a time series of calibration data.
Definition CalFile.h:166
Interface of an object that can be instantiated from a DOM element, via the fromDOMElement method,...
Definition DOMable.h:51
Class that should include all that is configurable about a DSM.
Definition DSMConfig.h:55
DSMSensor provides the basic support for reading, processing and distributing samples from a sensor a...
Definition DSMSensor.h:88
Why isn't this a sublcass of Polynomial which sets MAX_NUM_COEFFS to 2?
Definition VariableConverter.h:227
void fromDOMElement(const xercesc::DOMElement *)
Definition VariableConverter.cc:431
float _slope
Definition VariableConverter.h:262
float getSlope() const
Definition VariableConverter.h:236
void setSlope(float val)
Definition VariableConverter.h:234
Linear * clone() const
Definition VariableConverter.cc:342
void setIntercept(float val)
Definition VariableConverter.h:238
void reset()
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
Definition VariableConverter.cc:349
virtual std::string toString() const override
Generate a string description of this VariableConverter.
Definition VariableConverter.cc:381
float _intercept
Definition VariableConverter.h:264
float getIntercept() const
Definition VariableConverter.h:240
double convert(dsm_time_t t, double val)
Definition VariableConverter.cc:375
void parseFields(CalFile *cf)
Parse the fields in the current CalFile record for the particular settings and coefficients needed by...
Definition VariableConverter.cc:357
void fromString(const std::string &)
Definition VariableConverter.cc:390
Linear()
Definition VariableConverter.cc:337
Definition Parameter.h:47
Definition VariableConverter.h:269
Polynomial * clone() const
Definition VariableConverter.cc:469
const float * getCoefficients(unsigned int &n) const
Definition VariableConverter.h:282
std::vector< float > _coefs
Definition VariableConverter.h:315
void reset()
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
Definition VariableConverter.cc:489
void fromDOMElement(const xercesc::DOMElement *)
Definition VariableConverter.cc:589
const std::vector< float > & getCoefficients() const
Definition VariableConverter.h:280
void fromString(const std::string &)
Definition VariableConverter.cc:552
Polynomial()
Definition VariableConverter.cc:462
static double eval(double x, float *p, unsigned int np)
This is static and defined inline below so the implementation can be shared with at least the one cla...
Definition VariableConverter.h:319
double convert(dsm_time_t t, double val)
Definition VariableConverter.cc:534
virtual std::string toString() const override
Generate a string description of this VariableConverter.
Definition VariableConverter.cc:541
void parseFields(CalFile *cf)
Parse the fields in the current CalFile record for the particular settings and coefficients needed by...
Definition VariableConverter.cc:500
void setCoefficients(const std::vector< float > &vals)
Definition VariableConverter.cc:474
Definition VariableConverter.h:70
void setCalFileHandler(CalFileHandler *)
Set the instance of CalFileHandler which will be called and given first option to handle new CalFile ...
Definition VariableConverter.cc:331
VariableConverter & operator=(const VariableConverter &x)
Assignment.
Definition VariableConverter.cc:91
const Parameter * getParameter(const std::string &name) const
Fetch a parameter by name.
Definition VariableConverter.cc:160
virtual ~VariableConverter()
Definition VariableConverter.cc:80
virtual void reset()=0
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile.
virtual std::string toString() const =0
Generate a string description of this VariableConverter.
std::map< std::string, Parameter * > _parameters
Map of parameters by name.
Definition VariableConverter.h:198
virtual VariableConverter * clone() const =0
VariableConverter()
Definition VariableConverter.cc:50
void addParameter(Parameter *val)
Add a parameter to this VariableConverter.
Definition VariableConverter.cc:135
const DSMConfig * getDSMConfig() const
Definition VariableConverter.cc:125
CalFileHandler * _handler
Definition VariableConverter.h:220
virtual const std::string & getUnits() const
Definition VariableConverter.h:114
virtual double convert(dsm_time_t, double v)=0
static VariableConverter * createVariableConverter(XDOMElement &child)
Definition VariableConverter.cc:182
void setVariable(const Variable *val)
Definition VariableConverter.h:116
const CalFile * getCalFile() const
Definition VariableConverter.h:186
void setUnits(const std::string &val)
Definition VariableConverter.h:112
const std::list< const Parameter * > & getParameters() const
Get list of parameters.
Definition VariableConverter.h:163
std::list< const Parameter * > _constParameters
List of const pointers to Parameters for providing via getParameters().
Definition VariableConverter.h:204
virtual void readCalFile(dsm_time_t)
Before a VariableConverter can be used for a conversion, the converter's CalFile, if it exists,...
Definition VariableConverter.cc:273
static VariableConverter * createFromString(const std::string &)
Definition VariableConverter.cc:167
const DSMSensor * getDSMSensor() const
Definition VariableConverter.cc:112
void setCalFile(CalFile *)
Definition VariableConverter.cc:256
const Variable * getVariable() const
Definition VariableConverter.h:118
virtual void parseFields(CalFile *cf)=0
Parse the fields in the current CalFile record for the particular settings and coefficients needed by...
void abortCalFile(const std::string &what)
Definition VariableConverter.cc:264
std::string _units
Definition VariableConverter.h:193
const Variable * _variable
Definition VariableConverter.h:206
void fromDOMElement(const xercesc::DOMElement *)
Definition VariableConverter.cc:211
CalFile * getCalFile()
Definition VariableConverter.h:181
virtual void fromString(const std::string &)
Definition VariableConverter.h:139
CalFile * _calFile
Definition VariableConverter.h:218
Class describing a sampled variable.
Definition Variable.h:47
Wrapper class providing convienence methods to access the string attributes of a DOMElement.
Definition XDOM.h:45
Definition InvalidParameterException.h:35
CalFileHandler * makeCalFileHandler(F _fo)
Helper function to deduce the function object type and return a new instance of the CalFileHandlerFun...
Definition VariableConverter.h:370
Sample * getSample(sampleType type, unsigned int len)
A convienence method for getting a sample of an enumerated type from a pool.
Definition Sample.cc:70
long long dsm_time_t
Posix time in microseconds, the number of non-leap microseconds since 1970 Jan 1 00:00 UTC.
Definition Sample.h:62
Root namespace for the NCAR In-Situ Data Acquisition Software.
Definition A2DConverter.h:31
static int char **FILE * fp
Definition sing.cc:942