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: | Synchronizing external changes to target instrument with EPICS |
From: | "Wang, Andrew via Tech-talk" <tech-talk at aps.anl.gov> |
To: | EPICS tech-talk <tech-talk at aps.anl.gov> |
Date: | Mon, 11 Apr 2022 17:14:58 +0000 |
Hi all, Long story short, we have an instrument that we wrote EPICS drivers for. The instrument in question also has a webpage, where all its settings are accessible. The goal is for the EPICS drivers to be updated when a modification is made to
the webpage. Suppose we have a setting on the instrument that allows us to adjust its voltage output. The EPICS drivers would contain a “getter” and “setter” record of the following. record(ao, “voltage_set”) { field(DTYP, “stream”) field(OUT, “@commands.proto setVoltage 4000”) } record(ai, “voltage_get”) { field(DTYP, “stream”) field(INP, “@commands.proto getVoltage 4000”) } If I adjusted the voltage through the webpage, then I would also like the updated voltage to show up in “voltage_set”, like what is done through the @init protocol during initialization. I was thinking of doing this via “streamReload” in
a subroutine record, which gets processed every ~5 seconds or so. Is that a viable solution or is there a better way of going about it? Thank you, Andy |