areaDetector  3-5-0
EPICS areaDetector framework
Classes | Namespaces | Macros | Functions
ADnED.h File Reference
#include <stddef.h>
#include <stdlib.h>
#include <stdarg.h>
#include <math.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <ctype.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <epicsTime.h>
#include <epicsTypes.h>
#include <epicsThread.h>
#include <epicsEvent.h>
#include <epicsMutex.h>
#include <epicsString.h>
#include <epicsStdio.h>
#include <cantProceed.h>
#include <asynOctetSyncIO.h>
#include <pv/pvTimeStamp.h>
#include "ADDriver.h"
#include "nEDChannel.h"
#include "ADnEDTransform.h"
#include "ADnEDGlobals.h"

Go to the source code of this file.

Classes

class  ADnED
 

Namespaces

 epics
 
 epics::pvData
 

Macros

#define ADnEDFirstParamString   "ADNED_FIRST"
 areaDetector driver that is a V4 neutron data client for nED. More...
 
#define ADnEDLastParamString   "ADNED_LAST"
 
#define ADnEDResetParamString   "ADNED_RESET"
 
#define ADnEDStartParamString   "ADNED_START"
 
#define ADnEDStopParamString   "ADNED_STOP"
 
#define ADnEDPauseParamString   "ADNED_PAUSE"
 
#define ADnEDEventDebugParamString   "ADNED_EVENT_DEBUG"
 
#define ADnEDSeqCounterParamString   "ADNED_SEQ_COUNTER"
 
#define ADnEDPulseCounterParamString   "ADNED_PULSE_COUNTER"
 
#define ADnEDEventRateParamString   "ADNED_EVENT_RATE"
 
#define ADnEDSeqIDParamString   "ADNED_SEQ_ID"
 
#define ADnEDSeqIDMissingParamString   "ADNED_SEQ_ID_MISSING"
 
#define ADnEDSeqIDNumMissingParamString   "ADNED_SEQ_ID_NUM_MISSING"
 
#define ADnEDBadTimeStampParamString   "ADNED_BAD_TIMESTAMP"
 
#define ADnEDPChargeParamString   "ADNED_PCHARGE"
 
#define ADnEDPChargeIntParamString   "ADNED_PCHARGE_INT"
 
#define ADnEDEventUpdatePeriodParamString   "ADNED_EVENT_UPDATE_PERIOD"
 
#define ADnEDFrameUpdatePeriodParamString   "ADNED_FRAME_UPDATE_PERIOD"
 
#define ADnEDNumChannelsParamString   "ADNED_NUM_CHANNELS"
 
#define ADnEDPVNameParamString   "ADNED_PV_NAME"
 
#define ADnEDNumDetParamString   "ADNED_NUM_DET"
 
#define ADnEDDetPixelNumStartParamString   "ADNED_DET_PIXEL_NUM_START"
 
#define ADnEDDetPixelNumEndParamString   "ADNED_DET_PIXEL_NUM_END"
 
#define ADnEDDetPixelNumSizeParamString   "ADNED_DET_PIXEL_NUM_SIZE"
 
#define ADnEDDetTOFNumBinsParamString   "ADNED_DET_TOF_NUM_BINS"
 
#define ADnEDDet2DTypeParamString   "ADNED_DET_2D_TYPE"
 
#define ADnEDDetNDArrayStartParamString   "ADNED_DET_NDARRAY_START"
 
#define ADnEDDetNDArrayEndParamString   "ADNED_DET_NDARRAY_END"
 
#define ADnEDDetNDArraySizeParamString   "ADNED_DET_NDARRAY_SIZE"
 
#define ADnEDDetNDArrayTOFStartParamString   "ADNED_DET_NDARRAY_TOF_START"
 
#define ADnEDDetNDArrayTOFEndParamString   "ADNED_DET_NDARRAY_TOF_END"
 
#define ADnEDDetEventRateParamString   "ADNED_DET_EVENT_RATE"
 
#define ADnEDDetEventTotalParamString   "ADNED_DET_EVENT_TOTAL"
 
#define ADnEDDetTOFROIStartParamString   "ADNED_DET_TOF_ROI_START"
 
#define ADnEDDetTOFROISizeParamString   "ADNED_DET_TOF_ROI_SIZE"
 
#define ADnEDDetTOFROIEnableParamString   "ADNED_DET_TOF_ROI_ENABLE"
 
