13 #define MAX_FIRMWARE_LEN 64
15 #define P_DACString "QE_DAC"
16 #define P_CalibrationModeString "QE_CALIBRATION_MODE"
17 #define P_ADCOffsetString "QE_ADC_OFFSET"
26 void report(FILE *fp,
int details);
36 virtual asynStatus
writeInt32(asynUser *pasynUser, epicsInt32 value);
37 virtual asynStatus
getBounds(asynUser *pasynUser, epicsInt32 *low, epicsInt32 *high);
38 virtual asynStatus
setAcquire(epicsInt32 value);
39 virtual asynStatus
setRange(epicsInt32 value);
44 virtual asynStatus
reset();
47 #define FIRST_NSLS2_COMMAND P_DAC
55 int readingsAveraged_;
57 bool calibrationMode_;
60 volatile unsigned int *fpgabase_;
66 asynStatus getFirmwareVersion();
67 asynStatus readMeter(
int *adcbuf);
68 asynStatus setDAC(
int channel,
int value);
70 asynStatus pl_open(
int *fd);
71 asynStatus setAcquireParams();
int P_CalibrationMode
Definition: drvNSLS2_EM.h:48
virtual asynStatus setRange(epicsInt32 value)
Definition: drvNSLS2_EM.cpp:403
Base class to control the quad electrometer.
Definition: drvQuadEM.h:128
virtual asynStatus setValuesPerRead(epicsInt32 value)
Sets the values per read.
Definition: drvNSLS2_EM.cpp:389
#define QE_MAX_INPUTS
Definition: drvQuadEM.h:124
drvNSLS2_EM(const char *portName, int moduleID, int ringBufferSize)
Definition: drvNSLS2_EM.cpp:184
void callbackFunc()
Definition: drvNSLS2_EM.cpp:313
~drvNSLS2_EM()
Definition: drvNSLS2_EM.cpp:242
char * portName
The name of this asyn port.
Definition: asynPortDriver.h:201
virtual asynStatus setBiasVoltage(epicsFloat64 value)
Definition: drvNSLS2_EM.cpp:396
bool isAcquiring()
Definition: drvNSLS2_EM.cpp:147
virtual void exitHandler()
Definition: drvNSLS2_EM.cpp:458
int P_DAC
Definition: drvNSLS2_EM.h:46
#define MAX_RANGES
Definition: drvNSLS2_EM.h:14
#define MAX_FIRMWARE_LEN
Definition: drvNSLS2_EM.h:13
int P_ADCOffset
Definition: drvNSLS2_EM.h:49
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition: drvNSLS2_EM.cpp:252
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_EM.cpp:298
virtual asynStatus reset()
Downloads all of the current EPICS settings to the electrometer.
Definition: drvNSLS2_EM.cpp:445
Class to control the NSLS Precision Integrator.
Definition: drvNSLS2_EM.h:20
void report(FILE *fp, int details)
Report status of the driver.
Definition: drvNSLS2_EM.cpp:450
virtual asynStatus setAcquire(epicsInt32 value)
Starts and stops the electrometer.
Definition: drvNSLS2_EM.cpp:341
virtual asynStatus readStatus()
Definition: drvNSLS2_EM.cpp:427
virtual asynStatus setAveragingTime(epicsFloat64 value)
Definition: drvNSLS2_EM.cpp:381