g+
g+ Communities
Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  Index 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013 
<== Date ==> <== Thread ==>

Subject: output record initialization
From: wlupton@keck.hawaii.edu (William Lupton)
To: tech-talk@aps.anl.gov
Date: Thu, 31 Aug 95 09:47:30 HST
Dear all,

  How do you set an initial value for an output record (ao, bo, mbbo, longout,
stringout etc)?

  The current behavior of init_record() is as follows (I've taken this from
the ao record but the others all seem very similar):

1. if DOL is a constant, it is copied to VAL and UDF is set FALSE
2. if device support supplies an init_record() routine, it is called
3. if so and status 2 is returned, no conversion is performed
4. if so and status 0 is returned, normal conversion from RVAL is performed

  The result is that a DOL initial value is honored only if:

1. there is no device support init_record() routine, or
2. the device support init_record() routine returns status 2

Also, if a device support record_init() routine is going to return status 0 it
should always have set RVAL to something sensible.

  The issue arises: what if the database designer _wants_ to force an initial
value for a record? Currently he can't be sure that this is possible, because
it's up to device support. Should there be a means of doing this? If so,
presumably there needs to be a new "force init" field (FINI?) which says that
the DOL constant value is to be used regardless. What if you want to give a
record an initial value but want to retain the option of running it in closed
loop mode? Perhaps a field other than DOL should be used for the initial value
(IVAL? --- already used for this purpose in the steppermotor record). For
upwards compatibility, IVAL would only be used if FINI is YES.

  I would propose (and I expect that this is what is happening already in most
if not all cases) that the device support init_record() should _always_ read
RVAL from the hardware and return 0 if it is capable of doing so. If it is not,
then I think that usually the best behavior would be for device support to set
RVAL to a suitable default and still return 0. With the above FINI / IVAL
scheme, the application designer can still provide his own default to override
that provided by device support.

  Any comments?

  William


Navigate by Date:
Prev: Q: NI-1014 GPIB board with Force CPU40. Noboru Yamamoto
Next: Re: output record initialization Gordon Uchenick
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013 
Navigate by Thread:
Prev: Re: Q: NI-1014 GPIB board with Force CPU40. Noboru Yamamoto
Next: Re: output record initialization Gordon Uchenick
Index: 1994  <19951996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·