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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Bypassing Options in ImageMode in AreaDetector |
From: | Mark Rivers <[email protected]> |
To: | 'Iain Marcuson' <[email protected]>, "[email protected]" <[email protected]> |
Date: | Fri, 14 Sep 2018 16:33:18 +0000 |
Hi Iian, My previous response was not quite correct. You also need to define the TWST to be “”, otherwise you will still have 3 choices in the OPI menu: record(mbbo, "$(P)$(R)ImageMode") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Continuous") field(ONVL, "2") field(TWST, “”) } record(mbbi, "$(P)$(R)ImageMode_RBV") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Continuous") field(ONVL, "2") field(TWST, “”) } Ø
I may have to make a separate AreaDetector project for our sensor and modify that. That is generally the recommended approach for a new detector. -
Create a new project (e.g. Github repository) -
Create a new C++ driver that derives from ADDriver. -
Create a new database that first includes ADBase.template. Overwrite fields from ADBase records and add new records for your detector. -
Create a new OPI screen starting with ADBase.adl, .opi, .ui, or .edl. Back to your original post: Ø
We only want to use “Single” and “Continuous” ImageMode, not “Multiple”. Even if the hardware only supports Single and Continuous you might want to consider implementing Multiple via software in your driver. That is what a number of the existing
areaDetector drivers do. Users often want to be able to collect N images and then stop acquisition. Mark From: Iain Marcuson <[email protected]>
That is what I did in my first implementation, although due to how I set things up I was modifying the ADCore template, which doesn’t seem very portable. I may have to
make a separate AreaDetector project for our sensor and modify that. From: Mark Rivers <[email protected]>
Hi Iian, You can do it in a simpler way. You can just redefine the fields of the existing ImageMode record in the database for your detector. You don’t need to leave a gap. The
ONVL field can be 2, it does not have to be 1. Here is an example from ADAndor/andorApp/Db/andorCCD.template where additional choices were added: record(mbbo, "$(P)$(R)ImageMode") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Multiple") field(ONVL, "1") field(TWST, "Continuous") field(TWVL, "2") field(THST, "Fast Kinetics") field(THVL, "3") field(VAL, "2") } record(mbbi, "$(P)$(R)ImageMode_RBV") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Multiple") field(ONVL, "1") field(TWST, "Continuous") field(TWVL, "2") field(THST, "Fast Kinetics") field(THVL, "3") field(SCAN, "I/O Intr") } In your case you can do: record(mbbo, "$(P)$(R)ImageMode") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Continuous") field(ONVL, "2") } record(mbbi, "$(P)$(R)ImageMode_RBV") { field(ZRST, "Single") field(ZRVL, "0") field(ONST, "Continuous") field(ONVL, "2") } Mark From:
[email protected] <[email protected]>
On Behalf Of Iain Marcuson I am using areaDetector in a product. We only want to use “Single” and “Continuous” ImageMode, not “Multiple”. In the first implementation, I modified ADBase.template to remove the “Multiple”
option. For a more portable solution, I made a new mbbo record without the Multiple option, and set the OUT field to $(P)$(R)ImageMode. However, I had to define “ZRVAL” and “TWVAL”, skipping “ONVAL” (Multiple), leaving a gap in a drop-down menu. Is there
a way to avoid this gap? Thank you, Iain Marcuson Software Engineer, Sydor Technologies 585.278.1168 |
www.SydorTechnologies.com Skype:
[email protected] |