If you search the asyn module for .db files containing the string “Array” you will find the following examples:
corvette:~/devel/asyn>find . -name '*.db' -exec grep -H Array {} \;
./db/testAsynPortDriver.db: field(DTYP, "asynFloat64ArrayIn")
./db/testAsynPortDriver.db: field(DTYP, "asynFloat64ArrayIn")
./db/testErrors.db:# Records that use devAsynXXXArray #
./db/testErrors.db: field(DTYP, "asynInt8ArrayIn")
./db/testErrors.db: field(DTYP, "asynInt16ArrayIn")
./db/testErrors.db: field(DTYP, "asynInt32ArrayIn")
./db/testErrors.db: field(DTYP, "asynFloat32ArrayIn")
./db/testErrors.db: field(DTYP, "asynFloat64ArrayIn")
./testErrorsApp/Db/testErrors.db:# Records that use devAsynXXXArray #
./testErrorsApp/Db/testErrors.db: field(DTYP, "asynInt8ArrayIn")
./testErrorsApp/Db/testErrors.db: field(DTYP, "asynInt16ArrayIn")
./testErrorsApp/Db/testErrors.db: field(DTYP, "asynInt32ArrayIn")
./testErrorsApp/Db/testErrors.db: field(DTYP, "asynFloat32ArrayIn")
./testErrorsApp/Db/testErrors.db: field(DTYP, "asynFloat64ArrayIn")
./testAsynPortDriverApp/Db/testAsynPortDriver.db: field(DTYP, "asynFloat64ArrayIn")
./testAsynPortDriverApp/Db/testAsynPortDriver.db: field(DTYP, "asynFloat64ArrayIn")
So testErrorsApp/Db has examples of all of the asynXXXArray device support, and testAsynPortDriver has an example of asynFloat64Array, which is just like asynInt32Array but
with a different data type.
asyn/devEpics/devAsynInt32Array.dbd contains the strings that you must put in the DTYP field of your waveform records:
corvette:asyn/asyn/devEpics>more devAsynInt32Array.dbd
device(waveform,INST_IO,asynInt32ArrayWfIn,"asynInt32ArrayIn")
device(waveform,INST_IO,asynInt32ArrayWfOut,"asynInt32ArrayOut")
Mark
I want to know about how to use asynInt32Array,
Actually on AsynDriver.pdf i could find few information about it.
typedef struct asynXXXArray {
asynStatus (*write)(void *drvPvt, asynUser *pasynUser, epicsXXX *value, size_t nelements);
asynStatus (*read)(void *drvPvt, asynUser *pasynUser, epicsXXX *value, size_t nelements, size_t *nIn);
asynStatus (*registerInterruptUser)(void *drvPvt, asynUser *pasynUser, interruptCallbackXXXArray callback,void *userPvt,void **registrarPvt);
asynStatus (*cancelInterruptUser)(void *drvPvt, asynUser *pasynUser, void *registrarPvt);
but not detail information how write and read methods can be used and what should me my db file content for read and write operation.
Like provided for asynInt32
field(INP,"@asyn($(port),$(addr))")
where can i find the detail user manual / application developer guide?