Skip to content

CentralLaserFacility/ADPixci

Repository files navigation

ADPixci

AreaDetector driver for integrating PIXCI® camera link frame grabbers with supported cameras into EPICS.
Uses the XCLIB™ Library to interface with frame grabbers.

Supported Hardware

Cameras

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.

Manuals

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.

Architecture

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"
Loading

Contributing

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.

Adding a new detector

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.

About

Extensible areaDetector driver for PXICI frame grabbers. Can be used with Raptor Eagle XV

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 8