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  <20132014  2015  2016  2017  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: mbboDirect record questions
From: "Vishnu Patel" <[email protected]>
To: "Andrew Johnson " <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: 16 Mar 2013 07:51:33 -0000
Hi Andrew,
     You are right Bn should be for initialization. If i set some value X then at first caput command instead of writing zero value it will right X value.   
But if it is for initialization, i should set this value X at ioc boot not at very first caput.  and  second, i mentioned in my previous post that if i initialize prec->sevr 

static long init_record(mbboDirectRecord *prec, int pass)
{
       prec->sevr = NO_ALARM;
}
it will set the user input value even at very first time caput after ioc boot.

So it think some thing make prec->sevr = INVALID_ALARM  which lead first time caput sets Bn to the value.
I don't know how  prec->sevr   sets INVALID_ALARM, and it is expected or not.

--Vishnu


From: Andrew Johnson <[email protected]>
Sent: Fri, 15 Mar 2013 22:04:30
To: Mark Rivers <[email protected]>
Cc: Vishnu Patel <[email protected]>, "[email protected]" <[email protected]>
Subject: Re: mbboDirect record questions
Hi Mark,

On Mar 14, 2013, at 7:23 PM, Mark Rivers <[email protected]> wrote:

> But I think the way the mbboDirect record works it expects the Bn fields to be the ones you initialize before the record first processes.  I don't know how that is supposed to work if your driver does not provide an initial value, and the database does not know how to define it.  Because the first time you do a caput to B1, it will also write the values of B2, B3, etc. which may not have been initialized correctly yet.
>
> Maybe I'm missing something?

Probably not, IIRC the mbb*direct record types were not written by the EPICS core developers but by someone (I think at JLab) hacking on the mbb* records until they got something that did what they wanted without thinking about other users or uses for them. The documentation is similarly lacking and broken on the Wiki page.

In December I made some major cleanups in the code and how these records behave for the versions on the 3.15 branch, but I couldn't bring those changes back to the 3.14 branch because they would almost certainly break existing databases. For 3.14 users I recommend only using these record types for their behavior of splitting a number into individual bits or the reverse.

- Andrew

--
Sent from my iPad

Get your own FREE website and domain with business email solutions, click here

Replies:
Re: mbboDirect record questions Andrew Johnson

Navigate by Date:
Prev: Re: Record inactive Ronald Sluiter
Next: Epics Lecture videos are broken! Yasemin Barutçu
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: mbboDirect record questions Andrew Johnson
Next: Re: mbboDirect record questions Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·