areaDetector  3-13
EPICS areaDetector framework
Classes | Macros | Enumerations
asynNDArrayDriver.h File Reference
#include <epicsMutex.h>
#include <epicsEvent.h>
#include "asynPortDriver.h"
#include "NDArray.h"
#include "ADCoreVersion.h"

Go to the source code of this file.

Classes

class  asynNDArrayDriver
 This is the class from which NDArray drivers are derived; implements the asynGenericPointer functions for NDArray objects. More...
 

Macros

#define MAX_FILENAME_LEN   256
 Maximum length of a filename or any of its components. More...
 
#define NDPortNameSelfString   "PORT_NAME_SELF"
 Strings defining parameters that affect the behaviour of the detector. More...
 
#define NDADCoreVersionString   "ADCORE_VERSION"
 ADCore version string. More...
 
#define NDDriverVersionString   "DRIVER_VERSION"
 (asynOctet, r/o) Version of this driver or plugin More...
 
#define ADManufacturerString   "MANUFACTURER"
 (asynOctet, r/o) Detector manufacturer name More...
 
#define ADModelString   "MODEL"
 (asynOctet, r/o) Detector model name More...
 
#define ADSerialNumberString   "SERIAL_NUMBER"
 (asynOctet, r/o) Detector serial number More...
 
#define ADSDKVersionString   "SDK_VERSION"
 (asynOctet, r/o) Vendor SDK version More...
 
#define ADFirmwareVersionString   "FIRMWARE_VERSION"
 (asynOctet, r/o) Detector firmware version More...
 
#define ADAcquireString   "ACQUIRE"
 (asynInt32, r/w) Start(1) or Stop(0) acquisition More...
 
#define ADAcquireBusyString   "ACQUIRE_BUSY"
 (asynInt32, r/w) 0 when acquire done including plugins More...
 
#define ADWaitForPluginsString   "WAIT_FOR_PLUGINS"
 (asynInt32, r/w) Wait for plugins before AcquireBusy goes to 0 More...
 
#define NDArraySizeXString   "ARRAY_SIZE_X"
 (asynInt32, r/o) Size of the array data in the X direction More...
 
#define NDArraySizeYString   "ARRAY_SIZE_Y"
 (asynInt32, r/o) Size of the array data in the Y direction More...
 
#define NDArraySizeZString   "ARRAY_SIZE_Z"
 (asynInt32, r/o) Size of the array data in the Z direction More...
 
#define NDArraySizeString   "ARRAY_SIZE"
 (asynInt32, r/o) Total size of array data in bytes More...
 
#define NDNDimensionsString   "ARRAY_NDIMENSIONS"
 (asynInt32, r/o) Number of dimensions in array More...
 
#define NDDimensionsString   "ARRAY_DIMENSIONS"
 (asynInt32Array, r/o) Array dimensions More...
 
#define NDDataTypeString   "DATA_TYPE"
 (asynInt32, r/w) Data type (NDDataType_t) More...
 
#define NDColorModeString   "COLOR_MODE"
 (asynInt32, r/w) Color mode (NDColorMode_t) More...
 
#define NDUniqueIdString   "UNIQUE_ID"
 (asynInt32, r/o) Unique ID number of array More...
 
#define NDTimeStampString   "TIME_STAMP"
 (asynFloat64, r/o) Time stamp of array More...
 
#define NDEpicsTSSecString   "EPICS_TS_SEC"
 (asynInt32, r/o) EPOCS time stamp secPastEpoch of array More...
 
#define NDEpicsTSNsecString   "EPICS_TS_NSEC"
 (asynInt32, r/o) EPOCS time stamp nsec of array More...
 
#define NDBayerPatternString   "BAYER_PATTERN"
 (asynInt32, r/o) Bayer pattern of array (from bayerPattern array attribute if present) More...
 
#define NDCodecString   "CODEC"
 (asynOctet, r/o) Codec name More...
 
#define NDCompressedSizeString   "COMPRESSED_SIZE"
 (asynInt32, r/o) Compressed size in bytes More...
 
