EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  <19981999  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  Index 1994  1995  1996  1997  <19981999  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 
<== Date ==> <== Thread ==>

Subject: Re: Proposal for boosted Symb device support
From: Marty Kraimer <[email protected]>
To: [email protected]
Date: Thu, 12 Mar 1998 09:11:10 -0600
Ned Arnold wrote:
> 
> Since it sounds like someone will be working on the Symbol Device support,
> may I comment ...
> 
> I find the derivation of the vxWorks symbol name from the PV name somewhat
> constraining, especially since our PV naming convention uses several ":".


Just so everyone is up to date.

William Lupton has a major new version of Symbol Device support which
will be in the next base release. Here is his README and some comments 

README file for dev/symb directory
----------------------------------
 
This directory contains all files necessary to build and test a version
of EPICS vxWorks global variable device support which uses the INST_IO
string as the variable name specification rather than deriving the name
from the record name.
 
In addition to specifying a variable name, a leading "*" operator
indicates
that the variable is a pointer and a trailing "[nnnn]" indicates that an
element of an array should be accessed.
 
Refer to the header comments of devSymbFind.c for full details.
 
The following files are in the release:
 
README                  This file
 
Makefile                UAE Makefile
Makefile.Vx             UAE vxWorks Makefile
 
devAiSymb.c             Modified versions of standard EPICS
devAoSymb.c             vxWorks global variable device support
devLiSymb.c
devLoSymb.c
devSiSymb.c
devSoSymb.c
 
devSymbFind.c           New module containing parsing code
                        (includes conditionally compiled test routine)
 
devSymbTest.c           Defines globals and a routine for test
 
devSup.ascii            New INST_IO entries for the above six records
 
symb.sr                 Test database (works with devSymbTest.c)
symbStartup.vws         Test vxWorks startup script
 
 
08-Jun-96, William Lupton ([email protected]), CVS tag: symb-1-0
----------------------------------------------------------------------
 
first release
 


__________________________________________________
FROM devSymbFind.c
__________________________

DESCRIPTION:
 
This module contains routines for converting a vxWorks global variable
name specification into its address. Two cases are supported:
 
1. If the supplied link field is of type INST_IO, its string value is
   assumed to be of the form:
 
   [ "*" ] name [ "[" index "]" ]
 
   where quoted items are literal and square brackets imply optional
   items.  White space is ignored. The leading "*", if specified,
   implies that the variable in question contains the address of the
   desired data. The name is the name of the vxWorks global variable (a
   leading underscore is added). The optional array index is multipled
   by the data element size (e.g. sizeof(char), sizeof(long) or
   sizeof(double)) and applied as an offset to the data address.
 
   For example:
 
   a) "fred" refers to the value of the vxWorks global variable "_fred"
 
   b) "*fred" refers to the value whose address is the value of the
 
 
   c) "fred[1]" assumes that the vxWorks global variable "_fred" is an
      array and refers to its second element
 
   d) "*fred[1]" assumes that the vxWorks global variable "_fred"
      contains the address of an array and refers to the second element
      of the array
 
   Note that the interpretation of the "*" operator is not the same as
   in C.  For example, "fred" and "fred[0]" are the same and "*fred" and
   "fred[0]" are not the same.  In this version of the driver, the
   value of the pointer is read at run-time rather than initialisation.
 
   Finally note that strings are not treated any differently from longs
   or doubles in that the address returned from this routine is simply
   the address of the data. "fred" is the entire string. "fred[2]"
   starts at the third character of the string.
 
2. Otherwise, behavior is the same as before: the name of the vxWorks
   global variable is derived from the record name by stripping off any
   prefix ending with the first ":" and any suffix starting with the
   last ";".  As in the other case, an underscore is automatically
   prefixed.
 
   For example:
 
   a) "ppp:fred;sss" refers to the vxWorks global variable "_fred"
 
   b) "a:b:c;d;e" refers to the vxWorks global variable "_b:c;d"
 
The second case is supported for backwards compatibility. The first
(INST_IO) is preferred.



Marty Kraimer

References:
Re: Proposal for boosted Symb device support Ned Arnold

Navigate by Date:
Prev: Re: Proposal for boosted Symb device support Andrew Johnson
Next: Re: Proposal for boosted Symb device support Ned Arnold
Index: 1994  1995  1996  1997  <19981999  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 
Navigate by Thread:
Prev: Re: Proposal for boosted Symb device support Ned Arnold
Next: Re: Proposal for boosted Symb device support Ned Arnold
Index: 1994  1995  1996  1997  <19981999  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 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·