areaDetector  3-12-1
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 decompressMono12p(int numPixels, bool leftShift, epicsUInt8 *input, epicsUInt16 *output);
45  virtual void decompressMono12Packed(int numPixels, bool leftShift, epicsUInt8 *input, epicsUInt16 *output);
46 
47  // Pure virtual functions that all drivers must implement
48  virtual GenICamFeature *createFeature(GenICamFeatureSet *set,
49  std::string const & asynName, asynParamType asynType, int asynIndex,
50  std::string const & featureName, GCFeatureType_t featureType) = 0;
51  virtual asynStatus addADDriverFeatures();
52  virtual asynStatus startCapture() = 0;
53  virtual asynStatus stopCapture() = 0;
54 
55 protected:
65 
67 
68 private:
69  asynStatus createMultiFeature(std::string const & asynName, asynParamType asynType, int asynIndex,
70  std::vector<GCFeatureStruct_t> & features);
71  int mFirstParam;
72  bool mFirstDrvUserCreateCall;
73  bool mWasAcquiring;
74 };
75 
76 #endif
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Sets an int32 parameter.
Definition: ADDriver.cpp:84
int GCTriggerOverlap
Definition: ADGenICam.h:59
Class from which areaDetector drivers are directly derived.
Definition: ADDriver.h:132
GCFeatureType_t
Definition: GenICamFeature.h:12
virtual void report(FILE *fp, int details)
Report status of the driver.
Definition: asynNDArrayDriver.cpp:744
int GCFrameRateEnable
Definition: ADGenICam.h:57
list value
Definition: makeDbAndEdl.py:234
const char * featureName
Definition: ADGenICam.h:20
Definition: GenICamFeature.h:40
GCFeatureType_t featureType
Definition: ADGenICam.h:21
Definition: GenICamFeature.h:122
int GCFrameRate
Definition: ADGenICam.h:56
GenICamFeatureSet mGCFeatureSet
Definition: ADGenICam.h:66
int GCGainAuto
Definition: ADGenICam.h:63
int GCExposureAuto
Definition: ADGenICam.h:62
int GCExposureMode
Definition: ADGenICam.h:61
int GCPixelFormat
Definition: ADGenICam.h:64
int GCTriggerSoftware
Definition: ADGenICam.h:60
Definition: ADGenICam.h:19
Definition: NDFileHDF5Layout.h:44
Definition: ADGenICam.h:24
#define ADGENICAM_API
Definition: ADGenICamAPI.h:41
int GCTriggerSource
Definition: ADGenICam.h:58