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  <20162017  2018  2019  2020  2021  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  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: asyn: drvInfo string vs. EPICS record name
From: Phil Atkin <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Date: Fri, 5 Feb 2016 17:04:40 +0000
Hi Mark,

That's very helpful (as always).

So: for my new parameters/records I can choose whatever I want (including making the drvInfo and EPICS record names identical), but should ensure that I match both when referring to a parameter/record defined by a base class.

Thanks,

Phil

On 05/02/2016 16:20, Mark Rivers wrote:

Hi Phil,

 

Ø  areaDetector drivers and plug-ins seem to (mainly) use different names for these: for example

Ø      drvInfo string: QUEUE_SIZE

Ø      EPICS record name: $(P)$(R)QueueSize

Having the drvInfo strings use uppercase with underscores and the record names and C++ variable names use camel case is historical.  We started using upper case for drvInfo strings a long time ago, and just kept up the convention.

 

Ø  As far as I can see, the drvInfo string is not visible to any client.

 

The drvInfo string not visible to ChannelAccess clients.  However, it is visible to asyn port driver clients.  This includes not only EPICS support, but also standalone C++ programs.  The areaDetector drivers are written such that they depend only on the EPICS libCom library (for OS-independent threads, mutexes, signals, etc.) and asyn (for interfaces).  It is possible to write a C++ program that controls an areaDetector without running it in an IOC.  This is demonstrated in ADExample/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/simDetectorNoIOC.cpp.  In that case the drvInfo strings are required by the C++ program, which is an asyn client.  The strings are thus part of the public interface and cannot be changed.  The same goes for EPICS database files.  I could change the drvInfo strings in ADCore in asynNDArrayDriver.h, ADDriver.h, etc. and in NDArrayBase.template, ADBase.template, etc.  But users have their own databases with those drvInfo strings now too, so we cannot break the interface.

 

Mark



 

From: [email protected] [mailto:[email protected]] On Behalf Of Phil Atkin
Sent: Friday, February 05, 2016 9:07 AM
To: [email protected]
Subject: asyn: drvInfo string vs. EPICS record name

 

areaDetector drivers and plug-ins seem to (mainly) use different names for these: for example

    drvInfo string: QUEUE_SIZE
    EPICS record name: $(P)$(R)QueueSize

Is there any reason for this?  Any reason they should not be QueueSize and $(P)$(R)QueueSize, or even QUEUE_SIZE and $(P)$(R)QUEUE_SIZE?  As far as I can see, the drvInfo string is not visible to any client.

Thanks,

Phil

--
Pixel Analytics is a limited company registered in England. Company number: 7747526; Registered office: 93A New Road, Haslingfield, Cambridge CB23 1LP


--
Pixel Analytics is a limited company registered in England. Company number: 7747526; Registered office: 93A New Road, Haslingfield, Cambridge CB23 1LP

References:
asyn: drvInfo string vs. EPICS record name Phil Atkin
RE: asyn: drvInfo string vs. EPICS record name Mark Rivers

Navigate by Date:
Prev: RE: asyn: drvInfo string vs. EPICS record name Mark Rivers
Next: RE: Active modbus read function upon request Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: asyn: drvInfo string vs. EPICS record name Mark Rivers
Next: CSS BOY Custom Widgets Abdalla Ahmad
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 15 Jul 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·