areaDetector 1-8
|
Driver for Prosilica GigE and CameraLink cameras using their PvApi library. More...
Public Member Functions | |
prosilica (const char *portName, const char *cameraId, int maxBuffers, size_t maxMemory, int priority, int stackSize, int maxPvAPIFrames) | |
Constructor for Prosilica 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 | frameCallback (tPvFrame *pFrame) |
This should be private, but is called from C, must be public. | |
void | shutdown () |
Protected Attributes | |
int | PSReadStatistics |
This is called by epicsAtExit. | |
int | PSDriverType |
int | PSFilterVersion |
int | PSFrameRate |
int | PSByteRate |
int | PSPacketSize |
int | PSFramesCompleted |
int | PSFramesDropped |
int | PSPacketsErroneous |
int | PSPacketsMissed |
int | PSPacketsReceived |
int | PSPacketsRequested |
int | PSPacketsResent |
int | PSBadFrameCounter |
int | PSTriggerDelay |
int | PSTriggerEvent |
int | PSTriggerOverlap |
int | PSTriggerSoftware |
int | PSSyncIn1Level |
int | PSSyncIn2Level |
int | PSSyncOut1Mode |
int | PSSyncOut1Level |
int | PSSyncOut1Invert |
int | PSSyncOut2Mode |
int | PSSyncOut2Level |
int | PSSyncOut2Invert |
int | PSSyncOut3Mode |
int | PSSyncOut3Level |
int | PSSyncOut3Invert |
int | PSStrobe1Mode |
int | PSStrobe1Delay |
int | PSStrobe1CtlDuration |
int | PSStrobe1Duration |
Driver for Prosilica GigE and CameraLink cameras using their PvApi library.
prosilica::prosilica | ( | const char * | portName, |
const char * | cameraId, | ||
int | maxBuffers, | ||
size_t | maxMemory, | ||
int | priority, | ||
int | stackSize, | ||
int | maxPvAPIFrames | ||
) |
Constructor for Prosilica 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] | cameraId | The uniqueId, IP address or IP DNS name of the camera to be connected to this driver. |
[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. |
[in] | maxPvAPIFrames | The number of frame buffers to use in the PvAPI library driver. Default=MAX_PVAPI_FRAMES=2. |
void prosilica::frameCallback | ( | tPvFrame * | pFrame | ) |
This should be private, but is called from C, must be public.
This function gets called in a thread from the PvApi library when a new frame arrives.
void prosilica::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 prosilica::shutdown | ( | ) |
asynStatus prosilica::writeFloat64 | ( | asynUser * | pasynUser, |
epicsFloat64 | value | ||
) | [virtual] |
Called when asyn clients call pasynFloat64->write().
This function performs actions for some parameters, including ADAcquireTime, ADGain, 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 asynPortDriver.
asynStatus prosilica::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 prosilica::PSBadFrameCounter [protected] |
int prosilica::PSByteRate [protected] |
int prosilica::PSDriverType [protected] |
int prosilica::PSFilterVersion [protected] |
int prosilica::PSFrameRate [protected] |
int prosilica::PSFramesCompleted [protected] |
int prosilica::PSFramesDropped [protected] |
int prosilica::PSPacketsErroneous [protected] |
int prosilica::PSPacketSize [protected] |
int prosilica::PSPacketsMissed [protected] |
int prosilica::PSPacketsReceived [protected] |
int prosilica::PSPacketsRequested [protected] |
int prosilica::PSPacketsResent [protected] |
int prosilica::PSReadStatistics [protected] |
This is called by epicsAtExit.
int prosilica::PSStrobe1CtlDuration [protected] |
int prosilica::PSStrobe1Delay [protected] |
int prosilica::PSStrobe1Duration [protected] |
int prosilica::PSStrobe1Mode [protected] |
int prosilica::PSSyncIn1Level [protected] |
int prosilica::PSSyncIn2Level [protected] |
int prosilica::PSSyncOut1Invert [protected] |
int prosilica::PSSyncOut1Level [protected] |
int prosilica::PSSyncOut1Mode [protected] |
int prosilica::PSSyncOut2Invert [protected] |
int prosilica::PSSyncOut2Level [protected] |
int prosilica::PSSyncOut2Mode [protected] |
int prosilica::PSSyncOut3Invert [protected] |
int prosilica::PSSyncOut3Level [protected] |
int prosilica::PSSyncOut3Mode [protected] |
int prosilica::PSTriggerDelay [protected] |
int prosilica::PSTriggerEvent [protected] |
int prosilica::PSTriggerOverlap [protected] |
int prosilica::PSTriggerSoftware [protected] |