#define ADnEDDetTOFArrayResetParamString   "ADNED_DET_TOF_ARRAY_RESET"
 
#define ADnEDDetTOFTransFile0ParamString   "ADNED_DET_TOF_TRANS_FILE0"
 
#define ADnEDDetTOFTransFile1ParamString   "ADNED_DET_TOF_TRANS_FILE1"
 
#define ADnEDDetTOFTransFile2ParamString   "ADNED_DET_TOF_TRANS_FILE2"
 
#define ADnEDDetTOFTransFile3ParamString   "ADNED_DET_TOF_TRANS_FILE3"
 
#define ADnEDDetTOFTransFile4ParamString   "ADNED_DET_TOF_TRANS_FILE4"
 
#define ADnEDDetTOFTransFile5ParamString   "ADNED_DET_TOF_TRANS_FILE5"
 
#define ADnEDDetTOFTransInt0ParamString   "ADNED_DET_TOF_TRANS_INT0"
 
#define ADnEDDetTOFTransInt1ParamString   "ADNED_DET_TOF_TRANS_INT1"
 
#define ADnEDDetTOFTransInt2ParamString   "ADNED_DET_TOF_TRANS_INT2"
 
#define ADnEDDetTOFTransInt3ParamString   "ADNED_DET_TOF_TRANS_INT3"
 
#define ADnEDDetTOFTransInt4ParamString   "ADNED_DET_TOF_TRANS_INT4"
 
#define ADnEDDetTOFTransInt5ParamString   "ADNED_DET_TOF_TRANS_INT5"
 
#define ADnEDDetTOFTransFloat0ParamString   "ADNED_DET_TOF_TRANS_FLOAT0"
 
#define ADnEDDetTOFTransFloat1ParamString   "ADNED_DET_TOF_TRANS_FLOAT1"
 
#define ADnEDDetTOFTransFloat2ParamString   "ADNED_DET_TOF_TRANS_FLOAT2"
 
#define ADnEDDetTOFTransFloat3ParamString   "ADNED_DET_TOF_TRANS_FLOAT3"
 
#define ADnEDDetTOFTransFloat4ParamString   "ADNED_DET_TOF_TRANS_FLOAT4"
 
#define ADnEDDetTOFTransFloat5ParamString   "ADNED_DET_TOF_TRANS_FLOAT5"
 
#define ADnEDDetTOFTransPrintParamString   "ADNED_DET_TOF_TRANS_PRINT"
 
#define ADnEDDetTOFTransDebugParamString   "ADNED_DET_TOF_TRANS_DEBUG"
 
#define ADnEDDetTOFTransTypeParamString   "ADNED_DET_TOF_TRANS_TYPE"
 
#define ADnEDDetTOFTransOffsetParamString   "ADNED_DET_TOF_TRANS_OFFSET"
 
#define ADnEDDetTOFTransScaleParamString   "ADNED_DET_TOF_TRANS_SCALE"
 
#define ADnEDDetPixelMapFileParamString   "ADNED_DET_PIXEL_MAP_FILE"
 
#define ADnEDDetPixelMapPrintParamString   "ADNED_DET_PIXEL_MAP_PRINT"
 
#define ADnEDDetPixelMapEnableParamString   "ADNED_DET_PIXEL_MAP_ENABLE"
 
#define ADnEDDetPixelROIStartXParamString   "ADNED_DET_PIXEL_ROI_START_X"
 
#define ADnEDDetPixelROISizeXParamString   "ADNED_DET_PIXEL_ROI_SIZE_X"
 
#define ADnEDDetPixelROIStartYParamString   "ADNED_DET_PIXEL_ROI_START_Y"
 
#define ADnEDDetPixelROISizeYParamString   "ADNED_DET_PIXEL_ROI_SIZE_Y"
 
#define ADnEDDetPixelSizeXParamString   "ADNED_DET_PIXEL_SIZE_X"
 
#define ADnEDDetPixelROIEnableParamString   "ADNED_DET_PIXEL_ROI_ENABLE"
 
#define ADnEDTOFMaxParamString   "ADNED_TOF_MAX"
 
#define ADnEDAllocSpaceParamString   "ADNED_ALLOC_SPACE"
 
#define ADnEDAllocSpaceStatusParamString   "ADNED_ALLOC_SPACE_STATUS"
 
#define ADNED_FIRST_DRIVER_COMMAND   ADnEDFirstParam
 
