26 #ifndef NIDAS_DYNLD_RAF_DSMANALOGSENSOR_H
27 #define NIDAS_DYNLD_RAF_DSMANALOGSENSOR_H
33 namespace nidas {
namespace dynld {
namespace raf {
35 using namespace nidas::core;
56 void open(
int flags) throw(nidas::util::IOException,
57 nidas::util::InvalidParameterException);
62 void close() throw(nidas::util::IOException);
67 void init() throw(nidas::util::InvalidParameterException);
69 void printStatus(std::ostream& ostr) throw();
73 void setA2DParameters(
int ichan,
int gain,
int bipolar)
76 void getBasicConversion(
int ichan,
float& intercept,
float& slope)
const;
78 void setConversionCorrection(
int ichan,
float corIntercept,
float corSlope)
91 bool process(
const Sample*,std::list<const Sample*>& result)
107 int getInt32TimeTagUsecs()
const
112 void executeXmlRpc(XmlRpc::XmlRpcValue& params, XmlRpc::XmlRpcValue& result)
115 void getA2DSetup(XmlRpc::XmlRpcValue& params, XmlRpc::XmlRpcValue& result)
118 void testVoltage(XmlRpc::XmlRpcValue& params, XmlRpc::XmlRpcValue& result)
123 bool processTemperature(
const Sample*, std::list<const Sample*>& result)
throw();
134 int readFilterFile(
const std::string& name,
unsigned short* coefs,
185 float voltageActual(
float voltageMeasured);
188 {
return(c[0] + x * (c[1] + x * c[2])); }
200 static const int N_COEFF = 3;
206 static const int N_G4_VDC = 9;
212 static const float TemperatureChamberVoltagesGain4[N_G4_VDC];
217 static const float TemperatureTableGain4[N_G4_VDC][N_COEFF];
const SampleTag * _temperatureTag
Pointer to temperature SampleTag if user has asked for it, otherwise NULL.
Definition: DSMAnalogSensor.h:146
A class for reading ASCII files containing a time series of calibration data.
Definition: CalFile.h:164
CalFile * _calFile
CalFile for this DSMAnalogSensor.
Definition: DSMAnalogSensor.h:158
float SecondPoly(float x, const float c[]) const
Definition: DSMAnalogSensor.h:187
OutputMode
Definition: DSMAnalogSensor.h:43
Definition: DSMAnalogSensor.h:43
A sensor connected to the DSM A2D.
Definition: DSMAnalogSensor.h:40
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
OutputMode getOutputMode() const
Definition: DSMAnalogSensor.h:84
float _currentTemperature
Capture the current A/D board temperature, so we can do a temperature drift compensation to all the r...
Definition: DSMAnalogSensor.h:194
#define NUM_NCAR_A2D_CHANNELS
Definition: ncar_a2d.h:55
void setOutputMode(OutputMode mode)
Definition: DSMAnalogSensor.h:82
An interface to an IO device.
Definition: IODevice.h:41
Interface to a data sample.
Definition: Sample.h:189
static const float DEGC_PER_CNT
Conversion factor from 16 bit raw temperature to degC.
Definition: DSMAnalogSensor.h:170
Definition: IOException.h:37
#define USECS_PER_MSEC
Definition: types.h:115
Class describing a group of variables that are sampled and handled together.
Definition: SampleTag.h:87
A scanner of sample data.
Definition: SampleScanner.h:73
OutputMode _outputMode
Whethere to output samples as counts, volts or engineering units.
Definition: DSMAnalogSensor.h:165
int _deltatUsec
The output delta t, 1/rate, in microseconds.
Definition: DSMAnalogSensor.h:140
One or more sensors connected to an A2D.
Definition: A2DSensor.h:45
irigClockRates
Enumeration of the callback rates supported by this module.
Definition: irigclock.h:52
Definition: InvalidParameterException.h:35