#define NDArrayCounterString   "ARRAY_COUNTER"
 (asynInt32, r/w) Number of arrays since last reset More...
 
#define NDFilePathString   "FILE_PATH"
 (asynOctet, r/w) The file path More...
 
#define NDFilePathExistsString   "FILE_PATH_EXISTS"
 (asynInt32, r/w) File path exists? More...
 
#define NDFileNameString   "FILE_NAME"
 (asynOctet, r/w) The file name More...
 
#define NDFileNumberString   "FILE_NUMBER"
 (asynInt32, r/w) The next file number More...
 
#define NDFileTemplateString   "FILE_TEMPLATE"
 (asynOctet, r/w) The file format template; C-style format string More...
 
#define NDAutoIncrementString   "AUTO_INCREMENT"
 (asynInt32, r/w) Autoincrement file number; 0=No, 1=Yes More...
 
#define NDFullFileNameString   "FULL_FILE_NAME"
 (asynOctet, r/o) The actual complete file name for the last file saved More...
 
#define NDFileFormatString   "FILE_FORMAT"
 (asynInt32, r/w) The data format to use for saving the file. More...
 
#define NDAutoSaveString   "AUTO_SAVE"
 (asynInt32, r/w) Automatically save files More...
 
#define NDWriteFileString   "WRITE_FILE"
 (asynInt32, r/w) Manually save the most recent array to a file when value=1 More...
 
#define NDReadFileString   "READ_FILE"
 (asynInt32, r/w) Manually read file when value=1 More...
 
#define NDFileWriteModeString   "WRITE_MODE"
 (asynInt32, r/w) File saving mode (NDFileMode_t) More...
 
#define NDFileWriteStatusString   "WRITE_STATUS"
 (asynInt32, r/w) File write status More...
 
#define NDFileWriteMessageString   "WRITE_MESSAGE"
 (asynOctet, r/w) File write message More...
 
#define NDFileNumCaptureString   "NUM_CAPTURE"
 (asynInt32, r/w) Number of arrays to capture More...
 
#define NDFileNumCapturedString   "NUM_CAPTURED"
 (asynInt32, r/o) Number of arrays already captured More...
 
#define NDFileFreeCaptureString   "FREE_CAPTURE"
 (asynInt32, r/w) Free the capture buffer More...
 
#define NDFileCaptureString   "CAPTURE"
 (asynInt32, r/w) Start or stop capturing arrays More...
 
#define NDFileDeleteDriverFileString   "DELETE_DRIVER_FILE"
 (asynInt32, r/w) Delete driver file More...
 
#define NDFileLazyOpenString   "FILE_LAZY_OPEN"
 (asynInt32, r/w) Don't open file until first frame arrives in Stream mode More...
 
#define NDFileCreateDirString   "CREATE_DIR"
 (asynInt32, r/w) Create the target directory up to this depth More...
 
#define NDFileTempSuffixString   "FILE_TEMP_SUFFIX"
 (asynOctet, r/w) Temporary filename suffix while writing data to file. More...
 
#define NDAttributesFileString   "ND_ATTRIBUTES_FILE"
 (asynOctet, r/w) Attributes file name More...
 
#define NDAttributesStatusString   "ND_ATTRIBUTES_STATUS"
 (asynInt32, r/o) Attributes status More...
 
#define NDAttributesMacrosString   "ND_ATTRIBUTES_MACROS"
 (asynOctet, r/w) Attributes macros string More...
 
#define NDArrayDataString   "ARRAY_DATA"
 (asynGenericPointer, r/w) NDArray data More...
 
#define NDArrayCallbacksString   "ARRAY_CALLBACKS"
 (asynInt32, r/w) Do callbacks with array data (0=No, 1=Yes) More...
 
#define NDPoolMaxBuffersString   "POOL_MAX_BUFFERS"
 
#define NDPoolAllocBuffersString   "POOL_ALLOC_BUFFERS"
 
#define NDPoolPreAllocBuffersString   "POOL_PRE_ALLOC_BUFFERS"
 
