BISDetector Class Reference

Driver for Bruker BIS ccd detector using their BIS server over TCP/IP socket. More...

Inheritance diagram for BISDetector:

ADDriver asynNDArrayDriver asynPortDriver

List of all members.

Public Member Functions

 BISDetector (const char *portName, const char *BISCommandPort, const char *BISStatusPort, int maxBuffers, size_t maxMemory, int priority, int stackSize)
 Constructor for BIS driver; most parameters are simply passed to ADDriver::ADDriver.
virtual asynStatus writeInt32 (asynUser *pasynUser, epicsInt32 value)
 Called when asyn clients call pasynInt32->write().
virtual void setShutter (int open)
 Set the shutter position.
void report (FILE *fp, int details)
 Report status of the driver.
void BISTask ()
 This thread controls acquisition, reads SFRM files to get the image data, and does the callbacks to send it to higher layers.
void statusTask ()
 This thread reads status strings from the status socket, makes the string available to EPICS, and sends an eveny when it detects acquisition complete, etc.

Public Attributes

epicsEventId stopEventId
 This should be private but is accessed from C, must be public.

Protected Attributes

int BISSFRMTimeout
int BISNumDarks
int BISStatus


Detailed Description

Driver for Bruker BIS ccd detector using their BIS server over TCP/IP socket.

Constructor & Destructor Documentation

BISDetector::BISDetector ( const char *  portName,
const char *  commandPort,
const char *  statusPort,
int  maxBuffers,
size_t  maxMemory,
int  priority,
int  stackSize 
)

Constructor for BIS 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 for the parameters defined in this class, asynNDArrayDriver, and ADDriver.

Parameters:
[in] portName The name of the asyn port driver to be created.
[in] commandPort The name of the asyn port previously created with drvAsynIPPortConfigure to send commands to BIS.
[in] statusPort The name of the asyn port previously created with drvAsynIPPortConfigure to receive status information from BIS.
[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.


Member Function Documentation

void BISDetector::BISTask (  ) 

This thread controls acquisition, reads SFRM files to get the image data, and does the callbacks to send it to higher layers.

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

Report status of the driver.

Prints details about the driver if details>0. It then calls the ADDriver::report() method.

Parameters:
[in] fp File pointed passed by caller where the output is written to.
[in] details If >0 then driver details are printed.

Reimplemented from asynNDArrayDriver.

void BISDetector::setShutter ( int  open  )  [virtual]

Set the shutter position.

This method will open (1) or close (0) the shutter if ADShutterMode==ADShutterModeEPICS. Drivers will implement setShutter if they support ADShutterModeDetector. If ADShutterMode=ADShutterModeDetector they will control the shutter directly, else they will call this method.

Parameters:
[in] open 1 (open) or 0 (closed)

Reimplemented from ADDriver.

void BISDetector::statusTask (  ) 

This thread reads status strings from the status socket, makes the string available to EPICS, and sends an eveny when it detects acquisition complete, etc.

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

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

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

Parameters:
[in] pasynUser pasynUser structure that encodes the reason and address.
[in] value Value to write.

Reimplemented from ADDriver.


Member Data Documentation

int BISDetector::BISNumDarks [protected]

int BISDetector::BISSFRMTimeout [protected]

int BISDetector::BISStatus [protected]

This should be private but is accessed from C, must be public.


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

Generated on Tue Aug 9 14:44:37 2011 for areaDetector by  doxygen 1.5.7.1