areaDetector 1-8
|
Driver for the Perkin Elmer flat panel amorphous silicon detectors. More...
#include <PerkinElmer.h>
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 |
Driver for the Perkin Elmer flat panel amorphous silicon detectors.
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.
[in] | portName | The name of the asyn port driver to be created. |
[in] | IDType | The 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] | IDValue | The detector ID as explained above (IP name, MAC address, detector name) |
[in] | maxBuffers | The 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] | maxMemory | The 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] | priority | The thread priority for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags. |
[in] | stackSize | The 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()
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.
[in] | fp | File pointed passed by caller where the output is written to. |
[in] | details | Controls 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.
[in] | pasynUser | pasynUser structure that encodes the reason and address. |
[in] | value | Value 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..
[in] | pasynUser | pasynUser structure that encodes the reason and address. |
[in] | value | Value to write. |
Reimplemented from ADDriver.
int PerkinElmer::PE_AcquireGain [protected] |
int PerkinElmer::PE_AcquireOffset [protected] |
int PerkinElmer::PE_CorrectionsDirectory [protected] |
int PerkinElmer::PE_CurrentGainFrame [protected] |
int PerkinElmer::PE_CurrentOffsetFrame [protected] |
int PerkinElmer::PE_DwellTime [protected] |
int PerkinElmer::PE_FrameBufferIndex [protected] |
int PerkinElmer::PE_Gain [protected] |
int PerkinElmer::PE_GainAvailable [protected] |
int PerkinElmer::PE_GainFile [protected] |
int PerkinElmer::PE_ImageNumber [protected] |
int PerkinElmer::PE_Initialize [protected] |
int PerkinElmer::PE_LoadGainFile [protected] |
int PerkinElmer::PE_LoadPixelCorrectionFile [protected] |
int PerkinElmer::PE_NumFrameBuffers [protected] |
int PerkinElmer::PE_NumFramesToSkip [protected] |
int PerkinElmer::PE_NumGainFrames [protected] |
int PerkinElmer::PE_NumOffsetFrames [protected] |
int PerkinElmer::PE_OffsetAvailable [protected] |
int PerkinElmer::PE_PixelCorrectionAvailable [protected] |
int PerkinElmer::PE_PixelCorrectionFile [protected] |
int PerkinElmer::PE_SaveGainFile [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] |
int PerkinElmer::PE_UsePixelCorrection [protected] |