#define NDPoolNumPreAllocBuffersString   "POOL_NUM_PRE_ALLOC_BUFFERS"
 
#define NDPoolFreeBuffersString   "POOL_FREE_BUFFERS"
 
#define NDPoolMaxMemoryString   "POOL_MAX_MEMORY"
 
#define NDPoolUsedMemoryString   "POOL_USED_MEMORY"
 
#define NDPoolEmptyFreeListString   "POOL_EMPTY_FREELIST"
 
#define NDPoolPollStatsString   "POOL_POLL_STATS"
 
#define NDNumQueuedArraysString   "NUM_QUEUED_ARRAYS"
 
#define FIRST_NDARRAY_PARAM   NDPortNameSelf
 

Enumerations

enum  NDFileMode_t { NDFileModeSingle , NDFileModeCapture , NDFileModeStream }
 Enumeration of file saving modes. More...
 
enum  NDFileWriteStatus_t { NDFileWriteOK , NDFileWriteError }
 
enum  NDAttributesStatus_t { NDAttributesOK , NDAttributesFileNotFound , NDAttributesXMLSyntaxError , NDAttributesMacroError }
 

Macro Definition Documentation

◆ ADAcquireBusyString

#define ADAcquireBusyString   "ACQUIRE_BUSY"

(asynInt32, r/w) 0 when acquire done including plugins

◆ ADAcquireString

#define ADAcquireString   "ACQUIRE"

(asynInt32, r/w) Start(1) or Stop(0) acquisition

◆ ADFirmwareVersionString

#define ADFirmwareVersionString   "FIRMWARE_VERSION"

(asynOctet, r/o) Detector firmware version

◆ ADManufacturerString

#define ADManufacturerString   "MANUFACTURER"

(asynOctet, r/o) Detector manufacturer name

◆ ADModelString

#define ADModelString   "MODEL"

(asynOctet, r/o) Detector model name

◆ ADSDKVersionString

#define ADSDKVersionString   "SDK_VERSION"

(asynOctet, r/o) Vendor SDK version

◆ ADSerialNumberString

#define ADSerialNumberString   "SERIAL_NUMBER"

(asynOctet, r/o) Detector serial number

◆ ADWaitForPluginsString

#define ADWaitForPluginsString   "WAIT_FOR_PLUGINS"

(asynInt32, r/w) Wait for plugins before AcquireBusy goes to 0

◆ FIRST_NDARRAY_PARAM

#define FIRST_NDARRAY_PARAM   NDPortNameSelf

◆ MAX_FILENAME_LEN

#define MAX_FILENAME_LEN   256

Maximum length of a filename or any of its components.

◆ NDADCoreVersionString

#define NDADCoreVersionString   "ADCORE_VERSION"

ADCore version string.

(asynOctet, r/o) Version of ADCore

◆ NDArrayCallbacksString

#define NDArrayCallbacksString   "ARRAY_CALLBACKS"

(asynInt32, r/w) Do callbacks with array data (0=No, 1=Yes)

◆ NDArrayCounterString

#define NDArrayCounterString   "ARRAY_COUNTER"

(asynInt32, r/w) Number of arrays since last reset

◆ NDArrayDataString

#define NDArrayDataString   "ARRAY_DATA"

(asynGenericPointer, r/w) NDArray data

◆ NDArraySizeString

#define NDArraySizeString   "ARRAY_SIZE"

(asynInt32, r/o) Total size of array data in bytes

◆ NDArraySizeXString

#define NDArraySizeXString   "ARRAY_SIZE_X"

(asynInt32, r/o) Size of the array data in the X direction

◆ NDArraySizeYString

#define NDArraySizeYString   "ARRAY_SIZE_Y"

(asynInt32, r/o) Size of the array data in the Y direction

◆ NDArraySizeZString

#define NDArraySizeZString   "ARRAY_SIZE_Z"

(asynInt32, r/o) Size of the array data in the Z direction

◆ NDAttributesFileString

