areaDetector 1-8
Classes | Defines | Enumerations | Functions
/home/epics/devel/areaDetector/ADApp/pilatusSrc/pilatusDetector.cpp 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 <cbf_ad.h>
#include <tiffio.h>
#include <epicsTime.h>
#include <epicsThread.h>
#include <epicsEvent.h>
#include <epicsMutex.h>
#include <epicsString.h>
#include <epicsStdio.h>
#include <cantProceed.h>
#include <iocsh.h>
#include <epicsExport.h>
#include <asynOctetSyncIO.h>
#include "ADDriver.h"

Classes

struct  badPixel
 Bad pixel structure for Pilatus detector. More...
class  pilatusDetector
 Driver for Dectris Pilatus pixel array detectors using their camserver server over TCP/IP socket. More...

Defines

#define MAX_MESSAGE_SIZE   256
 Messages to/from camserver.
#define MAX_FILENAME_LEN   256
#define MAX_BAD_PIXELS   100
#define ASYN_POLL_TIME   .01
 Time to poll when reading from camserver.
#define CAMSERVER_DEFAULT_TIMEOUT   1.0
#define CAMSERVER_ACQUIRE_TIMEOUT   10.
 Additional time to wait for a camserver response after the acquire should be complete.
#define FILE_READ_DELAY   .01
 Time between checking to see if image file is complete.
#define PilatusDelayTimeString   "DELAY_TIME"
#define PilatusThresholdString   "THRESHOLD"
#define PilatusThresholdApplyString   "THRESHOLD_APPLY"
#define PilatusThresholdAutoApplyString   "THRESHOLD_AUTO_APPLY"
#define PilatusArmedString   "ARMED"
#define PilatusImageFileTmotString   "IMAGE_FILE_TMOT"
#define PilatusBadPixelFileString   "BAD_PIXEL_FILE"
#define PilatusNumBadPixelsString   "NUM_BAD_PIXELS"
#define PilatusFlatFieldFileString   "FLAT_FIELD_FILE"
#define PilatusMinFlatFieldString   "MIN_FLAT_FIELD"
#define PilatusFlatFieldValidString   "FLAT_FIELD_VALID"
#define PilatusGapFillString   "GAP_FILL"
#define PilatusWavelengthString   "WAVELENGTH"
#define PilatusEnergyLowString   "ENERGY_LOW"
#define PilatusEnergyHighString   "ENERGY_HIGH"
#define PilatusDetDistString   "DET_DIST"
#define PilatusDetVOffsetString   "DET_VOFFSET"
#define PilatusBeamXString   "BEAM_X"
#define PilatusBeamYString   "BEAM_Y"
#define PilatusFluxString   "FLUX"
#define PilatusFilterTransmString   "FILTER_TRANSM"
#define PilatusStartAngleString   "START_ANGLE"
#define PilatusAngleIncrString   "ANGLE_INCR"
#define PilatusDet2thetaString   "DET_2THETA"
#define PilatusPolarizationString   "POLARIZATION"
#define PilatusAlphaString   "ALPHA"
#define PilatusKappaString   "KAPPA"
#define PilatusPhiString   "PHI"
#define PilatusChiString   "CHI"
#define PilatusOscillAxisString   "OSCILL_AXIS"
#define PilatusNumOscillString   "NUM_OSCILL"
#define PilatusPixelCutOffString   "PIXEL_CUTOFF"
#define PilatusThTemp0String   "TH_TEMP_0"
#define PilatusThTemp1String   "TH_TEMP_1"
#define PilatusThTemp2String   "TH_TEMP_2"
#define PilatusThHumid0String   "TH_HUMID_0"
#define PilatusThHumid1String   "TH_HUMID_1"
#define PilatusThHumid2String   "TH_HUMID_2"
#define PilatusTvxVersionString   "TVXVERSION"
#define PilatusCbfTemplateFileString   "CBFTEMPLATEFILE"
#define FIRST_PILATUS_PARAM   PilatusDelayTime
#define LAST_PILATUS_PARAM   PilatusCbfTemplateFile
#define NUM_PILATUS_PARAMS   (&LAST_PILATUS_PARAM - &FIRST_PILATUS_PARAM + 1)

Enumerations

