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: EPICS UIs in the context of changing enum record identifiers |
From: | Peter Milne <[email protected]> |
To: | [email protected], [email protected] |
Date: | Wed, 01 Apr 2015 18:54:08 +0100 |
Hi Pete On 01/04/15 18:13, Pete Jemian wrote:
We encountered this same situation when building controls for the XIA PF4 filter (attenuator) box. The PF4 allows one to place 4 separate foils into the beam. The X-ray attenuation of the PF4 is based on the combination of foils in the beam. Attenuation varies by X-ray wavelength, thus the nice text on the MBBO button labels would change, ideally, when the X-ray wavelength is changed. (A SNL program computes the values.) Our work around was to place the changeable text in stringout labels next to each mbbo radiobutton value. Not our first choice for controls but acceptable to the users.
I've been hit by this issue too. Seems like your solution might be the simplest offered so far. Help my understanding please:Is it the case that the MBBO button shows "this is what it was when the screen started, or what you last requested on this screen", while the Stringout shows "this is what it actually is now" (perhaps because some other agent changed it).
Thanks Peter
see the example "pf4Bankmore.adl" screen in the synApps optics module: https://subversion.xray.aps.anl.gov/synApps/optics/trunk/opticsApp/op/adl/pf4Bankmore.adl Pete On 4/1/2015 11:53 AM, Jameson Graef Rollins wrote:Hi, all. We have an application that employs an enum record as a control interface (for submitting a request to the program). The application can be manually prompted to reload it's configuration, which can occasionally cause the elements of the control enum to change (desired behavior). The problem is that our operator interfaces (primarily MEDM at the moment) do not behave well in the context of these enum change. All MEDM enum controller objects retrieve enum identifiers only once at startup. This means they become stale after the enum changes, and more dangerously, allow the user to select one element that is actually mapped to another. This has created quite a few headaches for us. I've been trying to find a way around this problem, but haven't come up with anything. The best solution I have so far involves creating a screen on the fly that creates a shell command menu with a bunch of "caput" commands for the strings of enum. This of course doesn't get updated on application reload either, but it at least doesn't allow for selecting a mislabeled element. I'm soliciting for suggestions about how to create operator interfaces that behave better in the face of changing enum records. All operator interfaces that I've looked at (MEDM, EDM, QTDM) don't behave well. Any suggestions of what we could do that don't involve patching MEDM or creating our own operator interface? jamie.
-- Peter Milne Director of Sales www.d-tacq.com