#define NDAttributesFileString   "ND_ATTRIBUTES_FILE"

(asynOctet, r/w) Attributes file name

◆ NDAttributesMacrosString

#define NDAttributesMacrosString   "ND_ATTRIBUTES_MACROS"

(asynOctet, r/w) Attributes macros string

◆ NDAttributesStatusString

#define NDAttributesStatusString   "ND_ATTRIBUTES_STATUS"

(asynInt32, r/o) Attributes status

◆ NDAutoIncrementString

#define NDAutoIncrementString   "AUTO_INCREMENT"

(asynInt32, r/w) Autoincrement file number; 0=No, 1=Yes

◆ NDAutoSaveString

#define NDAutoSaveString   "AUTO_SAVE"

(asynInt32, r/w) Automatically save files

◆ NDBayerPatternString

#define NDBayerPatternString   "BAYER_PATTERN"

(asynInt32, r/o) Bayer pattern of array (from bayerPattern array attribute if present)

◆ NDCodecString

#define NDCodecString   "CODEC"

(asynOctet, r/o) Codec name

◆ NDColorModeString

#define NDColorModeString   "COLOR_MODE"

(asynInt32, r/w) Color mode (NDColorMode_t)

◆ NDCompressedSizeString

#define NDCompressedSizeString   "COMPRESSED_SIZE"

(asynInt32, r/o) Compressed size in bytes

◆ NDDataTypeString

#define NDDataTypeString   "DATA_TYPE"

(asynInt32, r/w) Data type (NDDataType_t)

◆ NDDimensionsString

#define NDDimensionsString   "ARRAY_DIMENSIONS"

(asynInt32Array, r/o) Array dimensions

◆ NDDriverVersionString

#define NDDriverVersionString   "DRIVER_VERSION"

(asynOctet, r/o) Version of this driver or plugin

◆ NDEpicsTSNsecString

#define NDEpicsTSNsecString   "EPICS_TS_NSEC"

(asynInt32, r/o) EPOCS time stamp nsec of array

◆ NDEpicsTSSecString

#define NDEpicsTSSecString   "EPICS_TS_SEC"

(asynInt32, r/o) EPOCS time stamp secPastEpoch of array

◆ NDFileCaptureString

#define NDFileCaptureString   "CAPTURE"

(asynInt32, r/w) Start or stop capturing arrays

◆ NDFileCreateDirString

#define NDFileCreateDirString   "CREATE_DIR"

(asynInt32, r/w) Create the target directory up to this depth

◆ NDFileDeleteDriverFileString

#define NDFileDeleteDriverFileString   "DELETE_DRIVER_FILE"

(asynInt32, r/w) Delete driver file

◆ NDFileFormatString

#define NDFileFormatString   "FILE_FORMAT"

(asynInt32, r/w) The data format to use for saving the file.


◆ NDFileFreeCaptureString

#define NDFileFreeCaptureString   "FREE_CAPTURE"

(asynInt32, r/w) Free the capture buffer

◆ NDFileLazyOpenString

#define NDFileLazyOpenString   "FILE_LAZY_OPEN"

(asynInt32, r/w) Don't open file until first frame arrives in Stream mode

◆ NDFileNameString

#define NDFileNameString   "FILE_NAME"

(asynOctet, r/w) The file name

◆ NDFileNumberString

#define NDFileNumberString   "FILE_NUMBER"

(asynInt32, r/w) The next file number

◆ NDFileNumCapturedString

#define NDFileNumCapturedString   "NUM_CAPTURED"

(asynInt32, r/o) Number of arrays already captured

◆ NDFileNumCaptureString

#define NDFileNumCaptureString   "NUM_CAPTURE"

(asynInt32, r/w) Number of arrays to capture

◆ NDFilePathExistsString

#define NDFilePathExistsString   "FILE_PATH_EXISTS"

(asynInt32, r/w) File path exists?

◆ NDFilePathString

#define NDFilePathString   "FILE_PATH"

(asynOctet, r/w) The file path

◆ NDFileTemplateString

