areaDetector
3-14
EPICS areaDetector framework
|
Main driver class inherited from areaDetectors ADDriver class. More...
Public Member Functions | |
FirewireDCAM (const char *portName, const char *camid, int speed, int maxBuffers, size_t maxMemory, int disableScalable) | |
Constructor for the FirewireDCAM class Initialises the camera object by setting all the default parameters and initializing the camera hardware with it. More... | |
virtual asynStatus | writeInt32 (asynUser *pasynUser, epicsInt32 value) |
Write integer value to the drivers parameter table. More... | |
virtual asynStatus | writeFloat64 (asynUser *pasynUser, epicsFloat64 value) |
Write floating point value to the drivers parameter table and possibly to the hardware. More... | |
void | report (FILE *fp, int details) |
Print out a report. More... | |
asynStatus | err (asynUser *asynUser, dc1394error_t dc1394_err, int errOriginLine) |
Parse a dc1394 error code into a user readable string Defaults to printing out using the pasynUser. More... | |
void | imageGrabTask () |
Task to grab images off the camera and send them up to areaDetector. More... | |
int | decodeFrame (dc1394video_frame_t *dc1394_frame) |
decodes a dc1394video_frame_t, turns it into an NDArray, finally clears the buffer off the dc1394 queue. More... | |
asynStatus | startCapture (asynUser *pasynUser) |
asynStatus | stopCapture (asynUser *pasynUser) |
asynStatus | stopCaptureAndWait (asynUser *pasynUser) |
asynStatus | initCamera (unsigned long long int camUID) |
asynStatus | setFeatureValue (asynUser *pasynUser, int addr, epicsInt32 value, epicsInt32 *rbValue) |
asynStatus | setFeatureAbsValue (asynUser *pasynUser, int addr, epicsFloat64 value, epicsFloat64 *rbValue) |
asynStatus | setFeatureMode (asynUser *pasynUser, int addr, epicsInt32 value, epicsInt32 *rbValue) |
asynStatus | checkFeature (asynUser *pasynUser, int addr, dc1394feature_info_t **featInfo, char **featureName, const char *functionName) |
Check if a requested feature is valid. More... | |
asynStatus | setFrameRate (asynUser *pasynUser, epicsInt32 iframerate) |
Set the framerate in the camera. More... | |
asynStatus | setFrameRate (asynUser *pasynUser, epicsFloat64 dframerate) |
int | getAllFeatures () |
Read all the feature settings and values from the camera. More... | |
asynStatus | lookupColorMode (dc1394color_coding_t colorCoding, int *colorMode, int *dataType) |
Lookup a colorMode and dataType from a dc1394color_coding_t. More... | |
dc1394color_coding_t | lookupColorCoding (int colorMode, int dataType) |
Lookup a dc1394color_coding_t from a colorMode and dataType. More... | |
dc1394video_mode_t | lookupVideoMode (dc1394color_coding_t colorCoding) |
Look up a valid video mode based on a dc1394color_coding_t. More... | |
asynStatus | setVideoMode (asynUser *pasynUser) |
asynStatus | setRoi (asynUser *pasynUser) |
int | setAcquireParam (int acquire) |
dc1394error_t | captureDequeueTimeout (dc1394camera_t *camera, dc1394video_frame_t **frame, epicsFloat64 timeout) |
Run the dc1394_capture_dequeue() function in a polling loop until a frame is received or it times out. More... | |
Public Member Functions inherited from ADDriver | |
ADDriver (const char *portName, int maxAddr, int numParams, int maxBuffers, size_t maxMemory, int interfaceMask, int interruptMask, int asynFlags, int autoConnect, int priority, int stackSize) | |
All of the arguments are simply passed to the constructor for the asynNDArrayDriver base class, except numParams. More... | |
virtual asynStatus | connect (asynUser *pasynUser) |
Connects driver to device; This method is called when the driver's pasynCommon->connect() function is called. More... | |
virtual void | setShutter (int open) |
Set the shutter position. More... | |
Public Member Functions inherited from asynNDArrayDriver | |
asynNDArrayDriver (const char *portName, int maxAddr, int maxBuffers, size_t maxMemory, int interfaceMask, int interruptMask, int asynFlags, int autoConnect, int priority, int stackSize) | |
This is the constructor for the asynNDArrayDriver class. More... | |
virtual | ~asynNDArrayDriver () |
virtual asynStatus | writeOctet (asynUser *pasynUser, const char *value, size_t maxChars, size_t *nActual) |
Called when asyn clients call pasynOctet->write(). More... | |
virtual asynStatus | readGenericPointer (asynUser *pasynUser, void *genericPointer) |
This method copies an NDArray object from the asynNDArrayDriver to an NDArray pointer passed in by the caller. More... | |
virtual asynStatus | writeGenericPointer (asynUser *pasynUser, void *genericPointer) |
This method currently does nothing, but it should be implemented in this base class. More... | |
virtual asynStatus | setIntegerParam (int index, int value) |
Sets the value for an integer in the parameter library. More... | |
virtual asynStatus | setIntegerParam (int list, int index, int value) |
Sets the value for an integer in the parameter library. More... | |
virtual asynStatus | createFilePath (const char *path, int pathDepth) |
Function to create a directory path for a file. More... | |
virtual asynStatus | checkPath () |
Checks whether the directory specified NDFilePath parameter exists. More... | |
virtual bool | checkPath (std::string &filePath) |
Checks whether the directory specified exists. More... | |
virtual asynStatus | createFileName (int maxChars, char *fullFileName) |
Build a file name from component parts. More... | |
virtual asynStatus | createFileName (int maxChars, char *filePath, char *fileName) |
Build a file name from component parts. More... | |
virtual asynStatus | readNDAttributesFile () |
Create this driver's NDAttributeList (pAttributeList) by reading an XML file This clears any existing attributes from this drivers' NDAttributeList and then creates a new list based on the XML file. More... | |
virtual asynStatus | getAttributes (NDAttributeList *pAttributeList) |
Get the current values of attributes from this driver and appends them to an output attribute list. More... | |
virtual void | updateTimeStamps (NDArray *pArray) |
asynStatus | incrementQueuedArrayCount () |
asynStatus | decrementQueuedArrayCount () |
int | getQueuedArrayCount () |
void | updateQueuedArrayCount () |
Public Attributes | |
NDArray * | pRaw |
dc1394camera_t * | camera |
epicsEventId | startEventId |
epicsEventId | stopEventId |
dc1394featureset_t | features |
int | disableScalable |
int | busSpeed |
unsigned long long | camguid |
epicsUInt32 | latch_frames_behind |
Public Attributes inherited from asynNDArrayDriver | |
class NDArrayPool * | pNDArrayPool |
An NDArrayPool pointer that is initialized to pNDArrayPoolPvt_ in the constructor. More... | |
Main driver class inherited from areaDetectors ADDriver class.
One instance of this class will control one firewire camera on the bus.
FirewireDCAM::FirewireDCAM | ( | const char * | portName, |
const char * | camid, | ||
int | speed, | ||
int | maxBuffers, | ||
size_t | maxMemory, | ||
int | disableScalable | ||
) |
Constructor for the FirewireDCAM class Initialises the camera object by setting all the default parameters and initializing the camera hardware with it.
This function also reads out the current settings of the camera and prints out a selection of parameters to the shell.
portName | The asyn port name to give the particular instance. |
camid | The unique ID stored in the camera. |
speed | The bus speed to use this camera at. Can be 800[Mb/s] for 1394B mode or 400[Mb/s] for 1394A mode. |
maxBuffers | The largest number of image buffers this driver can create. |
maxMemory | The maximum amount of memory in bytes that the driver can allocate for images. |
disableScalable | Disable scalable (format 7) modes if this is 1 |
dc1394error_t FirewireDCAM::captureDequeueTimeout | ( | dc1394camera_t * | camera, |
dc1394video_frame_t ** | frame, | ||
epicsFloat64 | timeout | ||
) |
Run the dc1394_capture_dequeue() function in a polling loop until a frame is received or it times out.
asynStatus FirewireDCAM::checkFeature | ( | asynUser * | pasynUser, |
int | addr, | ||
dc1394feature_info_t ** | featInfo, | ||
char ** | featureName, | ||
const char * | functionName | ||
) |
Check if a requested feature is valid.
Checks for:
pasynUser | Asyn User to write messages to |
addr | Address of the parameter to get |
featInfo | Pointer to a feature info structure pointer. The function will write a valid feature info struct into this pointer or NULL on error. |
featureName | The function will return a string in this parameter with a readable name for the given feature. |
functionName | The caller can pass a string which contain the callers function name. For debugging/printing purposes only. |
int FirewireDCAM::decodeFrame | ( | dc1394video_frame_t * | dc1394_frame | ) |
decodes a dc1394video_frame_t, turns it into an NDArray, finally clears the buffer off the dc1394 queue.
This function expects the mutex to be locked already by the caller!
asynStatus FirewireDCAM::err | ( | asynUser * | asynUser, |
dc1394error_t | dc1394_err, | ||
int | errOriginLine | ||
) |
Parse a dc1394 error code into a user readable string Defaults to printing out using the pasynUser.
asynUser | The asyn user to print out with on ASYN_TRACE_ERR. If pasynUser == NULL just print to stderr. |
dc1394_err | The error code, returned from the dc1394 function call. If the error code is OK we just ignore it. |
errOriginLine | Line number where the error came from. |
int FirewireDCAM::getAllFeatures | ( | ) |
Read all the feature settings and values from the camera.
This function will collect all the current values and settings from the camera, and set the appropriate integer/double parameters in the param lib. If a certain feature is not available in the given camera, this function will set all the parameters relating to that feature to -1 or -1.0 to indicate it is not available. Note the caller is responsible for calling any update callbacks if I/O interrupts are to be processed after calling this function.
void FirewireDCAM::imageGrabTask | ( | ) |
Task to grab images off the camera and send them up to areaDetector.
asynStatus FirewireDCAM::initCamera | ( | unsigned long long int | camUID | ) |
dc1394color_coding_t FirewireDCAM::lookupColorCoding | ( | int | colorMode, |
int | dataType | ||
) |
Lookup a dc1394color_coding_t from a colorMode and dataType.
asynStatus FirewireDCAM::lookupColorMode | ( | dc1394color_coding_t | colorCoding, |
int * | colorMode, | ||
int * | dataType | ||
) |
Lookup a colorMode and dataType from a dc1394color_coding_t.
dc1394video_mode_t FirewireDCAM::lookupVideoMode | ( | dc1394color_coding_t | colorCoding | ) |
Look up a valid video mode based on a dc1394color_coding_t.
|
virtual |
Print out a report.
Not yet implemented!
fp | Stream or file pointer to write the report to. |
details | Configurable level of details in the report. |
Reimplemented from asynNDArrayDriver.
int FirewireDCAM::setAcquireParam | ( | int | acquire | ) |
asynStatus FirewireDCAM::setFeatureAbsValue | ( | asynUser * | pasynUser, |
int | addr, | ||
epicsFloat64 | value, | ||
epicsFloat64 * | rbValue | ||
) |
asynStatus FirewireDCAM::setFeatureMode | ( | asynUser * | pasynUser, |
int | addr, | ||
epicsInt32 | value, | ||
epicsInt32 * | rbValue | ||
) |
asynStatus FirewireDCAM::setFeatureValue | ( | asynUser * | pasynUser, |
int | addr, | ||
epicsInt32 | value, | ||
epicsInt32 * | rbValue | ||
) |
asynStatus FirewireDCAM::setFrameRate | ( | asynUser * | pasynUser, |
epicsFloat64 | dframerate | ||
) |
asynStatus FirewireDCAM::setFrameRate | ( | asynUser * | pasynUser, |
epicsInt32 | iframerate | ||
) |
Set the framerate in the camera.
Can set it with an enum when using the iframerate or as a double when using the dframerate parameter
asynStatus FirewireDCAM::setRoi | ( | asynUser * | pasynUser | ) |
asynStatus FirewireDCAM::setVideoMode | ( | asynUser * | pasynUser | ) |
asynStatus FirewireDCAM::startCapture | ( | asynUser * | pasynUser | ) |
asynStatus FirewireDCAM::stopCapture | ( | asynUser * | pasynUser | ) |
asynStatus FirewireDCAM::stopCaptureAndWait | ( | asynUser * | pasynUser | ) |
|
virtual |
Write floating point value to the drivers parameter table and possibly to the hardware.
pasynUser | |
value |
|
virtual |
Write integer value to the drivers parameter table.
pasynUser | |
value |
Reimplemented from ADDriver.
int FirewireDCAM::busSpeed |
dc1394camera_t* FirewireDCAM::camera |
unsigned long long FirewireDCAM::camguid |
int FirewireDCAM::disableScalable |
|
protected |
Set and read back the video mode (int32 (enums) read/write)
|
protected |
Is a given featurea available in the camera 1=available 0=not available (int32, read)
|
protected |
Feature control mode: 0:manual or 1:automatic (camera controlled) (int32 read/write)
|
protected |
Feature absolute minimum boundry value (float64 read) addr: 0-17.
|
protected |
|
protected |
Feature minimum boundry value (int32 read) addr: 0-17.
|
protected |
Feature absolute value (float64 read/write) addr: 0-17.
|
protected |
Feature absolute maximum boundry value (float64 read) addr: 0-17.
|
protected |
|
protected |
Feature maximum boundry value (int32 read) addr: 0-17.
|
protected |
Feature has absolute (floating point) controls available 1=available 0=not available (int32 read)
|
protected |
Set and read back the frame rate (int32 (enums) read/write)
dc1394featureset_t FirewireDCAM::features |
epicsUInt32 FirewireDCAM::latch_frames_behind |
NDArray* FirewireDCAM::pRaw |
epicsEventId FirewireDCAM::startEventId |
epicsEventId FirewireDCAM::stopEventId |