Hi Eddy,
Three small follow-up questions regarding the plugins:
1. Is there a direct way to get the current background image into a StdArray, so I can display it on the panel?
If you're talking about the background array saved in the processing plugin, I don't think there is a direct way. However, one workaround is to have a dedicated stdArray plugin enabled when the background image is acquired, which is listening to the Asyn port of the processing plugin. Then you can disable that stdArray plugin so it will not process again, but the plugin will still serve the background array over channel access so it can be seen on a GUI. This enable/disable cycle could be automated as part of the process to acquire a background array.
Alternatively, the background array can also be a TIFF file, which could simply be opened by an image viewer program when needed.
2. The profile PVs from the stats module contain the Y information for the plot, is there also an array which I can use for the x pv? (so an array from 0:DimX/Y)
The stats plugin already contains both the X and Y profile plots (averaged profiles and also at a specific X and Y coordinate).
3. And connected to 2.: does one of the plugins provide the option to scale the pixel/dimensions to mm, so also all cacluclated stats etc are in mm?
I think that's something a GUI would do. The GUI would display the axis labels in terms of mm. It's been a long time since I used anything other than CS-Studio, but in terms of CS-Studio this would be done by setting the Image widget x_axis.minimum/maximum and y_axis.minimum/maximum properties. Note, this would also change how the ROI parameters and cross-hair parameters are set. However this wouldn't change any of the calculated statistics in the IOC, for example the centroid position - you'd need to do that on the IOC side via a few extra 'calc' records.
Cheers,
Matt
-----Ursprüngliche Nachricht-----
Von: Mark Rivers <rivers at cars.uchicago.edu>
Gesendet: Freitag, 21. März 2025 16:55
An: Blomley, Edmund (IBPT) <edmund.blomley at kit.edu>; tech-talk at aps.anl.gov
Betreff: RE: Areadetector Plugin Enable/Disable Issue and Design Question
Hi Eddy,
I am quite sure that the weird _RBV behavior is due to these errors you see after iocInit:
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
You can eliminate those by adding this line before iocInit. It is already present at the end of commonPlugins.cmd if you use that.
# Set the callback queue size to 5000, up from default of 2000 in base.
# This can be needed to avoid errors "callbackRequest: cbLow ring buffer full".
callbackSetQueueSize(5000)
Mark
-----Original Message-----
From: Blomley, Edmund (IBPT) <edmund.blomley at kit.edu>
Sent: Friday, March 21, 2025 9:55 AM
To: Mark Rivers <rivers at cars.uchicago.edu>; tech-talk at aps.anl.gov
Subject: AW: Areadetector Plugin Enable/Disable Issue and Design Question
Hey Mark,
That should definitely not be happening, I have never heard of that issue before.
Just to be sure it is not a problem with the GUI please test it as follows:
• In one terminal window run the following camonitor command where the * is replaced by your actual prefix
camonitor *:Proc1:EnableCallbacks *:Proc1:EnableCallbacks_RBV
• In a second terminal window run caput
caput *:Proc1:EnableCallbacks 1
caput *:Proc1:EnableCallbacks 0
So here is the terminal 1 (fresh after IOC restart):
$ caput *:Proc1:EnableCallbacks 1
Old : *:Proc1:EnableCallbacks Disable
New : *:Proc1:EnableCallbacks Enable
$caput *:EnableCallbacks 0
Old : *:Proc1:EnableCallbacks Enable
New : *:Proc1:EnableCallbacks Disable
$ caput *:Proc1:EnableCallbacks 1
Old : *:Proc1:EnableCallbacks Disable
New : *:Proc1:EnableCallbacks Enable
$ caput *:Proc1:EnableCallbacks 0
Old : *:Proc1:EnableCallbacks Enable
New : *:Proc1:EnableCallbacks Disable
And terminal 2 (first two lines are before the first caput after IOC init):
*:Proc1:EnableCallbacks 2025-03-21 15:37:01.331762 Disable *:Proc1:EnableCallbacks_RBV <undefined> Disable UDF INVALID *:Proc1:EnableCallbacks 2025-03-21 15:37:20.323116 Enable *:Proc1:EnableCallbacks_RBV 2025-03-21 15:37:20.323176 Disable *:Proc1:EnableCallbacks 2025-03-21 15:37:24.247508 Disable *:Proc1:EnableCallbacks_RBV 2025-03-21 15:37:24.247585 Enable STATE MINOR *:Proc1:EnableCallbacks 2025-03-21 15:37:29.191775 Enable *:Proc1:EnableCallbacks_RBV 2025-03-21 15:37:29.191858 Disable *:Proc1:EnableCallbacks 2025-03-21 15:37:35.575135 Disable *:Proc1:EnableCallbacks_RBV 2025-03-21 15:37:35.575210 Enable STATE MINOR
The plugin "works"/ is enabled as long as the *:Proc1:EnableCallbacks is 1.
The last few lines during IOC init:
cas warning: Configured TCP port was unavailable.
cas warning: Using dynamically assigned TCP port 41665, cas warning: but now two or more servers share the same UDP port.
cas warning: Depending on your IP kernel this server may not be cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
iocRun: All initialization complete
2025-03-21T15:37:01.336 Using dynamically assigned TCP port 43249.
# Create autosave files for IOCStats
makeAutosaveFileFromDbInfo("iocStats_settings_kara_slm", "autosaveFields_pass0") create_monitor_set("auto_settings_kara_slm.req", 60) create_monitor_set("iocStats_settings_kara_slm.req", 60)
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
callbackRequest: cbLow ring buffer full
epics> iocStats_settings_kara_slm.sav: 63 of 63 PV's connected
auto_settings_kara_slm.sav: 360 of 360 PV's connected
epics>
but there are no new errors once initialized. But looking at the logs I wonder if this might be an issue, because our camera server has two network connections, one dedicated to the cameras and one to the rest of the accelerator network, but I am not sure if that explains the inverted behaviour for the set and readback value? We use this setup for years, but maybe now with the plugins and callbacks this creates issues which did not manifest beforehand?
Cheers
eddy
- References:
- Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) via Tech-talk
- Re: Areadetector Plugin Enable/Disable Issue and Design Question Mark Rivers via Tech-talk
- AW: Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) via Tech-talk
- RE: Areadetector Plugin Enable/Disable Issue and Design Question Mark Rivers via Tech-talk
- AW: Areadetector Plugin Enable/Disable Issue and Design Question Blomley, Edmund (IBPT) via Tech-talk
- Navigate by Date:
- Prev:
RE: How to add KeySight Laser interferometer to EPICS Freddie Akeroyd - STFC UKRI via Tech-talk
- Next:
Question About ADEuresys XML File Support for the EPICS IOC Kim, Kuktae via Tech-talk
- 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
<2025>
- Navigate by Thread:
- Prev:
Re: Areadetector Plugin Enable/Disable Issue and Design Question Ralph Lange via Tech-talk
- Next:
Registration, call for abstracts, and other deadlines - Spring 2025 EPICS Collaboration Meeting Ivan Finch - STFC UKRI via Tech-talk
- 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
<2025>
|