areaDetector 1-8
Public Member Functions | Protected Attributes
PerkinElmer Class Reference

Driver for the Perkin Elmer flat panel amorphous silicon detectors. More...

#include <PerkinElmer.h>

Inheritance diagram for PerkinElmer:
ADDriver asynNDArrayDriver asynPortDriver

List of all members.

Public Member Functions

 PerkinElmer (const char *portName, int IDType, const char *IDValue, int maxBuffers, size_t maxMemory, int priority, int stackSize)
 Constructor for Perkin Elmer driver; most parameters are simply passed to ADDriver::ADDriver.
virtual asynStatus writeInt32 (asynUser *pasynUser, epicsInt32 value)
 Called when asyn clients call pasynInt32->write().
virtual asynStatus writeFloat64 (asynUser *pasynUser, epicsFloat64 value)
 Called when asyn clients call pasynFloat64->write().
void report (FILE *fp, int details)
 Report status of the driver.
void endFrameCallback (HACQDESC hAcqDesc)
 callback function that is called by XISL every frame at end of data transfer
void endAcqCallback (HACQDESC hAcqDesc)
 callback function that is called by XISL at end of acquisition
void acquireStopTask (void)
 ~PerkinElmer ()
 Destructor for Perkin Elmer driver; most parameters are simply passed to ADDriver::ADDriver.

Protected Attributes

int PE_SystemID
int PE_Initialize
int PE_CorrectionsDirectory
int PE_AcquireOffset
int PE_NumOffsetFrames
int PE_CurrentOffsetFrame
int PE_UseOffset
int PE_OffsetAvailable
int PE_AcquireGain
int PE_NumGainFrames
int PE_CurrentGainFrame
int PE_UseGain
int PE_GainAvailable
int PE_GainFile
int PE_LoadGainFile
int PE_SaveGainFile
int PE_UsePixelCorrection
int PE_PixelCorrectionAvailable
int PE_PixelCorrectionFile
int PE_LoadPixelCorrectionFile
int PE_Gain
int PE_DwellTime
int PE_NumFrameBuffers
int PE_Trigger
int PE_SyncTime
int PE_FrameBufferIndex
int PE_ImageNumber
int PE_SkipFrames
int PE_NumFramesToSkip

Detailed Description

Driver for the Perkin Elmer flat panel amorphous silicon detectors.


Constructor & Destructor Documentation

PerkinElmer::PerkinElmer ( const char *  portName,
int  IDType,
const char *  IDValue,
int  maxBuffers,
size_t  maxMemory,
int  priority,
int  stackSize 
)

Constructor for Perkin Elmer driver; most parameters are simply passed to ADDriver::ADDriver.

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

Parameters:
[in]portNameThe name of the asyn port driver to be created.
[in]IDTypeThe type of system ID being specifed in IDValue. Allowed values are:
IDType = 0 Frame grabber card, IDValue = "" (currently always uses the first frame grabber card)
IDType = 1 GigE detector, IDValue = IP address (e.g. 164.54.160.21)
IDType = 2 GigE detector, IDValue = MAC address (e.g. 00005b032e6b, must be lower-case letters)
IDType = 3 GigE detector, IDValue = detector name (e.g. 8#2608). Can get network detector names with asynReport(10)
[in]IDValueThe detector ID as explained above (IP name, MAC address, detector name)
[in]maxBuffersThe maximum number of NDArray buffers that the NDArrayPool for this driver is allowed to allocate. Set this to -1 to allow an unlimited number of buffers.
[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.
PerkinElmer::~PerkinElmer ( )

Destructor for Perkin Elmer driver; most parameters are simply passed to ADDriver::ADDriver.

Frees all resources and calls Acquisition_Close()


Member Function Documentation

void PerkinElmer::acquireStopTask ( void  )
void PerkinElmer::endAcqCallback ( HACQDESC  hAcqDesc)

callback function that is called by XISL at end of acquisition

void PerkinElmer::endFrameCallback ( HACQDESC  hAcqDesc)

callback function that is called by XISL every frame at end of data transfer

Find offset into secondary frame buffer

Correct for detector offset and gain as necessary

Correct for dead pixels as necessary

void PerkinElmer::report ( FILE *  fp,
int  details 
) [virtual]

Report status of the driver.

Prints details about the detector in us if details>0. Prints information about all local and network detectors if details>1. It then calls the ADDriver::report() method.

Parameters:
[in]fpFile pointed passed by caller where the output is written to.
[in]detailsControls the level of detail in the report.

Reimplemented from asynNDArrayDriver.

asynStatus PerkinElmer::writeFloat64 ( asynUser *  pasynUser,
epicsFloat64  value 
) [virtual]

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

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

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

Reimplemented from asynPortDriver.

asynStatus PerkinElmer::writeInt32 ( asynUser *  pasynUser,
epicsInt32  value 
) [virtual]

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

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

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

Reimplemented from ADDriver.


Member Data Documentation

int PerkinElmer::PE_AcquireGain [protected]
int PerkinElmer::PE_DwellTime [protected]
int PerkinElmer::PE_Gain [protected]
int PerkinElmer::PE_GainFile [protected]
int PerkinElmer::PE_ImageNumber [protected]
int PerkinElmer::PE_Initialize [protected]
int PerkinElmer::PE_SkipFrames [protected]
int PerkinElmer::PE_SyncTime [protected]
int PerkinElmer::PE_SystemID [protected]
int PerkinElmer::PE_Trigger [protected]
int PerkinElmer::PE_UseGain [protected]
int PerkinElmer::PE_UseOffset [protected]

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