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
23
25{
26public:
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
56protected:
66
68
69private:
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
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
virtual GenICamFeature * createFeature(GenICamFeatureSet *set, std::string const &asynName, asynParamType asynType, int asynIndex, std::string const &featureName, GCFeatureType_t featureType)=0
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
Definition ADGenICam.h:19
const char * featureName
Definition ADGenICam.h:20
GCFeatureType_t featureType
Definition ADGenICam.h:21