areaDetector  3-14
EPICS areaDetector framework
ADGenICam.h
Go to the documentation of this file.
1 #ifndef AD_GENICAM_H
2 #define AD_GENICAM_H
3 
4 #include <ADDriver.h>
5 
6 #include "ADGenICamAPI.h"
7 #include "GenICamFeature.h"
8 
9 #define GCFrameRateString "GC_FRAMERATE" // asynParamFloat64, R/W
10 #define GCFrameRateEnableString "GC_FRAMERATE_ENABLE" // asynParamInt32, R/W
11 #define GCTriggerSourceString "GC_TRIGGER_SOURCE" // asynParamInt32, R/W
12 #define GCTriggerOverlapString "GC_TRIGGER_OVERLAP" // asynParamInt32, R/W
13 #define GCTriggerSoftwareString "GC_TRIGGER_SOFTWARE" // asynParamInt32, R/W
14 #define GCExposureModeString "GC_EXPOSURE_MODE" // asynParamInt32, R/W
15 #define GCExposureAutoString "GC_EXPOSURE_AUTO" // asynParamInt32, R/W
16 #define GCGainAutoString "GC_GAIN_AUTO" // asynParamInt32, R/W
17 #define GCPixelFormatString "GC_PIXEL_FORMAT" // asynParamInt32, R/W
18 
19 typedef struct {
20  const char* featureName;
23 
25 {
26 public:
27  ADGenICam(const char *portName, size_t maxMemory, int priority, int stackSize);
28 
29  // virtual methods to override from ADDriver
30  virtual asynStatus writeInt32( asynUser *pasynUser, epicsInt32 value);
31  virtual asynStatus writeInt64( asynUser *pasynUser, epicsInt64 value);
32  virtual asynStatus writeFloat64( asynUser *pasynUser, epicsFloat64 value);
33  //virtual asynStatus writeOctet(asynUser *pasynUser, const char *value,
34  // size_t nChars, size_t *nActual);
35  virtual asynStatus readEnum(asynUser *pasynUser, char *strings[], int values[], int severities[],
36  size_t nElements, size_t *nIn);
37  void report(FILE *fp, int details);
38  virtual asynStatus drvUserCreate(asynUser *pasynUser, const char *drvInfo,
39  const char **pptypeName, size_t *psize);
40  virtual asynStatus readStatus();
41  virtual asynStatus setImageParams();
42  virtual asynStatus pauseAcquisition();
43  virtual asynStatus resumeAcquisition();
44  virtual void showFeature(std::string const & featureName);
45  virtual void decompressMono12p(int numPixels, bool leftShift, epicsUInt8 *input, epicsUInt16 *output);
46  virtual void decompressMono12Packed(int numPixels, bool leftShift, epicsUInt8 *input, epicsUInt16 *output);
47 
48  // Pure virtual functions that all drivers must implement
50  std::string const & asynName, asynParamType asynType, int asynIndex,
51  std::string const & featureName, GCFeatureType_t featureType) = 0;
52  virtual asynStatus addADDriverFeatures();
53  virtual asynStatus startCapture() = 0;
54  virtual asynStatus stopCapture() = 0;
55 
56 protected:
66 
68 
69 private:
70  asynStatus createMultiFeature(std::string const & asynName, asynParamType asynType, int asynIndex,
71  std::vector<GCFeatureStruct_t> & features);
72  int mFirstParam;
73  bool mFirstDrvUserCreateCall;
74  bool mWasAcquiring;
75 };
76 
77 #endif
#define ADGENICAM_API
Definition: ADGenICamAPI.h:41
GCFeatureType_t
Definition: GenICamFeature.h:13
Class from which areaDetector drivers are directly derived.
Definition: ADDriver.h:132
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Sets an int32 parameter.
Definition: ADDriver.cpp:84
Definition: ADGenICam.h:25
int GCFrameRateEnable
Definition: ADGenICam.h:58
virtual GenICamFeature * createFeature(GenICamFeatureSet *set, std::string const &asynName, asynParamType asynType, int asynIndex, std::string const &featureName, GCFeatureType_t featureType)=0
int GCTriggerOverlap
Definition: ADGenICam.h:60
int GCExposureAuto
Definition: ADGenICam.h:63
virtual asynStatus stopCapture()=0
int GCTriggerSource
Definition: ADGenICam.h:59
GenICamFeatureSet mGCFeatureSet
Definition: ADGenICam.h:67
int GCPixelFormat
Definition: ADGenICam.h:65
int GCExposureMode
Definition: ADGenICam.h:62
virtual asynStatus startCapture()=0
int GCTriggerSoftware
Definition: ADGenICam.h:61
int GCGainAuto
Definition: ADGenICam.h:64
int GCFrameRate
Definition: ADGenICam.h:57
Definition: GenICamFeature.h:41
Definition: GenICamFeature.h:123
virtual void report(FILE *fp, int details)
Report status of the driver.
Definition: asynNDArrayDriver.cpp:753
@ string
Definition: NDFileHDF5Layout.h:44
list value
Definition: makeDbAndEdl.py:234
Definition: ADGenICam.h:19
const char * featureName
Definition: ADGenICam.h:20
GCFeatureType_t featureType
Definition: ADGenICam.h:21