dxpSITORO  1-0
Public Member Functions | Protected Attributes | List of all members
asynNDArrayDriver Class Reference

This is the class from which NDArray drivers are derived; implements the asynGenericPointer functions for NDArray objects. More...

#include <asynNDArrayDriver.h>

Inheritance diagram for asynNDArrayDriver:
asynPortDriver NDDxp

Public Member Functions

 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 readInt32 (asynUser *pasynUser, epicsInt32 *value)
 Called when asyn clients call pasynInt32->read(). More...
 
virtual asynStatus readFloat64 (asynUser *pasynUser, epicsFloat64 *value)
 Called when asyn clients call pasynFloat64->read(). More...
 
virtual void report (FILE *fp, int details)
 Report status of the driver. 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 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...
 
- Public Member Functions inherited from asynPortDriver
 asynPortDriver (const char *portName, int maxAddr, int paramTableSize, int interfaceMask, int interruptMask, int asynFlags, int autoConnect, int priority, int stackSize)
 Constructor for the asynPortDriver class. More...
 
virtual ~asynPortDriver ()
 Destructor for asynPortDriver class; frees resources allocated when port driver is created. More...
 
virtual asynStatus lock ()
 Locks the driver to prevent multiple threads from accessing memory at the same time. More...
 
virtual asynStatus unlock ()
 Unlocks the driver; called when an asyn client or driver is done accessing common memory. More...
 
virtual asynStatus getAddress (asynUser *pasynUser, int *address)
 Returns the asyn address associated with a pasynUser structure. More...
 
virtual asynStatus writeInt32 (asynUser *pasynUser, epicsInt32 value)
 Called when asyn clients call pasynInt32->write(). More...
 
virtual asynStatus readUInt32Digital (asynUser *pasynUser, epicsUInt32 *value, epicsUInt32 mask)
 Called when asyn clients call pasynUInt32Digital->read(). More...
 
virtual asynStatus writeUInt32Digital (asynUser *pasynUser, epicsUInt32 value, epicsUInt32 mask)
 Called when asyn clients call pasynUInt32Digital->write(). More...
 
virtual asynStatus setInterruptUInt32Digital (asynUser *pasynUser, epicsUInt32 mask, interruptReason reason)
 Called when asyn clients call pasynUInt32Digital->setInterrupt(). More...
 
virtual asynStatus clearInterruptUInt32Digital (asynUser *pasynUser, epicsUInt32 mask)
 Called when asyn clients call pasynUInt32Digital->clearInterrupt(). More...
 
virtual asynStatus getInterruptUInt32Digital (asynUser *pasynUser, epicsUInt32 *mask, interruptReason reason)
 Called when asyn clients call pasynUInt32Digital->getInterrupt(). More...
 
virtual asynStatus getBounds (asynUser *pasynUser, epicsInt32 *low, epicsInt32 *high)
 Called when asyn clients call pasynInt32->getBounds(), returning the bounds on the asynInt32 interface for drivers that use raw units. More...
 
virtual asynStatus writeFloat64 (asynUser *pasynUser, epicsFloat64 value)
 Called when asyn clients call pasynFloat64->write(). More...
 
virtual asynStatus readOctet (asynUser *pasynUser, char *value, size_t maxChars, size_t *nActual, int *eomReason)
 Called when asyn clients call pasynOctet->read(). More...
 
virtual asynStatus flushOctet (asynUser *pasynUser)
 Called when asyn clients call pasynOctet->flush(). More...
 
virtual asynStatus setInputEosOctet (asynUser *pasynUser, const char *eos, int eosLen)
 Called when asyn clients call pasynOctet->setInputEos(). More...
 
virtual asynStatus getInputEosOctet (asynUser *pasynUser, char *eos, int eosSize, int *eosLen)
 Called when asyn clients call pasynOctet->getInputEos(). More...
 
virtual asynStatus setOutputEosOctet (asynUser *pasynUser, const char *eos, int eosLen)
 Called when asyn clients call pasynOctet->setOutputEos(). More...
 
virtual asynStatus getOutputEosOctet (asynUser *pasynUser, char *eos, int eosSize, int *eosLen)
 Called when asyn clients call pasynOctet->getOutputEos(). More...
 
