ADApp/pluginSrc/NDPluginDriver.cpp
asynStatus NDPluginDriver::readInt32Array(asynUser *pasynUser, epicsInt32 *value, 
                                         size_t nElements, size_t *nIn)
{
    int function = pasynUser->reason;
    int addr=0;
    size_t ncopy;
    asynStatus status = asynSuccess;
    static const char *functionName = "readInt32Array";

    status = getAddress(pasynUser, &addr); if (status != asynSuccess) return(status);
    if (function == NDDimensions) {
            ncopy = ND_ARRAY_MAX_DIMS;
            if (nElements < ncopy) ncopy = nElements;
            memcpy(value, this->dimsPrev, ncopy*sizeof(*this->dimsPrev));
            *nIn = ncopy;
    } else {
        /* If this parameter belongs to a base class call its method */
        if (function < FIRST_NDPLUGIN_PARAM) 
            status = asynNDArrayDriver::readInt32Array(pasynUser, value, nElements, nIn);
    }
    if (status) 
        epicsSnprintf(pasynUser->errorMessage, pasynUser->errorMessageSize, 
                  "%s:%s: status=%d, function=%d", 
                  driverName, functionName, status, function);
    else        
        asynPrint(pasynUser, ASYN_TRACEIO_DRIVER, 
              "%s:%s: function=%d\n", 
              driverName, functionName, function);
    return status;
}
/** Called when asyn clients call pasynInt32Array->read().
  * Returns the value of the array dimensions for the last NDArray.  
  * \param[in] pasynUser pasynUser structure that encodes the reason and address.
  * \param[in] value Pointer to the array to read.
  * \param[in] nElements Number of elements to read.
  * \param[out] nIn Number of elements actually read. */
Called when asyn clients call pasynInt32Array->read().
Returns the value of the array dimensions for the last NDArray.
\param[in] pasynUser pasynUser structure that encodes the reason and address.
\param[in] value Pointer to the array to read.
\param[in] nElements Number of elements to read.
\param[out] nIn Number of elements actually read.
Called when asyn clients call pasynInt32Array - > read () . Returns the value of the array dimensions for the last NDArray . \ param [ in ] pasynUser pasynUser structure that encodes the reason and address . \ param [ in ] value Pointer to the array to read . \ param [ in ] nElements Number of elements to read . \ param [ out ] nIn Number of elements actually read .
asynStatus NDPluginDriver::readInt32Array(asynUser *pasynUser, epicsInt32 *value, 
                                         size_t nElements, size_t *nIn)
{
    int function = pasynUser->reason;
    int addr=0;
    size_t ncopy;
    asynStatus status = asynSuccess;
    static const char *functionName = "readInt32Array";
    status = getAddress(pasynUser, &addr); if (status != asynSuccess) return(status);
    if (function == NDDimensions) {
            ncopy = ND_ARRAY_MAX_DIMS;
            if (nElements < ncopy) ncopy = nElements;
            memcpy(value, this->dimsPrev, ncopy*sizeof(*this->dimsPrev));
            *nIn = ncopy;
    } else {
        if (function < FIRST_NDPLUGIN_PARAM) 
            status = asynNDArrayDriver::readInt32Array(pasynUser, value, nElements, nIn);
    }
    if (status) 
        epicsSnprintf(pasynUser->errorMessage, pasynUser->errorMessageSize, 
                  "%s:%s: status=%d, function=%d", 
                  driverName, functionName, status, function);
    else        
        asynPrint(pasynUser, ASYN_TRACEIO_DRIVER, 
              "%s:%s: function=%d\n", 
              driverName, functionName, function);
    return status;
}
asynStatus NDPluginDriver :: readInt32Array ( asynUser * pasynUser , epicsInt32 * value , size_t nElements , size_t * nIn ) { int function = pasynUser -> reason ; int addr = 0 ; size_t ncopy ; asynStatus status = asynSuccess ; static const char * functionName = " " ; status = getAddress ( pasynUser , & addr ) ; if ( status != asynSuccess ) return ( status ) ; if ( function == NDDimensions ) { ncopy = ND_ARRAY_MAX_DIMS ; if ( nElements < ncopy ) ncopy = nElements ; memcpy ( value , this -> dimsPrev , ncopy * sizeof ( * this -> dimsPrev ) ) ; * nIn = ncopy ; } else { if ( function < FIRST_NDPLUGIN_PARAM ) status = asynNDArrayDriver :: readInt32Array ( pasynUser , value , nElements , nIn ) ; } if ( status ) epicsSnprintf ( pasynUser -> errorMessage , pasynUser -> errorMessageSize , " " , driverName , functionName , status , function ) ; else asynPrint ( pasynUser , ASYN_TRACEIO_DRIVER , " \n " , driverName , functionName , function ) ; return status ; }
Called when asyn clients call pasynInt32Array->read().
Called when asyn clients call pasynInt32Array - > read () .
/* If this parameter belongs to a base class call its method */