#define ADNED_LAST_DRIVER_COMMAND   ADnEDLastParam
 
#define NUM_DRIVER_PARAMS   (&ADNED_LAST_DRIVER_COMMAND - &ADNED_FIRST_DRIVER_COMMAND + 1)
 

Functions

asynStatus ADnEDConfig (const char *portName, int maxBuffers, size_t maxMemory, int debug)
 The following functions have C linkage, and can be called directly or from iocsh. More...
 
asynStatus ADnEDCreateFactory ()
 Config function for IOC shell. More...
 

Macro Definition Documentation

◆ ADNED_FIRST_DRIVER_COMMAND

#define ADNED_FIRST_DRIVER_COMMAND   ADnEDFirstParam

◆ ADNED_LAST_DRIVER_COMMAND

#define ADNED_LAST_DRIVER_COMMAND   ADnEDLastParam

◆ ADnEDAllocSpaceParamString

#define ADnEDAllocSpaceParamString   "ADNED_ALLOC_SPACE"

◆ ADnEDAllocSpaceStatusParamString

#define ADnEDAllocSpaceStatusParamString   "ADNED_ALLOC_SPACE_STATUS"

◆ ADnEDBadTimeStampParamString

#define ADnEDBadTimeStampParamString   "ADNED_BAD_TIMESTAMP"

◆ ADnEDDet2DTypeParamString

#define ADnEDDet2DTypeParamString   "ADNED_DET_2D_TYPE"

◆ ADnEDDetEventRateParamString

#define ADnEDDetEventRateParamString   "ADNED_DET_EVENT_RATE"

◆ ADnEDDetEventTotalParamString

#define ADnEDDetEventTotalParamString   "ADNED_DET_EVENT_TOTAL"

◆ ADnEDDetNDArrayEndParamString

#define ADnEDDetNDArrayEndParamString   "ADNED_DET_NDARRAY_END"

◆ ADnEDDetNDArraySizeParamString

#define ADnEDDetNDArraySizeParamString   "ADNED_DET_NDARRAY_SIZE"

◆ ADnEDDetNDArrayStartParamString

#define ADnEDDetNDArrayStartParamString   "ADNED_DET_NDARRAY_START"

◆ ADnEDDetNDArrayTOFEndParamString

#define ADnEDDetNDArrayTOFEndParamString   "ADNED_DET_NDARRAY_TOF_END"

◆ ADnEDDetNDArrayTOFStartParamString

#define ADnEDDetNDArrayTOFStartParamString   "ADNED_DET_NDARRAY_TOF_START"

◆ ADnEDDetPixelMapEnableParamString

#define ADnEDDetPixelMapEnableParamString   "ADNED_DET_PIXEL_MAP_ENABLE"

◆ ADnEDDetPixelMapFileParamString

#define ADnEDDetPixelMapFileParamString   "ADNED_DET_PIXEL_MAP_FILE"

◆ ADnEDDetPixelMapPrintParamString

#define ADnEDDetPixelMapPrintParamString   "ADNED_DET_PIXEL_MAP_PRINT"

◆ ADnEDDetPixelNumEndParamString

#define ADnEDDetPixelNumEndParamString   "ADNED_DET_PIXEL_NUM_END"

◆ ADnEDDetPixelNumSizeParamString

#define ADnEDDetPixelNumSizeParamString   "ADNED_DET_PIXEL_NUM_SIZE"

◆ ADnEDDetPixelNumStartParamString

#define ADnEDDetPixelNumStartParamString   "ADNED_DET_PIXEL_NUM_START"

◆ ADnEDDetPixelROIEnableParamString

#define ADnEDDetPixelROIEnableParamString   "ADNED_DET_PIXEL_ROI_ENABLE"

◆ ADnEDDetPixelROISizeXParamString

#define ADnEDDetPixelROISizeXParamString   "ADNED_DET_PIXEL_ROI_SIZE_X"

◆ ADnEDDetPixelROISizeYParamString

#define ADnEDDetPixelROISizeYParamString   "ADNED_DET_PIXEL_ROI_SIZE_Y"

◆ ADnEDDetPixelROIStartXParamString

#define ADnEDDetPixelROIStartXParamString   "ADNED_DET_PIXEL_ROI_START_X"

◆ ADnEDDetPixelROIStartYParamString

