27 #ifndef NIDAS_CORE_VARIABLECONVERTER_H
28 #define NIDAS_CORE_VARIABLECONVERTER_H
37 namespace nidas {
namespace core {
124 virtual void reset() = 0;
134 virtual std::string
toString()
const = 0;
137 throw(nidas::util::InvalidParameterException) {
139 "fromString() not supported in this VariableConverter");
146 throw(nidas::util::InvalidParameterException);
171 throw(nidas::util::InvalidParameterException);
245 throw(nidas::util::InvalidParameterException);
248 throw(nidas::util::InvalidParameterException);
266 void setCoefficients(
const std::vector<float>& vals);
268 void setCoefficients(
const float*
fp,
unsigned int n);
287 throw(nidas::util::InvalidParameterException);
290 throw(nidas::util::InvalidParameterException);
297 static
double eval(
double x,
float *p,
unsigned int np);
301 std::vector<
float> _coefs;
305 inline
double Polynomial::eval(
double x,
float *p,
unsigned int np)
308 if (np == 0)
return y;
309 for (
unsigned int i = np - 1; i > 0; i--) {
CalFile * _calFile
Definition: VariableConverter.h:212
A class for reading ASCII files containing a time series of calibration data.
Definition: CalFile.h:164
virtual ~VariableConverter()
Definition: VariableConverter.cc:80
float getIntercept() const
Definition: VariableConverter.h:234
void fromDOMElement(const xercesc::DOMElement *)
Initialize myself from a xercesc::DOMElement.
Definition: VariableConverter.cc:212
virtual void reset()=0
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile...
Definition: VariableConverter.h:258
void setIntercept(float val)
Definition: VariableConverter.h:232
float _slope
Definition: VariableConverter.h:252
const DSMSensor * getDSMSensor() const
Definition: VariableConverter.cc:112
std::string _units
Definition: VariableConverter.h:187
void setCalFileHandler(CalFileHandler *)
Set the instance of CalFileHandler which will be called and given first option to handle new CalFile ...
Definition: VariableConverter.cc:333
Wrapper class providing convienence methods to access the string attributes of a DOMElement.
Definition: XDOM.h:45
Linear()
Definition: VariableConverter.cc:339
virtual VariableConverter * clone() const =0
virtual void fromString(const std::string &)
Definition: VariableConverter.h:136
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:61
std::map< std::string, Parameter * > _parameters
Map of parameters by name.
Definition: VariableConverter.h:192
const float * getCoefficients(unsigned int &n) const
Definition: VariableConverter.h:272
Class describing a sampled variable.
Definition: Variable.h:46
Class that should include all that is configurable about a DSM.
Definition: DSMConfig.h:55
void setSlope(float val)
Definition: VariableConverter.h:228
CalFileHandler * makeCalFileHandler(F _fo)
Helper function to deduce the function object type and return a new instance of the CalFileHandlerFun...
Definition: VariableConverter.h:356
Interface of an object that can be instantiated from a DOM element, via the fromDOMElement method...
Definition: DOMable.h:51
virtual void parseFields(CalFile *cf)=0
Parse the fields in the current CalFile record for the particular settings and coefficients needed by...
CalFile * getCalFile()
Definition: VariableConverter.h:175
void setVariable(const Variable *val)
Definition: VariableConverter.h:116
float _intercept
Definition: VariableConverter.h:254
VariableConverter & operator=(const VariableConverter &x)
Assignment.
Definition: VariableConverter.cc:91
virtual std::string toString() const =0
Generate a string description of this VariableConverter.
const std::list< const Parameter * > & getParameters() const
Get list of parameters.
Definition: VariableConverter.h:159
F _handler
Definition: VariableConverter.h:335
Linear * clone() const
Definition: VariableConverter.cc:344
Why isn't this a sublcass of Polynomial which sets MAX_NUM_COEFFS to 2?
Definition: VariableConverter.h:220
CalFileHandlerFunction(F &fo)
Definition: VariableConverter.h:326
void addParameter(Parameter *val)
Add a parameter to this VariableConverter.
Definition: VariableConverter.cc:135
const Variable * _variable
Definition: VariableConverter.h:200
float getSlope() const
Definition: VariableConverter.h:230
virtual bool handleCalFileRecord(nidas::core::CalFile *)=0
This is the interface for handling CalFile records as they are read by a VariableConverter.
Definition: VariableConverter.h:57
static VariableConverter * createVariableConverter(XDOMElement &child)
Definition: VariableConverter.cc:183
virtual double convert(dsm_time_t, double v)=0
void setUnits(const std::string &val)
Definition: VariableConverter.h:112
void parseFields(CalFile *cf)
Parse the fields in the current CalFile record for the particular settings and coefficients needed by...
Definition: VariableConverter.cc:359
const Variable * getVariable() const
Definition: VariableConverter.h:118
void setCalFile(CalFile *)
Definition: VariableConverter.cc:258
static VariableConverter * createFromString(const std::string &)
Definition: VariableConverter.cc:167
void fromString(const std::string &)
Definition: VariableConverter.cc:392
A template subclass which implements the CalFileHandler interface by calling a function object...
Definition: VariableConverter.h:323
void fromDOMElement(const xercesc::DOMElement *)
Initialize myself from a xercesc::DOMElement.
Definition: VariableConverter.cc:434
DSMSensor provides the basic support for reading, processing and distributing samples from a sensor a...
Definition: DSMSensor.h:87
Definition: Parameter.h:46
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:275
const Parameter * getParameter(const std::string &name) const
Fetch a parameter by name.
Definition: VariableConverter.cc:160
std::list< const Parameter * > _constParameters
List of const pointers to Parameters for providing via getParameters().
Definition: VariableConverter.h:198
VariableConverter()
Definition: VariableConverter.cc:50
const DSMConfig * getDSMConfig() const
Definition: VariableConverter.cc:125
virtual ~CalFileHandler()
Definition: VariableConverter.h:65
CalFileHandler()
Definition: VariableConverter.h:60
CalFileHandler * _handler
Definition: VariableConverter.h:214
void abortCalFile(const std::string &what)
Definition: VariableConverter.cc:266
double convert(dsm_time_t t, double val)
Definition: VariableConverter.cc:377
virtual const std::string & getUnits() const
Definition: VariableConverter.h:114
virtual bool handleCalFileRecord(nidas::core::CalFile *cf)
Definition: VariableConverter.h:330
Definition: VariableConverter.h:69
const std::vector< float > & getCoefficients() const
Definition: VariableConverter.h:270
static int char **FILE * fp
Definition: sing.cc:928
std::string toString() const
Generate a string description of this VariableConverter.
Definition: VariableConverter.cc:383
void reset()
Reset the converter to invalid or default settings, such as after an error occurs parsing a CalFile...
Definition: VariableConverter.cc:351
const CalFile * getCalFile() const
Definition: VariableConverter.h:180
Definition: InvalidParameterException.h:35