areaDetector  3-12-1
EPICS areaDetector framework
Public Member Functions | Public Attributes | Protected Attributes | List of all members
ADAravis Class Reference

Aravis GigE detector driver. More...

Inheritance diagram for ADAravis:
ADGenICam ADDriver asynNDArrayDriver

Public Member Functions

 ADAravis (const char *portName, const char *cameraName, int enableCaching, size_t maxMemory, int priority, int stackSize)
 Constructor for ADAravis; most parameters are simply passed to ADDriver::ADDriver. More...
virtual asynStatus writeInt32 (asynUser *pasynUser, epicsInt32 value)
 Called when asyn clients call pasynInt32->write(). More...
virtual GenICamFeaturecreateFeature (GenICamFeatureSet *set, std::string const &asynName, asynParamType asynType, int asynIndex, std::string const &featureName, GCFeatureType_t featureType)
virtual asynStatus startCapture ()
virtual asynStatus stopCapture ()
void report (FILE *fp, int details)
 Report status of the driver. More...
void run ()
 Check what event we have, and deal with new frames. More...
void newBufferCallback (ArvStream *stream)
- Public Member Functions inherited from ADGenICam
 ADGenICam (const char *portName, size_t maxMemory, int priority, int stackSize)
 Constructor for the ADGenICam class. More...
virtual asynStatus writeInt64 (asynUser *pasynUser, epicsInt64 value)
 Sets an int64 parameter. More...
virtual asynStatus writeFloat64 (asynUser *pasynUser, epicsFloat64 value)
 Sets an float64 parameter. More...
virtual asynStatus readEnum (asynUser *pasynUser, char *strings[], int values[], int severities[], size_t nElements, size_t *nIn)
void report (FILE *fp, int details)
 Print out a report; calls ADDriver::report to get base class report as well. More...
virtual asynStatus drvUserCreate (asynUser *pasynUser, const char *drvInfo, const char **pptypeName, size_t *psize)
virtual asynStatus readStatus ()
virtual asynStatus setImageParams ()
virtual asynStatus pauseAcquisition ()
virtual asynStatus resumeAcquisition ()
virtual void decompressMono12p (int numPixels, bool leftShift, epicsUInt8 *input, epicsUInt16 *output)
 Decompresses Mono12p to epicsUInt16. More...
virtual void decompressMono12Packed (int numPixels, bool leftShift, epicsUInt8 *input, epicsUInt16 *output)
 Decompresses Mono12Packed to epicsUInt16. More...
virtual asynStatus addADDriverFeatures ()
- Public Member Functions inherited from ADDriver
 ADDriver (const char *portName, int maxAddr, int numParams, int maxBuffers, size_t maxMemory, int interfaceMask, int interruptMask, int asynFlags, int autoConnect, int priority, int stackSize)
 All of the arguments are simply passed to the constructor for the asynNDArrayDriver base class, except numParams. More...
virtual asynStatus connect (asynUser *pasynUser)
 Connects driver to device; This method is called when the driver's pasynCommon->connect() function is called. More...
virtual void setShutter (int open)
 Set the shutter position. More...
- Public Member Functions inherited from asynNDArrayDriver
 asynNDArrayDriver (const char *portName, int maxAddr, int maxBuffers, size_t maxMemory, int interfaceMask, int interruptMask, int asynFlags, int autoConnect, int priority, int stackSize)
 This is the constructor for the asynNDArrayDriver class. More...
virtual ~asynNDArrayDriver ()
virtual asynStatus writeOctet (asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual)
 Called when asyn clients call pasynOctet->write(). More...
virtual asynStatus readGenericPointer (asynUser *pasynUser, void *genericPointer)
 This method copies an NDArray object from the asynNDArrayDriver to an NDArray pointer passed in by the caller. More...
virtual asynStatus writeGenericPointer (asynUser *pasynUser, void *genericPointer)
 This method currently does nothing, but it should be implemented in this base class. More...
virtual asynStatus setIntegerParam (int index, int value)
 Sets the value for an integer in the parameter library. More...
virtual asynStatus setIntegerParam (int list, int index, int value)
 Sets the value for an integer in the parameter library. More...
virtual asynStatus readInt32 (asynUser *pasynUser, epicsInt32 *value)
virtual asynStatus readFloat64 (asynUser *pasynUser, epicsFloat64 *value)
virtual asynStatus createFilePath (const char *path, int pathDepth)
 Function to create a directory path for a file. More...
