13 #define MAX_FIRMWARE_LEN 64
15 #define P_DACString "QE_DAC"
16 #define P_DACDoubleString "QE_DAC_DOUBLE"
17 #define P_CalibrationModeString "QE_CALIBRATION_MODE"
18 #define P_ADCOffsetString "QE_ADC_OFFSET"
19 #define P_FullScaleString "QE_FULL_SCALE"
27 void report(FILE *fp,
int details);
37 virtual asynStatus
writeInt32(asynUser *pasynUser, epicsInt32 value);
39 virtual asynStatus
writeFloat64(asynUser *pasynUser, epicsFloat64 value);
40 virtual asynStatus
getBounds(asynUser *pasynUser, epicsInt32 *low, epicsInt32 *high);
41 virtual asynStatus
setAcquire(epicsInt32 value);
42 virtual asynStatus
setRange(epicsInt32 value);
47 virtual asynStatus
reset();
50 #define FIRST_NSLS2_COMMAND P_DAC
59 int readingsAveraged_;
61 bool calibrationMode_;
64 volatile unsigned int *fpgabase_;
70 asynStatus getFirmwareVersion();
71 asynStatus readMeter(
int *adcbuf);
72 asynStatus computeScaleFactor();
73 asynStatus OpenDacs();
74 asynStatus EnableIntRef(
int dev);
75 asynStatus setDAC(
int channel,
int value);
77 asynStatus pl_open(
int *fd);
78 asynStatus setIntegrationTime(epicsFloat64 value);
79 asynStatus setAcquireParams();
int P_ADCOffset
Definition: drvNSLS2_IC.h:53
~drvNSLS2_IC()
Definition: drvNSLS2_IC.cpp:294
virtual asynStatus setBiasVoltage(epicsFloat64 value)
Definition: drvNSLS2_IC.cpp:537
int P_CalibrationMode
Definition: drvNSLS2_IC.h:52
Base class to control the quad electrometer.
Definition: drvQuadEM.h:128
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition: drvNSLS2_IC.cpp:304
#define QE_MAX_INPUTS
Definition: drvQuadEM.h:124
virtual asynStatus reset()
Downloads all of the current EPICS settings to the electrometer.
Definition: drvNSLS2_IC.cpp:584
#define MAX_FIRMWARE_LEN
Definition: drvNSLS2_IC.h:13
int P_DAC
Definition: drvNSLS2_IC.h:49
virtual asynStatus getBounds(asynUser *pasynUser, epicsInt32 *low, epicsInt32 *high)
Called when asyn clients call pasynInt32->getBounds(), returning the bounds on the asynInt32 interfac...
Definition: drvNSLS2_IC.cpp:393
char * portName
The name of this asyn port.
Definition: asynPortDriver.h:201
int P_FullScale
Definition: drvNSLS2_IC.h:54
#define MAX_RANGES
Definition: drvNSLS2_IC.h:14
Class to control the NSLS Precision Integrator.
Definition: drvNSLS2_IC.h:21
int P_DACDouble
Definition: drvNSLS2_IC.h:51
bool isAcquiring()
Definition: drvNSLS2_IC.cpp:183
virtual asynStatus setRange(epicsInt32 value)
Definition: drvNSLS2_IC.cpp:553
virtual void exitHandler()
Definition: drvNSLS2_IC.cpp:597
void callbackFunc()
Definition: drvNSLS2_IC.cpp:408
void report(FILE *fp, int details)
Report status of the driver.
Definition: drvNSLS2_IC.cpp:589
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
Called when asyn clients call pasynFloat64->write().
Definition: drvNSLS2_IC.cpp:352
drvNSLS2_IC(const char *portName, int ringBufferSize)
Definition: drvNSLS2_IC.cpp:241
virtual asynStatus setAcquire(epicsInt32 value)
Starts and stops the electrometer.
Definition: drvNSLS2_IC.cpp:463
virtual asynStatus readStatus()
Definition: drvNSLS2_IC.cpp:562
virtual asynStatus setAveragingTime(epicsFloat64 value)
Definition: drvNSLS2_IC.cpp:522
virtual asynStatus setValuesPerRead(epicsInt32 value)
Sets the values per read.
Definition: drvNSLS2_IC.cpp:530