#define ADnEDDetPixelROIStartYParamString   "ADNED_DET_PIXEL_ROI_START_Y"

◆ ADnEDDetPixelSizeXParamString

#define ADnEDDetPixelSizeXParamString   "ADNED_DET_PIXEL_SIZE_X"

◆ ADnEDDetTOFArrayResetParamString

#define ADnEDDetTOFArrayResetParamString   "ADNED_DET_TOF_ARRAY_RESET"

◆ ADnEDDetTOFNumBinsParamString

#define ADnEDDetTOFNumBinsParamString   "ADNED_DET_TOF_NUM_BINS"

◆ ADnEDDetTOFROIEnableParamString

#define ADnEDDetTOFROIEnableParamString   "ADNED_DET_TOF_ROI_ENABLE"

◆ ADnEDDetTOFROISizeParamString

#define ADnEDDetTOFROISizeParamString   "ADNED_DET_TOF_ROI_SIZE"

◆ ADnEDDetTOFROIStartParamString

#define ADnEDDetTOFROIStartParamString   "ADNED_DET_TOF_ROI_START"

◆ ADnEDDetTOFTransDebugParamString

#define ADnEDDetTOFTransDebugParamString   "ADNED_DET_TOF_TRANS_DEBUG"

◆ ADnEDDetTOFTransFile0ParamString

#define ADnEDDetTOFTransFile0ParamString   "ADNED_DET_TOF_TRANS_FILE0"

◆ ADnEDDetTOFTransFile1ParamString

#define ADnEDDetTOFTransFile1ParamString   "ADNED_DET_TOF_TRANS_FILE1"

◆ ADnEDDetTOFTransFile2ParamString

#define ADnEDDetTOFTransFile2ParamString   "ADNED_DET_TOF_TRANS_FILE2"

◆ ADnEDDetTOFTransFile3ParamString

#define ADnEDDetTOFTransFile3ParamString   "ADNED_DET_TOF_TRANS_FILE3"

◆ ADnEDDetTOFTransFile4ParamString

#define ADnEDDetTOFTransFile4ParamString   "ADNED_DET_TOF_TRANS_FILE4"

◆ ADnEDDetTOFTransFile5ParamString

#define ADnEDDetTOFTransFile5ParamString   "ADNED_DET_TOF_TRANS_FILE5"

◆ ADnEDDetTOFTransFloat0ParamString

#define ADnEDDetTOFTransFloat0ParamString   "ADNED_DET_TOF_TRANS_FLOAT0"

◆ ADnEDDetTOFTransFloat1ParamString

#define ADnEDDetTOFTransFloat1ParamString   "ADNED_DET_TOF_TRANS_FLOAT1"

◆ ADnEDDetTOFTransFloat2ParamString

#define ADnEDDetTOFTransFloat2ParamString   "ADNED_DET_TOF_TRANS_FLOAT2"

◆ ADnEDDetTOFTransFloat3ParamString

#define ADnEDDetTOFTransFloat3ParamString   "ADNED_DET_TOF_TRANS_FLOAT3"

◆ ADnEDDetTOFTransFloat4ParamString

#define ADnEDDetTOFTransFloat4ParamString   "ADNED_DET_TOF_TRANS_FLOAT4"

◆ ADnEDDetTOFTransFloat5ParamString

#define ADnEDDetTOFTransFloat5ParamString   "ADNED_DET_TOF_TRANS_FLOAT5"

◆ ADnEDDetTOFTransInt0ParamString

#define ADnEDDetTOFTransInt0ParamString   "ADNED_DET_TOF_TRANS_INT0"

◆ ADnEDDetTOFTransInt1ParamString

#define ADnEDDetTOFTransInt1ParamString   "ADNED_DET_TOF_TRANS_INT1"

◆ ADnEDDetTOFTransInt2ParamString

#define ADnEDDetTOFTransInt2ParamString   "ADNED_DET_TOF_TRANS_INT2"

◆ ADnEDDetTOFTransInt3ParamString

#define ADnEDDetTOFTransInt3ParamString   "ADNED_DET_TOF_TRANS_INT3"

◆ ADnEDDetTOFTransInt4ParamString

#define ADnEDDetTOFTransInt4ParamString   "ADNED_DET_TOF_TRANS_INT4"

◆ ADnEDDetTOFTransInt5ParamString

#define ADnEDDetTOFTransInt5ParamString   "ADNED_DET_TOF_TRANS_INT5"

◆ ADnEDDetTOFTransOffsetParamString

#define ADnEDDetTOFTransOffsetParamString   "ADNED_DET_TOF_TRANS_OFFSET"

◆ ADnEDDetTOFTransPrintParamString

#define ADnEDDetTOFTransPrintParamString   "ADNED_DET_TOF_TRANS_PRINT"

◆ ADnEDDetTOFTransScaleParamString

#define ADnEDDetTOFTransScaleParamString   "ADNED_DET_TOF_TRANS_SCALE"

◆ ADnEDDetTOFTransTypeParamString

#define ADnEDDetTOFTransTypeParamString   "ADNED_DET_TOF_TRANS_TYPE"

◆ ADnEDEventDebugParamString

#define ADnEDEventDebugParamString   "ADNED_EVENT_DEBUG"

◆ ADnEDEventRateParamString

#define ADnEDEventRateParamString   "ADNED_EVENT_RATE"

◆ ADnEDEventUpdatePeriodParamString

#define ADnEDEventUpdatePeriodParamString   "ADNED_EVENT_UPDATE_PERIOD"

◆ ADnEDFirstParamString

#define ADnEDFirstParamString   "ADNED_FIRST"

areaDetector driver that is a V4 neutron data client for nED.

Author
Matt Pearson
Date
Sept 2014

◆ ADnEDFrameUpdatePeriodParamString

#define ADnEDFrameUpdatePeriodParamString   "ADNED_FRAME_UPDATE_PERIOD"

◆ ADnEDLastParamString

#define ADnEDLastParamString   "ADNED_LAST"

◆ ADnEDNumChannelsParamString

#define ADnEDNumChannelsParamString   "ADNED_NUM_CHANNELS"

◆ ADnEDNumDetParamString

#define ADnEDNumDetParamString   "ADNED_NUM_DET"

◆ ADnEDPauseParamString

#define ADnEDPauseParamString   "ADNED_PAUSE"

◆ ADnEDPChargeIntParamString

#define ADnEDPChargeIntParamString   "ADNED_PCHARGE_INT"

◆ ADnEDPChargeParamString

#define ADnEDPChargeParamString   "ADNED_PCHARGE"

◆ ADnEDPulseCounterParamString

#define ADnEDPulseCounterParamString   "ADNED_PULSE_COUNTER"

◆ ADnEDPVNameParamString

#define ADnEDPVNameParamString   "ADNED_PV_NAME"

◆ ADnEDResetParamString

#define ADnEDResetParamString   "ADNED_RESET"

◆ ADnEDSeqCounterParamString

#define ADnEDSeqCounterParamString   "ADNED_SEQ_COUNTER"

◆ ADnEDSeqIDMissingParamString

#define ADnEDSeqIDMissingParamString   "ADNED_SEQ_ID_MISSING"

◆ ADnEDSeqIDNumMissingParamString

#define ADnEDSeqIDNumMissingParamString   "ADNED_SEQ_ID_NUM_MISSING"

◆ ADnEDSeqIDParamString

#define ADnEDSeqIDParamString   "ADNED_SEQ_ID"

◆ ADnEDStartParamString

#define ADnEDStartParamString   "ADNED_START"

◆ ADnEDStopParamString

#define ADnEDStopParamString   "ADNED_STOP"

◆ ADnEDTOFMaxParamString

#define ADnEDTOFMaxParamString   "ADNED_TOF_MAX"

◆ NUM_DRIVER_PARAMS

#define NUM_DRIVER_PARAMS   (&ADNED_LAST_DRIVER_COMMAND - &ADNED_FIRST_DRIVER_COMMAND + 1)

Function Documentation

◆ ADnEDConfig()

asynStatus ADnEDConfig ( const char *  portName,
int  maxBuffers,
size_t  maxMemory,
int  debug 
)

The following functions have C linkage, and can be called directly or from iocsh.

Config function for IOC shell. It instantiates an instance of the driver.

Parameters
portNameThe Asyn port name to use
maxBuffersUsed by asynPortDriver (set to -1 for unlimited)
maxMemoryUsed by asynPortDriver (set to -1 for unlimited)
debugThis debug flag is passed to xsp3_config in the Xspress API (0 or 1)

◆ ADnEDCreateFactory()

asynStatus ADnEDCreateFactory ( )

Config function for IOC shell.

It instantiates a PVAccess client factory for this IOC.