virtual asynStatus checkPath ()
 Checks whether the directory specified NDFilePath parameter exists. More...
virtual bool checkPath (std::string &filePath)
 Checks whether the directory specified exists. More...
virtual asynStatus createFileName (int maxChars, char *fullFileName)
 Build a file name from component parts. More...
virtual asynStatus createFileName (int maxChars, char *filePath, char *fileName)
 Build a file name from component parts. More...
virtual asynStatus readNDAttributesFile ()
 Create this driver's NDAttributeList (pAttributeList) by reading an XML file This clears any existing attributes from this drivers' NDAttributeList and then creates a new list based on the XML file. More...
virtual asynStatus getAttributes (NDAttributeList *pAttributeList)
 Get the current values of attributes from this driver and appends them to an output attribute list. More...
asynStatus incrementQueuedArrayCount ()
asynStatus decrementQueuedArrayCount ()
int getQueuedArrayCount ()
void updateQueuedArrayCount ()

Public Attributes

epicsMessageQueueId msgQId
ArvCamera * camera
 Used by epicsAtExit. More...
int connectionValid
 Used by connection lost callback. More...
- Public Attributes inherited from asynNDArrayDriver
class NDArrayPoolpNDArrayPool
 An NDArrayPool pointer that is initialized to pNDArrayPoolPvt_ in the constructor. More...

Protected Attributes

int AravisCompleted
int AravisFailures
int AravisUnderruns
int AravisFrameRetention
int AravisMissingPkts
int AravisPktResend
int AravisPktTimeout
int AravisResentPkts
int AravisConvertPixelFormat
int AravisShiftDir
int AravisShiftBits
int AravisConnection
int AravisReset
- Protected Attributes inherited from ADGenICam
int GCFrameRate
int GCFrameRateEnable
int GCTriggerSource
int GCTriggerOverlap
int GCTriggerSoftware
int GCExposureMode
int GCExposureAuto
int GCGainAuto
int GCPixelFormat
GenICamFeatureSet mGCFeatureSet
- Protected Attributes inherited from ADDriver
int ADGain
int ADBinX
int ADBinY
int ADMinX
int ADMinY
int ADSizeX
int ADSizeY
int ADMaxSizeX
int ADMaxSizeY
int ADReverseX
int ADReverseY
int ADFrameType
int ADImageMode
int ADNumExposures
int ADNumExposuresCounter
int ADNumImages
int ADNumImagesCounter
int ADAcquireTime
int ADAcquirePeriod
int ADTimeRemaining
int ADStatus
int ADTriggerMode
int ADShutterControl
int ADShutterControlEPICS
int ADShutterStatus
int ADShutterMode
int ADShutterOpenDelay
int ADShutterCloseDelay
int ADTemperature
int ADTemperatureActual
int ADReadStatus
int ADStatusMessage
int ADStringToServer
int ADStringFromServer
bool deviceIsReachable
- Protected Attributes inherited from asynNDArrayDriver
int NDPortNameSelf
int NDADCoreVersion
int NDDriverVersion
int ADManufacturer
int ADModel
int ADSerialNumber
int ADSDKVersion
int ADFirmwareVersion
int ADAcquire
int ADAcquireBusy
int ADWaitForPlugins
int NDArraySizeX
int NDArraySizeY
int NDArraySizeZ
int NDArraySize
int NDNDimensions
int NDDimensions
int NDDataType
int NDColorMode
int NDUniqueId
int NDTimeStamp
int NDEpicsTSSec
int NDEpicsTSNsec
int NDBayerPattern
int NDCodec
int NDCompressedSize
int NDArrayCounter
int NDFilePath
int NDFilePathExists
int NDFileName
int NDFileNumber
int NDFileTemplate
int NDAutoIncrement
int NDFullFileName
int NDFileFormat
int NDAutoSave
int NDWriteFile
int NDReadFile
int NDFileWriteMode
int NDFileWriteStatus
int NDFileWriteMessage
int NDFileNumCapture
int NDFileNumCaptured
int NDFileCapture
int NDFileDeleteDriverFile
int NDFileLazyOpen
int NDFileCreateDir
int NDFileTempSuffix
int NDAttributesFile
int NDAttributesStatus
int NDAttributesMacros
int NDArrayData
int NDArrayCallbacks
int NDPoolMaxBuffers
int NDPoolAllocBuffers
int NDPoolFreeBuffers
int NDPoolMaxMemory
int NDPoolUsedMemory
int NDPoolEmptyFreeList
int NDNumQueuedArrays
class NDArray ** pArrays
 An array of NDArray pointers used to store data in the driver. More...
