26 #ifndef NIDAS_DYNLD_A2DSENSOR_H
27 #define NIDAS_DYNLD_A2DSENSOR_H
38 namespace nidas {
namespace dynld {
40 using namespace nidas::core;
71 bool process(
const Sample* insamp,std::list<const Sample*>& results)
throw();
78 virtual int getMaxNumChannels()
const = 0;
88 virtual void setA2DParameters(
int ichan,
int gain,
int bipolar)
94 virtual void getA2DParameters(
int ichan,
int& gain,
int& bipolar)
const;
99 int getGain(
int ichan)
const;
105 int getBipolar(
int ichan)
const;
113 virtual void getBasicConversion(
int ichan,
float& intercept,
float& slope)
const = 0;
120 virtual void setConversionCorrection(
int ichan,
float intercept,
127 void getConversion(
int ichan,
float& intercept,
float& slope)
const;
135 if (ichan < 0 || ichan >= _maxNChannels)
return floatNAN;
136 return _convSlopes[ichan];
145 if (ichan < 0 || ichan >= _maxNChannels)
return floatNAN;
146 return _convIntercepts[ichan];
182 assert((
void*)&(cfg().filterData[0]) == (
void*)&npts);
183 cfg().nFilterData =
sizeof(int);
204 assert((
void*)&(cfg().filterData[0]) == (
void*)&
rate);
205 cfg().nFilterData =
sizeof(int);
224 : nvars(n),nvalues(0),stag(0),channels(nvars) {}
226 stag(x.stag),channels(x.channels)
255 void initParameters();
A2D configuration information that is sent to the A2D device module.
Definition: A2DSensor.h:157
A2DBoxcarConfig(int n)
Definition: A2DSensor.h:177
A2DSampleConfig()
Definition: A2DSensor.h:160
SampleTag * stag
Definition: A2DSensor.h:243
std::vector< A2DSampleInfo > _sampleInfos
Definition: A2DSensor.h:247
float * _convIntercepts
Conversion offset for each A2D channel when converting from A2D counts to voltage.
Definition: A2DSensor.h:274
float getIntercept(int ichan) const
Get the current conversion intercept, which includes any correction as set by setConversionCorrection...
Definition: A2DSensor.h:143
std::vector< int > channels
Definition: A2DSensor.h:244
float * _convSlopes
Conversion factor for each channel when converting from A2D counts to voltage.
Definition: A2DSensor.h:266
int _scanRate
Requested A2D sample rate before decimation.
Definition: A2DSensor.h:280
int _prevChan
Definition: A2DSensor.h:282
nidas_a2d_sample_config _cfg
Definition: A2DSensor.h:164
~A2DSampleInfo()
Definition: A2DSensor.h:240
A2D configuration for box-car averaging of A2D samples.
Definition: A2DSensor.h:174
const float floatNAN
Value of a float NAN for general use.
Definition: Sample.cc:31
int _maxNChannels
Definition: A2DSensor.h:257
int npts
Definition: A2DSensor.h:185
float getSlope(int ichan) const
Get the current conversion slope, which includes any correction as set by setConversionCorrection().
Definition: A2DSensor.h:133
Information for configuring a sample from an A2D.
Definition: a2d.h:71
A2D configuration for time-based averaging of A2D samples.
Definition: A2DSensor.h:196
std::vector< A2DSampleConfig * > _sampleCfgs
Definition: A2DSensor.h:214
A2DSampleInfo(int n)
Definition: A2DSensor.h:223
Information needed to intepret the samples that are received from the A2D device. ...
Definition: A2DSensor.h:220
size_t _badRawSamples
Counter of number of raw samples of wrong size.
Definition: A2DSensor.h:252
A2DSampleInfo(const A2DSampleInfo &x)
Definition: A2DSensor.h:225
Interface to a data sample.
Definition: Sample.h:189
DSMSensor provides the basic support for reading, processing and distributing samples from a sensor a...
Definition: DSMSensor.h:87
static float rate
Definition: sing.cc:53
Definition: IOException.h:37
A2DTimeAvgConfig(int n)
Definition: A2DSensor.h:199
Class describing a group of variables that are sampled and handled together.
Definition: SampleTag.h:87
int getScanRate() const
Definition: A2DSensor.h:69
One or more sensors connected to an A2D.
Definition: A2DSensor.h:45
int * _bipolars
Definition: A2DSensor.h:286
int nvalues
Definition: A2DSensor.h:242
int rate
Definition: A2DSensor.h:207
int * _gains
Definition: A2DSensor.h:284
void setScanRate(int val)
Definition: A2DSensor.h:67
int nvars
Definition: A2DSensor.h:241
virtual ~A2DSampleConfig()
Definition: A2DSensor.h:161
virtual nidas_a2d_sample_config & cfg()
Definition: A2DSensor.h:162
Definition: InvalidParameterException.h:35