- As a related question, what records would I use if I wanted to have a waveform of readback values? I do not see an array equivalent to setDoubleParam().
You have 2 choices:
- If you want the driver to decide when the waveform input record should processes then you set SCAN=I/O Intr and your driver calls doCallbacksFloat64Array().
- If you want the record to be processed periodically or otherwise from the outside then you implement readFloat64Array() which will be called when you
process the record.
Mark
From: Iain Marcuson <iain.marcuson at sydortechnologies.com>
Sent: Thursday, May 1, 2025 1:05 PM
To: Mark Rivers <rivers at cars.uchicago.edu>; Ralph Lange <ralph.lange at gmx.de>; EPICS Tech Talk <tech-talk at aps.anl.gov>
Subject: RE: Writing array data in an AreaDetector application
That was indeed the problem; thank you. As a related question, what records would I use if I wanted to have a waveform of readback values? I do not see an array equivalent to setDoubleParam().
Iain.
The problem is in your constructor. When you call the base class constructor you give it a bit mask of what interfaces to implement. You need to add asynFloat64Array to that.
Here is an example of a driver that does that:
https://github.com/areaDetector/NDDriverStdArrays/blob/e21b2f2f74feb217a0e67ba8f8fc4bfd7efe58e0/NDDriverStdArraysApp/src/NDDriverStdArrays.cpp#L49
Mark
I do see a message I had overlooked before:
devAsynFloat64Array::initCommon, 13PIL1:cam1:PADDigiCorr find asynFloat64Array interface failed
I think I have the function names and signatures right, from looking at file asynPortDriver.h, if that is what you mean.
Looking at the documentation [1] and your record, it all seems fine.
The waveform record type was created as an input - that's why the configuration field is INP. Unrelated to your problem.
It's most probably a code issue. Is your additional method properly declared in the class declaration, so that the default implementation of the method is overridden?
Click
here to report this email as spam.
This message has been scanned for malware by Forcepoint.
www.forcepoint.com