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.
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Thursday, May 01, 2025 1:56 PM
To: Iain Marcuson <iain.marcuson at sydortechnologies.com>; 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
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