virtual asynStatus readInt8Array (asynUser *pasynUser, epicsInt8 *value, size_t nElements, size_t *nIn)
 Called when asyn clients call pasynInt8Array->read(). More...
 
virtual asynStatus writeInt8Array (asynUser *pasynUser, epicsInt8 *value, size_t nElements)
 Called when asyn clients call pasynInt8Array->write(). More...
 
virtual asynStatus doCallbacksInt8Array (epicsInt8 *value, size_t nElements, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynInt8Array interface. More...
 
virtual asynStatus readInt16Array (asynUser *pasynUser, epicsInt16 *value, size_t nElements, size_t *nIn)
 Called when asyn clients call pasynInt16Array->read(). More...
 
virtual asynStatus writeInt16Array (asynUser *pasynUser, epicsInt16 *value, size_t nElements)
 Called when asyn clients call pasynInt16Array->write(). More...
 
virtual asynStatus doCallbacksInt16Array (epicsInt16 *value, size_t nElements, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynInt16Array interface. More...
 
virtual asynStatus readInt32Array (asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
 Called when asyn clients call pasynInt32Array->read(). More...
 
virtual asynStatus writeInt32Array (asynUser *pasynUser, epicsInt32 *value, size_t nElements)
 Called when asyn clients call pasynInt32Array->write(). More...
 
virtual asynStatus doCallbacksInt32Array (epicsInt32 *value, size_t nElements, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynInt32Array interface. More...
 
virtual asynStatus readFloat32Array (asynUser *pasynUser, epicsFloat32 *value, size_t nElements, size_t *nIn)
 Called when asyn clients call pasynFloat32Array->read(). More...
 
virtual asynStatus writeFloat32Array (asynUser *pasynUser, epicsFloat32 *value, size_t nElements)
 Called when asyn clients call pasynFloat32Array->write(). More...
 
virtual asynStatus doCallbacksFloat32Array (epicsFloat32 *value, size_t nElements, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynFloat32Array interface. More...
 
virtual asynStatus readFloat64Array (asynUser *pasynUser, epicsFloat64 *value, size_t nElements, size_t *nIn)
 Called when asyn clients call pasynFloat64Array->read(). More...
 
virtual asynStatus writeFloat64Array (asynUser *pasynUser, epicsFloat64 *value, size_t nElements)
 Called when asyn clients call pasynFloat64Array->write(). More...
 
virtual asynStatus doCallbacksFloat64Array (epicsFloat64 *value, size_t nElements, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynFloat64Array interface. More...
 
virtual asynStatus doCallbacksGenericPointer (void *pointer, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynGenericPointer interface. More...
 
virtual asynStatus readOption (asynUser *pasynUser, const char *key, char *value, int maxChars)
 Called when asyn clients call pasynOption->read(). More...
 
virtual asynStatus writeOption (asynUser *pasynUser, const char *key, const char *value)
 Called when asyn clients call pasynOption->write(). More...
 
virtual asynStatus readEnum (asynUser *pasynUser, char *strings[], int values[], int severities[], size_t nElements, size_t *nIn)
 Called when asyn clients call pasynEnum->read(). More...
 
virtual asynStatus writeEnum (asynUser *pasynUser, char *strings[], int values[], int severities[], size_t nElements)
 Called when asyn clients call pasynEnum->write(). More...
 
virtual asynStatus doCallbacksEnum (char *strings[], int values[], int severities[], size_t nElements, int reason, int addr)
 Called by driver to do the callbacks to registered clients on the asynEnum interface. More...
 
virtual asynStatus drvUserCreate (asynUser *pasynUser, const char *drvInfo, const char **pptypeName, size_t *psize)
 Called by asynManager to pass a pasynUser structure and drvInfo string to the driver; Assigns pasynUser->reason based on the value of the drvInfo string. More...
 
virtual asynStatus drvUserGetType (asynUser *pasynUser, const char **pptypeName, size_t *psize)
 Returns strings associated with driver-specific commands. More...
 
virtual asynStatus drvUserDestroy (asynUser *pasynUser)
 Frees any resources allocated by drvUserCreate. More...
 
virtual asynStatus connect (asynUser *pasynUser)
 Connects driver to device; The base class implementation simply calls pasynManager->exceptionConnect if address is valid Derived classes can reimplement this function for real connection management. More...
 
virtual asynStatus disconnect (asynUser *pasynUser)
 Disconnects driver from device; the base class implementation simply calls pasynManager->exceptionDisconnect. More...
 
virtual asynStatus createParam (const char *name, asynParamType type, int *index)
 Creates a parameter in the parameter library. More...
 
virtual asynStatus createParam (int list, const char *name, asynParamType type, int *index)
 Creates a parameter in the parameter library. More...
 
virtual asynStatus findParam (const char *name, int *index)
 Finds a parameter in the parameter library. More...
 
virtual asynStatus findParam (int list, const char *name, int *index)
 Finds a parameter in the parameter library. More...
 
virtual asynStatus getParamName (int index, const char **name)
 Returns the name of a parameter in the parameter library. More...
 
virtual asynStatus getParamName (int list, int index, const char **name)
 Returns the name of a parameter in the parameter library. More...
 
virtual asynStatus setParamStatus (int index, asynStatus status)
 Sets the status for a parameter in the parameter library. More...
 
virtual asynStatus setParamStatus (int list, int index, asynStatus status)
 Sets the status for a parameter in the parameter library. More...
 
virtual asynStatus getParamStatus (int index, asynStatus *status)
 Gets the status for a parameter in the parameter library. More...
 
virtual asynStatus getParamStatus (int list, int index, asynStatus *status)
 Gets the status for a parameter in the parameter library. More...
 
virtual asynStatus setParamAlarmStatus (int index, int status)
 Sets the alarmStatus for a parameter in the parameter library. More...
 
virtual asynStatus setParamAlarmStatus (int list, int index, int status)
 Sets the alarmStatus for a parameter in the parameter library. More...
 
virtual asynStatus getParamAlarmStatus (int index, int *status)
 Gets the alarmStatus for a parameter in the parameter library. More...
 
virtual asynStatus getParamAlarmStatus (int list, int index, int *status)
 Gets the alarmStatus for a parameter in the parameter library. More...
 
virtual asynStatus setParamAlarmSeverity (int index, int severity)
 Sets the alarmSeverity for a parameter in the parameter library. More...
 
virtual asynStatus setParamAlarmSeverity (int list, int index, int severity)
 Sets the alarmSeverity for a parameter in the parameter library. More...
 
virtual asynStatus getParamAlarmSeverity (int index, int *severity)
 Gets the alarmSeverity for a parameter in the parameter library. More...
 
virtual asynStatus getParamAlarmSeverity (int list, int index, int *severity)
 Gets the alarmSeverity for a parameter in the parameter library. More...
 
virtual void reportSetParamErrors (asynStatus status, int index, int list, const char *functionName)
 Reports errors when setting parameters. More...
 
virtual void reportGetParamErrors (asynStatus status, int index, int list, const char *functionName)
 Reports errors when getting parameters. 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 setUIntDigitalParam (int index, epicsUInt32 value, epicsUInt32 valueMask)
 Sets the value for a UInt32Digital in the parameter library. More...
 
virtual asynStatus setUIntDigitalParam (int list, int index, epicsUInt32 value, epicsUInt32 valueMask)
 Sets the value for a UInt32Digital in the parameter library. More...
 
virtual asynStatus setUIntDigitalParam (int index, epicsUInt32 value, epicsUInt32 valueMask, epicsUInt32 interruptMask)
 Sets the value for a UInt32Digital in the parameter library. More...
 
virtual asynStatus setUIntDigitalParam (int list, int index, epicsUInt32 value, epicsUInt32 valueMask, epicsUInt32 interruptMask)
 Sets the value for a UInt32Digital in the parameter library. More...
 
virtual asynStatus setUInt32DigitalInterrupt (int index, epicsUInt32 mask, interruptReason reason)
 Sets the interrupt mask and reason in the parameter library Calls paramList::setUInt32Interrupt (0, index, mask, reason) i.e. More...
 
virtual asynStatus setUInt32DigitalInterrupt (int list, int index, epicsUInt32 mask, interruptReason reason)
 Sets the interrupt mask and reason in the parameter library Calls paramList::setUInt32Interrupt (index, mask, reason) for the parameter list indexed by list. More...
 
virtual asynStatus clearUInt32DigitalInterrupt (int index, epicsUInt32 mask)
 Clears the interrupt mask in the parameter library Calls paramList::clearUInt32Interrupt (0, index, mask) i.e. More...
 
virtual asynStatus clearUInt32DigitalInterrupt (int list, int index, epicsUInt32 mask)
 Clears the interrupt mask in the parameter library Calls paramList::clearUInt32Interrupt (index, mask) for the parameter list indexed by list. More...
 
virtual asynStatus getUInt32DigitalInterrupt (int index, epicsUInt32 *mask, interruptReason reason)
 Gets the interrupt mask and reason in the parameter library Calls paramList::getUInt32Interrupt (0, index, mask, reason) i.e. More...
 
virtual asynStatus getUInt32DigitalInterrupt (int list, int index, epicsUInt32 *mask, interruptReason reason)
 Gets the interrupt mask and reason in the parameter library Calls paramList::getUInt32Interrupt (index, mask, reason) for the parameter list indexed by list. More...
 
virtual asynStatus setDoubleParam (int index, double value)
 Sets the value for a double in the parameter library. More...
 
virtual asynStatus setDoubleParam (int list, int index, double value)
 Sets the value for a double in the parameter library. More...
 
virtual asynStatus setStringParam (int index, const char *value)
 Sets the value for a string in the parameter library. More...
 
virtual asynStatus setStringParam (int list, int index, const char *value)
 Sets the value for a string in the parameter library. More...
 
virtual asynStatus setStringParam (int index, const std::string &value)
 Sets the value for a string in the parameter library. More...
 
virtual asynStatus setStringParam (int list, int index, const std::string &value)
 Sets the value for a string in the parameter library. More...
 
virtual asynStatus getIntegerParam (int index, int *value)
 Returns the value for an integer from the parameter library. More...
 
virtual asynStatus getIntegerParam (int list, int index, int *value)
 Returns the value for an integer from the parameter library. More...
 
virtual asynStatus getUIntDigitalParam (int index, epicsUInt32 *value, epicsUInt32 mask)
 Returns the value for an UInt32Digital parameter from the parameter library. More...
 
virtual asynStatus getUIntDigitalParam (int list, int index, epicsUInt32 *value, epicsUInt32 mask)
 Returns the value for an UInt32Digital parameter from the parameter library. More...
 
virtual asynStatus getDoubleParam (int index, double *value)
 Returns the value for a double from the parameter library. More...
 
virtual asynStatus getDoubleParam (int list, int index, double *value)
 Returns the value for a double from the parameter library. More...
 
virtual asynStatus getStringParam (int index, int maxChars, char *value)
 Returns the value for a string from the parameter library. More...
 
virtual asynStatus getStringParam (int list, int index, int maxChars, char *value)
 Returns the value for a string from the parameter library. More...
 
virtual asynStatus getStringParam (int index, std::string &value)
 Returns the value for a string from the parameter library. More...
 
virtual asynStatus getStringParam (int list, int index, std::string &value)
 Returns the value for a string from the parameter library. More...
 
virtual asynStatus callParamCallbacks ()
 Calls callParamCallbacks(0, 0) i.e. More...
 
virtual asynStatus callParamCallbacks (int addr)
 Calls callParamCallbacks(addr, addr) i.e. More...
 
virtual asynStatus callParamCallbacks (int list, int addr)
 Calls paramList::callCallbacks(addr) for a specific parameter list. More...
 
virtual asynStatus updateTimeStamp ()
 Updates the timestamp for this port in pasynManager. More...
 
virtual asynStatus updateTimeStamp (epicsTimeStamp *pTimeStamp)
 Updates the timestamp for this port in pasynManager, and returns this timestamp. More...
 
virtual asynStatus getTimeStamp (epicsTimeStamp *pTimeStamp)
 Gets the most recent timestamp for this port from pasynManager. More...
 
virtual asynStatus setTimeStamp (const epicsTimeStamp *pTimeStamp)
 Sets the timestamp for this port in pasynManager. More...
 
asynStandardInterfaces * getAsynStdInterfaces ()
 Returns the asynStdInterfaces structure used by asynPortDriver. More...
 
virtual void reportParams (FILE *fp, int details)
 Calls paramList::report(fp, details) for each parameter list that the driver supports. More...
 
void callbackTask ()
 

Protected Attributes

int NDPortNameSelf
 
int NDADCoreVersion
 
int NDDriverVersion
 
int NDArraySizeX
 
int NDArraySizeY
 
int NDArraySizeZ
 
int NDArraySize
 
int NDNDimensions
 
int NDDimensions
 
int NDDataType
 
int NDColorMode
 
int NDUniqueId
 
int NDTimeStamp
 
int NDEpicsTSSec
 
int NDEpicsTSNsec
 
int NDBayerPattern
 
int NDArrayCounter
 
int NDFilePath
 
int NDFilePathExists
 
int NDFileName
 
int NDFileNumber
 
int NDFileTemplate
 
int NDAutoIncrement
 
int NDFullFileName
 
int NDFileFormat
 
int NDAutoSave
 
int NDWriteFile
 
int NDReadFile
 
int NDFileWriteMode
 
int NDFileWriteStatus
 
int NDFileWriteMessage
 
int NDFileNumCapture
 
int NDFileNumCaptured
 
int NDFileCapture
 
int NDFileDeleteDriverFile
 
int NDFileLazyOpen
 
int NDFileCreateDir
 
int NDFileTempSuffix
 
int NDAttributesFile
 
int NDAttributesStatus
 
int NDAttributesMacros
 
int NDArrayData
 
int NDArrayCallbacks
 
int NDPoolMaxBuffers
 
int NDPoolAllocBuffers
 
int NDPoolFreeBuffers
 
int NDPoolMaxMemory
 
int NDPoolUsedMemory
 
NDArray ** pArrays
 An array of NDArray pointers used to store data in the driver. More...
 
NDArrayPool * pNDArrayPool
 An NDArrayPool object used to allocate and manipulate NDArray objects. More...
 
class NDAttributeList * pAttributeList
 An NDAttributeList object used to obtain the current values of a set of attributes. More...
 
int threadStackSize_
 
int threadPriority_
 
- Protected Attributes inherited from asynPortDriver
asynUser * pasynUserSelf
 asynUser connected to ourselves for asynTrace More...
 
asynStandardInterfaces asynStdInterfaces
 The asyn interfaces this driver implements. More...
 

Additional Inherited Members

- Public Attributes inherited from asynPortDriver
char * portName
 The name of this asyn port. More...
 
int maxAddr
 The maximum asyn address (addr) supported by this driver. More...
 

Detailed Description

This is the class from which NDArray drivers are derived; implements the asynGenericPointer functions for NDArray objects.

For areaDetector, both plugins and detector drivers are indirectly derived from this class. asynNDArrayDriver inherits from asynPortDriver.

Constructor & Destructor Documentation

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.

portName, maxAddr, interfaceMask, interruptMask, asynFlags, autoConnect, priority and stackSize are simply passed to asynPortDriver::asynPortDriver. asynNDArrayDriver creates an NDArrayPool object to allocate NDArray objects. maxBuffers and maxMemory are passed to NDArrayPool::NDArrayPool.

Parameters
[in]portNameThe name of the asyn port driver to be created.
[in]maxAddrThe maximum number of asyn addr addresses this driver supports. 1 is minimum.
[in]maxBuffersThe maximum number of NDArray buffers that the NDArrayPool for this driver is allowed to allocate. Set this to 0 to allow an unlimited number of buffers.
[in]maxMemoryThe maximum amount of memory that the NDArrayPool for this driver is allowed to allocate. Set this to 0 to allow an unlimited amount of memory.
[in]interfaceMaskBit mask defining the asyn interfaces that this driver supports.
[in]interruptMaskBit mask definining the asyn interfaces that can generate interrupts (callbacks)
[in]asynFlagsFlags when creating the asyn port driver; includes ASYN_CANBLOCK and ASYN_MULTIDEVICE.
[in]autoConnectThe autoConnect flag for the asyn port driver.
[in]priorityThe thread priority for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags. This value should also be used for any other threads this object creates.
[in]stackSizeThe stack size for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags. This value should also be used for any other threads this object creates.
asynNDArrayDriver::~asynNDArrayDriver ( )
virtual

Member Function Documentation

asynStatus asynNDArrayDriver::checkPath ( )
virtual

Checks whether the directory specified NDFilePath parameter exists.

This is a convenience function that determinesthe directory specified NDFilePath parameter exists. It sets the value of NDFilePathExists to 0 (does not exist) or 1 (exists). It also adds a trailing '/' character to the path if one is not present. Returns a error status if the directory does not exist.

asynStatus asynNDArrayDriver::createFileName ( int  maxChars,
char *  fullFileName 
)
virtual

Build a file name from component parts.

Parameters
[in]maxCharsThe size of the fullFileName string.
[out]fullFileNameThe constructed file name including the file path.

This is a convenience function that constructs a complete file name from the NDFilePath, NDFileName, NDFileNumber, and NDFileTemplate parameters. If NDAutoIncrement is true then it increments the NDFileNumber after creating the file name.

asynStatus asynNDArrayDriver::createFileName ( int  maxChars,
char *  filePath,
char *  fileName 
)
virtual

Build a file name from component parts.

Parameters
[in]maxCharsThe size of the fullFileName string.
[out]filePathThe file path.
[out]fileNameThe constructed file name without file file path.

This is a convenience function that constructs a file path and file name from the NDFilePath, NDFileName, NDFileNumber, and NDFileTemplate parameters. If NDAutoIncrement is true then it increments the NDFileNumber after creating the file name.

asynStatus asynNDArrayDriver::createFilePath ( const char *  path,
int  pathDepth 
)
virtual

Function to create a directory path for a file.

Parameters
[in]pathPath to create. The final part is the file name and is not created.
[in]pathDepthThis determines how much of the path to assume exists before attempting to create directories: pathDepth = 0 create no directories pathDepth = 1 create all directories needed (i.e. only assume root directory exists). pathDepth = 2 Assume 1 directory below the root directory exists pathDepth = -1 Assume all but one direcory exists pathDepth = -2 Assume all but two directories exist.
asynStatus asynNDArrayDriver::getAttributes ( NDAttributeList *  pList)
virtual

Get the current values of attributes from this driver and appends them to an output attribute list.

Calls NDAttributeList::updateValues for this driver's attribute list, and then NDAttributeList::copy, to copy this driver's attribute list to pList, appending the values to that output attribute list.

Parameters
[out]pListThe NDAttributeList to copy the attributes to.

NOTE: Plugins must never call this function with a pointer to the attribute list from the NDArray they were passed in NDPluginDriver::processCallbacks, because that modifies the original NDArray which is forbidden.

asynStatus asynNDArrayDriver::readFloat64 ( asynUser *  pasynUser,
epicsFloat64 *  value 
)
virtual

Called when asyn clients call pasynFloat64->read().

The base class implementation simply returns the value from the parameter library. Derived classes rarely need to reimplement this function.

Parameters
[in]pasynUserpasynUser structure that encodes the reason and address.
[in]valueAddress of the value to read.

Reimplemented from asynPortDriver.

asynStatus asynNDArrayDriver::readGenericPointer ( asynUser *  pasynUser,
void *  genericPointer 
)
virtual

This method copies an NDArray object from the asynNDArrayDriver to an NDArray pointer passed in by the caller.

The destination NDArray address is passed by the caller in the genericPointer argument. The caller must allocate the memory for the array, and pass the size in NDArray->dataSize. The method will limit the amount of data copied to the actual array size or the input dataSize, whichever is smaller.

Parameters
[in]pasynUserUsed to obtain the addr for the NDArray to be copied from, and for asynTrace output.
[out]genericPointerPointer to an NDArray. The NDArray must have been previously allocated by the caller. The NDArray from the asynNDArrayDriver will be copied into the NDArray pointed to by genericPointer.

Reimplemented from asynPortDriver.

asynStatus asynNDArrayDriver::readInt32 ( asynUser *  pasynUser,
epicsInt32 *  value 
)
virtual

Called when asyn clients call pasynInt32->read().

The base class implementation simply returns the value from the parameter library. Derived classes rarely need to reimplement this function.

Parameters
[in]pasynUserpasynUser structure that encodes the reason and address.
[out]valueAddress of the value to read.

Reimplemented from asynPortDriver.

asynStatus asynNDArrayDriver::readNDAttributesFile ( )
virtual

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.

These attributes can then be associated with an NDArray by calling asynNDArrayDriver::getAttributes() passing it pNDArray->pAttributeList.

The following simple example XML file illustrates the way that both PVAttribute and paramAttribute attributes are defined.

<?xml version="1.0" standalone="no" ?>
<Attributes>
<Attribute name="AcquireTime"         type="EPICS_PV" source="13SIM1:cam1:AcquireTime"      dbrtype="DBR_NATIVE"  description="Camera acquire time"/>
<Attribute name="CameraManufacturer"  type="PARAM"    source="MANUFACTURER"                 datatype="STRING"     description="Camera manufacturer"/>
</Attributes>

Each NDAttribute (currently either an PVAttribute or paramAttribute, but other types may be added in the future) is defined with an XML Attribute tag. For each attribute there are a number of XML attributes (unfortunately there are 2 meanings of attribute here: the NDAttribute and the XML attribute). XML attributes have the syntax name="value". The XML attribute names are case-sensitive and must be lower case, i.e. name="xxx", not NAME="xxx". The XML attribute values are specified by the XML Schema and are always uppercase for datatype and dbrtype attributes. The XML attribute names are listed here:

name determines the name of the NDAttribute. It is required, must be unique, is case-insensitive, and must start with a letter. It can include only letters, numbers and underscore. (No whitespace or other punctuation.)

type determines the type of the NDAttribute. "EPICS_PV" creates a PVAttribute, while "PARAM" creates a paramAttribute. The default is EPICS_PV if this XML attribute is absent.

source determines the source of the NDAttribute. It is required. If type="EPICS_PV" then this is the name of the EPICS PV, which is case-sensitive. If type="PARAM" then this is the drvInfo string that is used in EPICS database files (e.g. ADBase.template) to identify this parameter.

dbrtype determines the data type that will be used to read an EPICS_PV value with channel access. It can be one of the standard EPICS DBR types (e.g. "DBR_DOUBLE", "DBR_STRING", ...) or it can be the special type "DBR_NATIVE" which means to use the native channel access data type for this PV. The default is DBR_NATIVE if this XML attribute is absent. Always use uppercase.

datatype determines the parameter data type for type="PARAM". It must match the actual data type in the driver or plugin parameter library, and must be "INT", "DOUBLE", or "STRING". The default is "INT" if this XML attribute is absent. Always use uppercase.

addr determines the asyn addr (address) for type="PARAM". The default is 0 if the XML attribute is absent.

description determines the description for this attribute. It is not required, and the default is a NULL string.

void asynNDArrayDriver::report ( FILE *  fp,
int  details 
)
virtual

Report status of the driver.

This method calls the report function in the asynPortDriver base class. It then calls the NDArrayPool::report() method if details >5.

Parameters
[in]fpFile pointed passed by caller where the output is written to.
[in]detailsIf >5 then NDArrayPool::report and NDAttributeList::report are both called.

Reimplemented from asynPortDriver.

Reimplemented in NDDxp.

asynStatus asynNDArrayDriver::writeGenericPointer ( asynUser *  pasynUser,
void *  genericPointer 
)
virtual

This method currently does nothing, but it should be implemented in this base class.

Derived classes can implement this method as required.

Parameters
[in]pasynUserUsed to obtain the addr for the NDArray to be copied to, and for asynTrace output.
[in]genericPointerPointer to an NDArray. The NDArray pointed to by genericPointer will be copied into the NDArray in asynNDArrayDriver .

Reimplemented from asynPortDriver.

asynStatus asynNDArrayDriver::writeOctet ( asynUser *  pasynUser,
const char *  value,
size_t  nChars,
size_t *  nActual 
)
virtual

Called when asyn clients call pasynOctet->write().

This function performs actions for some parameters, including NDAttributesFile. For all parameters it sets the value in the parameter library and calls any registered callbacks..

Parameters
[in]pasynUserpasynUser structure that encodes the reason and address.
[in]valueAddress of the string to write.
[in]nCharsNumber of characters to write.
[out]nActualNumber of characters actually written.

Reimplemented from asynPortDriver.

Member Data Documentation

int asynNDArrayDriver::NDADCoreVersion
protected
int asynNDArrayDriver::NDArrayCallbacks
protected
int asynNDArrayDriver::NDArrayCounter
protected
int asynNDArrayDriver::NDArrayData
protected
int asynNDArrayDriver::NDArraySize
protected
int asynNDArrayDriver::NDArraySizeX
protected
int asynNDArrayDriver::NDArraySizeY
protected
int asynNDArrayDriver::NDArraySizeZ
protected
int asynNDArrayDriver::NDAttributesFile
protected
int asynNDArrayDriver::NDAttributesMacros
protected
int asynNDArrayDriver::NDAttributesStatus
protected
int asynNDArrayDriver::NDAutoIncrement
protected
int asynNDArrayDriver::NDAutoSave
protected
int asynNDArrayDriver::NDBayerPattern
protected
int asynNDArrayDriver::NDColorMode
protected
int asynNDArrayDriver::NDDataType
protected
int asynNDArrayDriver::NDDimensions
protected
int asynNDArrayDriver::NDDriverVersion
protected
int asynNDArrayDriver::NDEpicsTSNsec
protected
int asynNDArrayDriver::NDEpicsTSSec
protected
int asynNDArrayDriver::NDFileCapture
protected
int asynNDArrayDriver::NDFileCreateDir
protected
int asynNDArrayDriver::NDFileDeleteDriverFile
protected
int asynNDArrayDriver::NDFileFormat
protected
int asynNDArrayDriver::NDFileLazyOpen
protected
int asynNDArrayDriver::NDFileName
protected
int asynNDArrayDriver::NDFileNumber
protected
int asynNDArrayDriver::NDFileNumCapture
protected
int asynNDArrayDriver::NDFileNumCaptured
protected
int asynNDArrayDriver::NDFilePath
protected
int asynNDArrayDriver::NDFilePathExists
protected
int asynNDArrayDriver::NDFileTemplate
protected
int asynNDArrayDriver::NDFileTempSuffix
protected
int asynNDArrayDriver::NDFileWriteMessage
protected
int asynNDArrayDriver::NDFileWriteMode
protected
int asynNDArrayDriver::NDFileWriteStatus
protected
int asynNDArrayDriver::NDFullFileName
protected
int asynNDArrayDriver::NDNDimensions
protected
int asynNDArrayDriver::NDPoolAllocBuffers
protected
int asynNDArrayDriver::NDPoolFreeBuffers
protected
int asynNDArrayDriver::NDPoolMaxBuffers
protected
int asynNDArrayDriver::NDPoolMaxMemory
protected
int asynNDArrayDriver::NDPoolUsedMemory
protected
int asynNDArrayDriver::NDPortNameSelf
protected
int asynNDArrayDriver::NDReadFile
protected
int asynNDArrayDriver::NDTimeStamp
protected
int asynNDArrayDriver::NDUniqueId
protected
int asynNDArrayDriver::NDWriteFile
protected
NDArray** asynNDArrayDriver::pArrays
protected

An array of NDArray pointers used to store data in the driver.

class NDAttributeList* asynNDArrayDriver::pAttributeList
protected

An NDAttributeList object used to obtain the current values of a set of attributes.

NDArrayPool* asynNDArrayDriver::pNDArrayPool
protected

An NDArrayPool object used to allocate and manipulate NDArray objects.

int asynNDArrayDriver::threadPriority_
protected
int asynNDArrayDriver::threadStackSize_
protected

The documentation for this class was generated from the following files: