AreaDetector driver for integrating PIXCI® camera link frame grabbers with supported cameras into EPICS.
Uses the XCLIB™ Library to interface with frame grabbers.
- PIXCI® EB1
- PIXCI® E8
This software has only been tested on the above camera link frame grabbers but should work for other similar ones too.
The PIXCI® E8 User's Manual and PIXCI® EB1 User's Manual from EPIX, Inc were used to inform the development of ADPixci.
The Eagle XV II Instruction Manual from Raptor Photonics was used to inform the development of ADRaptorEagleXV, but it is only available upon request from their support team.
The high level architecture of this driver is shown in the below diagram.
Note: this does not show all methods and attributes.
The abstract class ADPixci inherits from the base areaDetector driver and provides generic code for using PIXCI® frame grabbers with areaDetector.
ADRaptorEagleXV inherits from ADPixci, providing camera specific code and serial commands.
classDiagram
direction LR
ADDriver <|-- ADPixci
ADPixci <|-- ADRaptorEagleXV
class ADDriver{
- deviceIsReachable: bool
+ writeInt32()
+ connect()
+ getShutter()
}
class ADPixci["*ADPixci*"]{
# driverName: string
- paramMsgQue: Queue
+ acquireTask()
+ paramTask()
# addtoParamQueue()
# writeReadSerial() int
# writeInt32() asynStatus
# writeFloat64() asynStatus
# acquireStart() asynStatus
# acquireStop() asynStatus
# changeVideoFormatConfig() asynStatus
}
class ADRaptorEagleXV{
- writeSerialRegister() asynStatus
- readSerialRegister() asynStatus
- writeInt32() asynStatus
- changeVideoFormatConfig() asynStatus
}
click ADDriver href "https://areadetector.github.io/areaDetector/ADCore/ADDriver.html" "ADDriver documentation"
To contribute to this repository please fork it, develop your code in your fork, and then create a pull request back into the development branch of this repository.
Please use cpplint to check your source code matches the code conventions of the repository with the config file pixciApp/src/CPPLINT.cfg before opening a PR.
From there, two CLF developers will review and merge your feature or fix.
If you encounter a new detector that recommends the use of the PIXCI® frame grabber and XCLIB™ software, you can create a new detector class that inherits from ADPixci, in a similar manner to ADRaptorEagleXV.
The changeVideoFormatConfig method must be implemented for loading format files for different binning values.
If the writeInt32, writeFloat64, updateInitialPVs, or handleParamTask methods are overloaded, make sure to call their ADPixci implementation too.
There are a few pure virtual functions for camera attributes you might want to use in ADPixci.h that can be implemented if needed too.