EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20202021  2022  2023  2024  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: How to handle adjusting values as they change independent of the driver in an asynPortDriver?
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "Wlodek, Jakub" <jwlodek at bnl.gov>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 2 Sep 2020 14:07:45 +0000
Hi Jakub,


> I had a question about best practices for writing an asynPortDriver or more specifically an areaDetector driver.
> The cameras I am writing support for allow for auto-gain and auto-exposure modes, that adjust the gain and exposure
> internally based on the recieved image.


Is this a GenICam camera?  If so this should already be implemented.  If it is not a GenICam camera then I would suggest implementing it in a similar manner.


Below is a screen shot for an ADAravis camera.  ADVimba and ADSpinnaker are similar. In the upper right of this screen shot notice the "Status" section.  The StatusRate controls the rate at which the ReadStatus record is processed, and hence the rate at which camera status is polled.  The ReadStatus record is in ADBase.template, and hence is available for all cameras.


For GenICam cameras this reads the values of all of the GenICam features for the camera, which will include the auto-exposure values.  These PVs will thus already be update on the camera-specific screens that can be loaded from this screen.


[cid:dc051c12-fa9a-4379-8163-b28da8ee0529]

You need to be aware that reading the features while the camera is acquiring competes for bandwidth and camera resources with the image streaming.  Thus it may impact performance.

That is true for the Oryx camera in the screen shot above.  If I set StatusRate=Passive then it consistent runs at the full requested 160 frames/s with no FrameFailures.  If I set StatusRate=1 second then FrameFailures increases at a few per second and the number of frames/s drops below 160.

Mark


________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Wlodek, Jakub via Tech-talk <tech-talk at aps.anl.gov>
Sent: Wednesday, September 2, 2020 8:39 AM
To: tech-talk at aps.anl.gov
Subject: How to handle adjusting values as they change independent of the driver in an asynPortDriver?

Hi all,

I had a question about best practices for writing an asynPortDriver or more specifically an areaDetector driver.
The cameras I am writing support for allow for auto-gain and auto-exposure modes, that adjust the gain and exposure
internally based on the recieved image. At the moment, I show this updating in my screens by in the main image processing
thread loop grabbing the pv value for auto-gain and auto-exposure, and if either is on, I ping the camera for the current value
an update the value in the parameter library and run callParamCallbacks.

Would this be a "best practices" solution, or is there a better way to do this? I was thinking maybe something could be
done with EPICS record SCAN fields, or maybe the readInt32 method.

Thanks,
Jakub

PNG image


References:
How to handle adjusting values as they change independent of the driver in an asynPortDriver? Wlodek, Jakub via Tech-talk

Navigate by Date:
Prev: Re: Alarm and logging systems Konrad, Martin via Tech-talk
Next: Support for Watlow EZ-zone PM controller Phillip A. Sorensen 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: How to handle adjusting values as they change independent of the driver in an asynPortDriver? Wlodek, Jakub via Tech-talk
Next: Support for Watlow EZ-zone PM controller Phillip A. Sorensen 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  <20202021  2022  2023  2024 
ANJ, 02 Sep 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·