enum  PilatusTriggerMode {
  TMInternal, TMExternalEnable, TMExternalTrigger, TMMultipleExternalTrigger,
  TMAlignment
}
 Trigger modes. More...

Functions

int pilatusDetectorConfig (const char *portName, const char *camserverPort, int maxSizeX, int maxSizeY, int maxBuffers, size_t maxMemory, int priority, int stackSize)
 epicsExportRegistrar (pilatusDetectorRegister)

Define Documentation

#define ASYN_POLL_TIME   .01

Time to poll when reading from camserver.

#define CAMSERVER_ACQUIRE_TIMEOUT   10.

Additional time to wait for a camserver response after the acquire should be complete.

#define CAMSERVER_DEFAULT_TIMEOUT   1.0
#define FILE_READ_DELAY   .01

Time between checking to see if image file is complete.

#define FIRST_PILATUS_PARAM   PilatusDelayTime
#define LAST_PILATUS_PARAM   PilatusCbfTemplateFile
#define MAX_BAD_PIXELS   100
#define MAX_FILENAME_LEN   256
#define MAX_MESSAGE_SIZE   256

Messages to/from camserver.

#define NUM_PILATUS_PARAMS   (&LAST_PILATUS_PARAM - &FIRST_PILATUS_PARAM + 1)
#define PilatusAlphaString   "ALPHA"
#define PilatusAngleIncrString   "ANGLE_INCR"
#define PilatusArmedString   "ARMED"
#define PilatusBadPixelFileString   "BAD_PIXEL_FILE"
#define PilatusBeamXString   "BEAM_X"
#define PilatusBeamYString   "BEAM_Y"
#define PilatusCbfTemplateFileString   "CBFTEMPLATEFILE"
#define PilatusChiString   "CHI"
#define PilatusDelayTimeString   "DELAY_TIME"
#define PilatusDet2thetaString   "DET_2THETA"
#define PilatusDetDistString   "DET_DIST"
#define PilatusDetVOffsetString   "DET_VOFFSET"
#define PilatusEnergyHighString   "ENERGY_HIGH"
#define PilatusEnergyLowString   "ENERGY_LOW"
#define PilatusFilterTransmString   "FILTER_TRANSM"
#define PilatusFlatFieldFileString   "FLAT_FIELD_FILE"
#define PilatusFlatFieldValidString   "FLAT_FIELD_VALID"
#define PilatusFluxString   "FLUX"
#define PilatusGapFillString   "GAP_FILL"
#define PilatusImageFileTmotString   "IMAGE_FILE_TMOT"
#define PilatusKappaString   "KAPPA"
#define PilatusMinFlatFieldString   "MIN_FLAT_FIELD"
#define PilatusNumBadPixelsString   "NUM_BAD_PIXELS"
#define PilatusNumOscillString   "NUM_OSCILL"
#define PilatusOscillAxisString   "OSCILL_AXIS"
#define PilatusPhiString   "PHI"
#define PilatusPixelCutOffString   "PIXEL_CUTOFF"
#define PilatusPolarizationString   "POLARIZATION"
#define PilatusStartAngleString   "START_ANGLE"
#define PilatusThHumid0String   "TH_HUMID_0"
#define PilatusThHumid1String   "TH_HUMID_1"
#define PilatusThHumid2String   "TH_HUMID_2"
#define PilatusThresholdApplyString   "THRESHOLD_APPLY"
#define PilatusThresholdAutoApplyString   "THRESHOLD_AUTO_APPLY"
#define PilatusThresholdString   "THRESHOLD"
#define PilatusThTemp0String   "TH_TEMP_0"
#define PilatusThTemp1String   "TH_TEMP_1"
#define PilatusThTemp2String   "TH_TEMP_2"
#define PilatusTvxVersionString   "TVXVERSION"
#define PilatusWavelengthString   "WAVELENGTH"

Enumeration Type Documentation

Trigger modes.

Enumerator:
TMInternal 
TMExternalEnable 
TMExternalTrigger 
TMMultipleExternalTrigger 
TMAlignment 

Function Documentation

epicsExportRegistrar ( pilatusDetectorRegister  )
int pilatusDetectorConfig ( const char *  portName,
const char *  camserverPort,
int  maxSizeX,
int  maxSizeY,
int  maxBuffers,
size_t  maxMemory,
int  priority,
int  stackSize 
)