#define NDFileTemplateString   "FILE_TEMPLATE"

(asynOctet, r/w) The file format template; C-style format string

◆ NDFileTempSuffixString

#define NDFileTempSuffixString   "FILE_TEMP_SUFFIX"

(asynOctet, r/w) Temporary filename suffix while writing data to file.

The file will be renamed (suffix removed) upon closing the file.

◆ NDFileWriteMessageString

#define NDFileWriteMessageString   "WRITE_MESSAGE"

(asynOctet, r/w) File write message

◆ NDFileWriteModeString

#define NDFileWriteModeString   "WRITE_MODE"

(asynInt32, r/w) File saving mode (NDFileMode_t)

◆ NDFileWriteStatusString

#define NDFileWriteStatusString   "WRITE_STATUS"

(asynInt32, r/w) File write status

◆ NDFullFileNameString

#define NDFullFileNameString   "FULL_FILE_NAME"

(asynOctet, r/o) The actual complete file name for the last file saved

◆ NDNDimensionsString

#define NDNDimensionsString   "ARRAY_NDIMENSIONS"

(asynInt32, r/o) Number of dimensions in array

◆ NDNumQueuedArraysString

#define NDNumQueuedArraysString   "NUM_QUEUED_ARRAYS"

◆ NDPoolAllocBuffersString

#define NDPoolAllocBuffersString   "POOL_ALLOC_BUFFERS"

◆ NDPoolEmptyFreeListString

#define NDPoolEmptyFreeListString   "POOL_EMPTY_FREELIST"

◆ NDPoolFreeBuffersString

#define NDPoolFreeBuffersString   "POOL_FREE_BUFFERS"

◆ NDPoolMaxBuffersString

#define NDPoolMaxBuffersString   "POOL_MAX_BUFFERS"

◆ NDPoolMaxMemoryString

#define NDPoolMaxMemoryString   "POOL_MAX_MEMORY"

◆ NDPoolNumPreAllocBuffersString

#define NDPoolNumPreAllocBuffersString   "POOL_NUM_PRE_ALLOC_BUFFERS"

◆ NDPoolPollStatsString

#define NDPoolPollStatsString   "POOL_POLL_STATS"

◆ NDPoolPreAllocBuffersString

#define NDPoolPreAllocBuffersString   "POOL_PRE_ALLOC_BUFFERS"

◆ NDPoolUsedMemoryString

#define NDPoolUsedMemoryString   "POOL_USED_MEMORY"

◆ NDPortNameSelfString

#define NDPortNameSelfString   "PORT_NAME_SELF"

Strings defining parameters that affect the behaviour of the detector.

These are the values passed to drvUserCreate. The driver will place in pasynUser->reason an integer to be used when the standard asyn interface methods are called. (asynOctet, r/o) Asyn port name of this driver instance

◆ NDReadFileString

#define NDReadFileString   "READ_FILE"

(asynInt32, r/w) Manually read file when value=1

◆ NDTimeStampString

#define NDTimeStampString   "TIME_STAMP"

(asynFloat64, r/o) Time stamp of array

◆ NDUniqueIdString

#define NDUniqueIdString   "UNIQUE_ID"

(asynInt32, r/o) Unique ID number of array

◆ NDWriteFileString

#define NDWriteFileString   "WRITE_FILE"

(asynInt32, r/w) Manually save the most recent array to a file when value=1

Enumeration Type Documentation

◆ NDAttributesStatus_t

Enumerator
NDAttributesOK 
NDAttributesFileNotFound 
NDAttributesXMLSyntaxError 
NDAttributesMacroError 

◆ NDFileMode_t

Enumeration of file saving modes.

Enumerator
NDFileModeSingle 

Write 1 array per file.

NDFileModeCapture 

Capture NDNumCapture arrays into memory, write them out when capture is complete.

Write all captured arrays to a single file if the file format supports this

NDFileModeStream 

Stream arrays continuously to a single file if the file format supports this.

◆ NDFileWriteStatus_t

Enumerator
NDFileWriteOK 
NDFileWriteError