Hi Evan,
I agree with Matt’s suggestion.
Here are some drivers and plugins that do callbacks with NDArray data to more than one address:
https://github.com/areaDetector/ADEiger/blob/2c102cabf6c1eb335b575352dbbdd2a695661da1/eigerApp/src/eigerDetector.cpp#L1833
https://github.com/areaDetector/ADCore/blob/0d264c33cd2e1e83dc6070a974f2b5e3a059ea48/ADApp/pluginSrc/NDPluginTimeSeries.cpp#L382
https://github.com/areaDetector/ADCore/blob/0d264c33cd2e1e83dc6070a974f2b5e3a059ea48/ADApp/pluginSrc/NDPluginAttribute.cpp#L108
https://github.com/areaDetector/ADCore/blob/0d264c33cd2e1e83dc6070a974f2b5e3a059ea48/ADApp/pluginSrc/NDPluginStats.cpp#L578
https://github.com/areaDetector/ADCSimDetector/blob/c514cc353436be8fe4ebf3158244434f49febdfa/ADCSimDetectorApp/src/ADCSimDetector.cpp#L328
https://github.com/epics-modules/quadEM/blob/f5ab1e97fd71d3c83421d856a1c8b1d9b8406f9d/quadEMApp/src/drvQuadEM.cpp#L326
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Pearson, Matthew via Tech-talk
Sent: Monday, June 9, 2025 3:25 PM
To: Daykin, Evan <daykin at frib.msu.edu>; EPICS tech-talk <tech-talk at aps.anl.gov>
Subject: RE: AreaDetector Driver for device that sends back 3 synchronized frames
Hi Evan,
I assume you’d be handling/saving each array separately? If so, one way to handle this is to use different Asyn addresses for the output NDArray callbacks. So you would have a single driver that gets the 3
images, and then output the RGB image NDArray on addr=0, the IR image NDArray on addr=1 and the depth image NDArrray on addr=2. Each NDArray type would use a different dims[] size and datatype. Then you can have 3 separate plugin chains to handle the NDArray
processing, with the 1st plugin in each chain listening to a different Asyn address.
Cheers,
Matt
Hi, I am looking to create an AD Driver for Microsoft Kinect v2. The open-source device driver libfreenect2, uses a Synchronized multi-frame listener
that awaits the receipt of an RGB image (1920x1080x3 int), an IR image (512x424 float), and
Hi,
I am looking to create an AD Driver for Microsoft Kinect v2. The open-source device driver libfreenect2, uses a Synchronized multi-frame listener that
awaits the receipt of an RGB image (1920x1080x3 int), an IR image (512x424 float), and a depth image (512x424 float). I would like suggestions for the best way to handle this. My first thought is to have three separate ‘sub’-detector drivers and dole out each
frame from the main driver according to its type. Are there any existing device support modules that do something similar?
Thanks!
-Evan