Experimental Physics and Industrial Control System
These are some places in asyn, areaDetector, and other synApps modules where you can find examples of the asynPortDriver::readInt32Array() method being implemented in derived classes.
corvette:~/devel>find . -name '*.cpp' -exec grep -H readInt32Array {} \;
./measComp-1-4/measCompApp/src/drvC9513.cpp: virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *data, size_t numRead, size_t *numActual);
./measComp-1-4/measCompApp/src/drvC9513.cpp:asynStatus C9513::readInt32Array(asynUser *pasynUser, epicsInt32 *data,
./measComp-1-4/measCompApp/src/drvC9513.cpp: static const char* functionName="readInt32Array";
./measComp-1-4/measCompApp/src/drvUSBCTR.cpp: virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn);
./measComp-1-4/measCompApp/src/drvUSBCTR.cpp:asynStatus USBCTR::readInt32Array(asynUser *pasynUser, epicsInt32 *data,
./measComp-1-4/measCompApp/src/drvUSBCTR.cpp: static const char* functionName="readInt32Array";
./dxpSITORO/dxpApp/src/NDDxp.cpp:asynStatus NDDxp::readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
./dxpSITORO/dxpApp/src/NDDxp.cpp: const char *functionName = "readInt32Array";
./std-3-4-1/stdApp/src/drvScaler974.cpp: virtual asynStatus readInt32Array(asynUser *pasynUser,epicsInt32 *value, size_t nElements, size_t *nIn);
./std-3-4-1/stdApp/src/drvScaler974.cpp:asynStatus Scaler974::readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t maxChannel, size_t *nIn)
./std-3-4-1/stdApp/src/drvScaler974.cpp: static const char *functionName="readInt32Array";
./mca-7-7/mcaApp/SISSrc/drvSIS38XX.cpp:asynStatus drvSIS38XX::readInt32Array(asynUser *pasynUser, epicsInt32 *data,
./mca-7-7/mcaApp/SISSrc/drvSIS38XX.cpp: static const char* functionName="readInt32Array";
./mca-7-7/mcaApp/mcaSrc/drvFastSweep.cpp:asynStatus drvFastSweep::readInt32Array(asynUser *pasynUser,
./mca-7-7/mcaApp/AmptekSrc/drvAmptek.cpp:asynStatus drvAmptek::readInt32Array(asynUser *pasynUser,
./mca-7-7/mcaApp/AmptekSrc/drvAmptek.cpp: static const char *functionName="readInt32Array";
./dxp-5-0/dxpApp/src/NDDxp.cpp: virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn);
./dxp-5-0/dxpApp/src/NDDxp.cpp:asynStatus NDDxp::readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
./dxp-5-0/dxpApp/src/NDDxp.cpp: const char *functionName = "readInt32Array";
./areaDetector-3-2/ADCore/ADApp/pluginSrc/NDPluginStdArrays.cpp:asynStatus NDPluginStdArrays::readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
./areaDetector-3-2/ADCore/ADApp/pluginSrc/NDPluginStdArrays.cpp: status = NDPluginDriver::readInt32Array(pasynUser, value, nElements, nIn);
./areaDetector-3-2/ADCore/ADApp/pluginSrc/NDPluginDriver.cpp:asynStatus NDPluginDriver::readInt32Array(asynUser *pasynUser, epicsInt32 *value,
./areaDetector-3-2/ADCore/ADApp/pluginSrc/NDPluginDriver.cpp: static const char *functionName = "readInt32Array";
./areaDetector-3-2/ADCore/ADApp/pluginSrc/NDPluginDriver.cpp: status = asynNDArrayDriver::readInt32Array(pasynUser, value, nElements, nIn);
./asyn-4-33/testArrayRingBufferApp/src/testArrayRingBuffer.cpp: virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value,
./asyn-4-33/testArrayRingBufferApp/src/testArrayRingBuffer.cpp:asynStatus testArrayRingBuffer::readInt32Array(asynUser *pasynUser, epicsInt32 *value,
./asyn-4-33/testErrorsApp/src/testErrors.cpp:asynStatus testErrors::readInt32Array(asynUser *pasynUser, epicsInt32 *value,
Mark
________________________________
From: Mark Rivers
Sent: Thursday, May 17, 2018 5:53 AM
To: Jörn Dreyer; EPICS tech-talk
Subject: Re: Question regarding asynParamInt32Array
Hi Jörn,
The parameter library in the asynPrtDriver class does not support array data types. However, there are virtual methods to read, write, and do callbacks for all of the array data types. For asynInt32Array these are the methods defined in asynPortDriver.h:
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value,
size_t nElements, size_t *nIn);
virtual asynStatus writeInt32Array(asynUser *pasynUser, epicsInt32 *value,
size_t nElements);
virtual asynStatus doCallbacksInt32Array(epicsInt32 *value,
size_t nElements, int reason, int addr);
The base class implementation readInt32Array and writeInt32Array simply print an error message, so you need to implement those in your driver if you plan to use them. The base class implementation of doCallbacksInt32Array is normally sufficient, and you should not need to implement it.
This is all documented here:
https://epics.anl.gov/modules/soft/asyn/R4-33/asynDoxygenHTML/classasyn_port_driver.html
Mark
________________________________
From: [email protected] <[email protected]> on behalf of Jörn Dreyer <[email protected]>
Sent: Thursday, May 17, 2018 4:14 AM
To: EPICS tech-talk
Subject: Question regarding asynParamInt32Array
Hi,
looking at the supported data types for parameters in asynPortDriver I found
the asynParamInt32Array to match my needs to transfer 256 integers. But how to
set/get the values. There is no getIntegerArrayParam() function like the
getIntegerParam().
Regards,
Jörn
- References:
- Question regarding asynParamInt32Array Jörn Dreyer
- Re: Question regarding asynParamInt32Array Mark Rivers
- Navigate by Date:
- Prev:
Re: Question regarding asynParamInt32Array Mark Rivers
- Next:
Re: Amptek IOC: Problem with subnet Douglas Henrique C . de Araújo
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Question regarding asynParamInt32Array Mark Rivers
- Next:
EPICS control of an Edwards STP turbomolecular pump Lucock, Richard M
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
<2018>
2019
2020
2021
2022
2023
2024