class NDAttributeListpAttributeList
 An NDAttributeList object used to obtain the current values of a set of attributes. More...
int threadStackSize_
int threadPriority_

Detailed Description

Aravis GigE detector driver.

Constructor & Destructor Documentation

◆ ADAravis()

ADAravis::ADAravis ( const char *  portName,
const char *  cameraName,
int  enableCaching,
size_t  maxMemory,
int  priority,
int  stackSize 

Constructor for ADAravis; most parameters are simply passed to ADDriver::ADDriver.

After calling the base class constructor this method creates a thread to compute the GigE detector data, and sets reasonable default values for parameters defined in this class, asynNDArrayDriver and ADDriver.

[in]portNameThe name of the asyn port driver to be created.
[in]cameraNameThe name of the camera, <vendor>-<serial#>, as returned by arv-show-devices
[in]enableCachingFlag to enable (1) or disable (0) register caching in aravis. Performance is much better when caching is enable, but some cameras may not properly implement this.
[in]maxMemoryThe maximum amount of memory that the NDArrayPool for this driver is allowed to allocate. Set this to -1 to allow an unlimited amount of memory.
[in]priorityThe thread priority for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags.
[in]stackSizeThe stack size for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags.

Member Function Documentation

◆ createFeature()

GenICamFeature * ADAravis::createFeature ( GenICamFeatureSet set,
std::string const &  asynName,
asynParamType  asynType,
int  asynIndex,
std::string const &  featureName,
GCFeatureType_t  featureType 

Implements ADGenICam.

◆ newBufferCallback()

void ADAravis::newBufferCallback ( ArvStream *  stream)

◆ report()

void ADAravis::report ( FILE *  fp,
int  details 

Report status of the driver.

Prints details about the driver if details>0. It then calls the ADDriver::report() method.

[in]fpFile pointed passed by caller where the output is written to.
[in]detailsIf >0 then driver details are printed.

Reimplemented from asynNDArrayDriver.

◆ run()

void ADAravis::run ( void  )

Check what event we have, and deal with new frames.

this->camera exists, lock not taken

◆ startCapture()

asynStatus ADAravis::startCapture ( )

Implements ADGenICam.

◆ stopCapture()

asynStatus ADAravis::stopCapture ( )

Implements ADGenICam.

◆ writeInt32()

asynStatus ADAravis::writeInt32 ( asynUser *  pasynUser,
epicsInt32  value 

Called when asyn clients call pasynInt32->write().

This function performs actions for some parameters, including ADAcquire, ADColorMode, etc. For all parameters it sets the value in the parameter library and calls any registered callbacks..

[in]pasynUserpasynUser structure that encodes the reason and address.
[in]valueValue to write.

Reimplemented from ADGenICam.

Member Data Documentation

◆ AravisCompleted

int ADAravis::AravisCompleted

◆ AravisConnection

int ADAravis::AravisConnection

◆ AravisConvertPixelFormat

int ADAravis::AravisConvertPixelFormat

◆ AravisFailures

int ADAravis::AravisFailures

◆ AravisFrameRetention

int ADAravis::AravisFrameRetention

◆ AravisMissingPkts

int ADAravis::AravisMissingPkts

◆ AravisPktResend

int ADAravis::AravisPktResend

◆ AravisPktTimeout

int ADAravis::AravisPktTimeout

◆ AravisResentPkts

int ADAravis::AravisResentPkts

◆ AravisReset

int ADAravis::AravisReset

◆ AravisShiftBits

int ADAravis::AravisShiftBits

◆ AravisShiftDir

int ADAravis::AravisShiftDir

◆ AravisUnderruns

int ADAravis::AravisUnderruns

◆ camera

ArvCamera* ADAravis::camera

Used by epicsAtExit.

◆ connectionValid

int ADAravis::connectionValid

Used by connection lost callback.

◆ msgQId

epicsMessageQueueId ADAravis::msgQId

The documentation for this class was generated from the following file: