areaDetector
3-14
EPICS areaDetector framework
|
#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... | |
#define ADNED_FIRST_DRIVER_COMMAND ADnEDFirstParam |
#define ADNED_LAST_DRIVER_COMMAND ADnEDLastParam |
#define ADnEDAllocSpaceParamString "ADNED_ALLOC_SPACE" |
#define ADnEDAllocSpaceStatusParamString "ADNED_ALLOC_SPACE_STATUS" |
#define ADnEDBadTimeStampParamString "ADNED_BAD_TIMESTAMP" |
#define ADnEDDet2DTypeParamString "ADNED_DET_2D_TYPE" |
#define ADnEDDetEventRateParamString "ADNED_DET_EVENT_RATE" |
#define ADnEDDetEventTotalParamString "ADNED_DET_EVENT_TOTAL" |
#define ADnEDDetNDArrayEndParamString "ADNED_DET_NDARRAY_END" |
#define ADnEDDetNDArraySizeParamString "ADNED_DET_NDARRAY_SIZE" |
#define ADnEDDetNDArrayStartParamString "ADNED_DET_NDARRAY_START" |
#define ADnEDDetNDArrayTOFEndParamString "ADNED_DET_NDARRAY_TOF_END" |
#define ADnEDDetNDArrayTOFStartParamString "ADNED_DET_NDARRAY_TOF_START" |
#define ADnEDDetPixelMapEnableParamString "ADNED_DET_PIXEL_MAP_ENABLE" |
#define ADnEDDetPixelMapFileParamString "ADNED_DET_PIXEL_MAP_FILE" |
#define ADnEDDetPixelMapPrintParamString "ADNED_DET_PIXEL_MAP_PRINT" |
#define ADnEDDetPixelNumEndParamString "ADNED_DET_PIXEL_NUM_END" |
#define ADnEDDetPixelNumSizeParamString "ADNED_DET_PIXEL_NUM_SIZE" |
#define ADnEDDetPixelNumStartParamString "ADNED_DET_PIXEL_NUM_START" |
#define ADnEDDetPixelROIEnableParamString "ADNED_DET_PIXEL_ROI_ENABLE" |
#define ADnEDDetPixelROISizeXParamString "ADNED_DET_PIXEL_ROI_SIZE_X" |
#define ADnEDDetPixelROISizeYParamString "ADNED_DET_PIXEL_ROI_SIZE_Y" |
#define ADnEDDetPixelROIStartXParamString "ADNED_DET_PIXEL_ROI_START_X" |
#define ADnEDDetPixelROIStartYParamString "ADNED_DET_PIXEL_ROI_START_Y" |
#define ADnEDDetPixelSizeXParamString "ADNED_DET_PIXEL_SIZE_X" |
#define ADnEDDetTOFArrayResetParamString "ADNED_DET_TOF_ARRAY_RESET" |
#define ADnEDDetTOFNumBinsParamString "ADNED_DET_TOF_NUM_BINS" |
#define ADnEDDetTOFROIEnableParamString "ADNED_DET_TOF_ROI_ENABLE" |
#define ADnEDDetTOFROISizeParamString "ADNED_DET_TOF_ROI_SIZE" |
#define ADnEDDetTOFROIStartParamString "ADNED_DET_TOF_ROI_START" |
#define ADnEDDetTOFTransDebugParamString "ADNED_DET_TOF_TRANS_DEBUG" |
#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 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 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 ADnEDDetTOFTransOffsetParamString "ADNED_DET_TOF_TRANS_OFFSET" |
#define ADnEDDetTOFTransPrintParamString "ADNED_DET_TOF_TRANS_PRINT" |
#define ADnEDDetTOFTransScaleParamString "ADNED_DET_TOF_TRANS_SCALE" |
#define ADnEDDetTOFTransTypeParamString "ADNED_DET_TOF_TRANS_TYPE" |
#define ADnEDEventDebugParamString "ADNED_EVENT_DEBUG" |
#define ADnEDEventRateParamString "ADNED_EVENT_RATE" |
#define ADnEDEventUpdatePeriodParamString "ADNED_EVENT_UPDATE_PERIOD" |
#define ADnEDFirstParamString "ADNED_FIRST" |
areaDetector driver that is a V4 neutron data client for nED.
#define ADnEDFrameUpdatePeriodParamString "ADNED_FRAME_UPDATE_PERIOD" |
#define ADnEDLastParamString "ADNED_LAST" |
#define ADnEDNumChannelsParamString "ADNED_NUM_CHANNELS" |
#define ADnEDNumDetParamString "ADNED_NUM_DET" |
#define ADnEDPauseParamString "ADNED_PAUSE" |
#define ADnEDPChargeIntParamString "ADNED_PCHARGE_INT" |
#define ADnEDPChargeParamString "ADNED_PCHARGE" |
#define ADnEDPulseCounterParamString "ADNED_PULSE_COUNTER" |
#define ADnEDPVNameParamString "ADNED_PV_NAME" |
#define ADnEDResetParamString "ADNED_RESET" |
#define ADnEDSeqCounterParamString "ADNED_SEQ_COUNTER" |
#define ADnEDSeqIDMissingParamString "ADNED_SEQ_ID_MISSING" |
#define ADnEDSeqIDNumMissingParamString "ADNED_SEQ_ID_NUM_MISSING" |
#define ADnEDSeqIDParamString "ADNED_SEQ_ID" |
#define ADnEDStartParamString "ADNED_START" |
#define ADnEDStopParamString "ADNED_STOP" |
#define ADnEDTOFMaxParamString "ADNED_TOF_MAX" |
#define NUM_DRIVER_PARAMS (&ADNED_LAST_DRIVER_COMMAND - &ADNED_FIRST_DRIVER_COMMAND + 1) |
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.
portName | The Asyn port name to use |
maxBuffers | Used by asynPortDriver (set to -1 for unlimited) |
maxMemory | Used by asynPortDriver (set to -1 for unlimited) |
debug | This debug flag is passed to xsp3_config in the Xspress API (0 or 1) |
asynStatus ADnEDCreateFactory | ( | ) |
Config function for IOC shell.
It instantiates a PVAccess client factory for this IOC.