areaDetector 1-9
|
Driver for Bruker BIS ccd detector using their BIS server over TCP/IP socket. More...
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 |
Driver for Bruker BIS ccd detector using their BIS server over TCP/IP socket.
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.
[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. |
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.
[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.
[in] | open | 1 (open) or 0 (closed) |
Reimplemented from ADDriver.
void BISDetector::statusTask | ( | void | ) |
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..
[in] | pasynUser | pasynUser structure that encodes the reason and address. |
[in] | value | Value to write. |
Reimplemented from ADDriver.
int BISDetector::BISNumDarks [protected] |
int BISDetector::BISSFRMTimeout [protected] |
int BISDetector::BISStatus [protected] |
epicsEventId BISDetector::stopEventId |
This should be private but is accessed from C, must be public.