EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  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  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: mbbi/mbbo Mask values
From: Paul Sichta <[email protected]>
To: "Dudley, David" <[email protected]>, [email protected]
Date: Fri, 1 Jun 2012 09:32:53 -0400
David,
Not a comment on how the MBBI masking actually works or how it is documented, but an alternate method:

Consider the MBBI Direct record.  This breaks out the individual bits, so you can repack them if necessary with a CALC record.

-ps


On Fri, Jun 1, 2012 at 9:19 AM, Dudley, David <[email protected]> wrote:
Lemme muddy the waters a little bit more…

Up in the "Read and Convert Parameters"…

Last couple of sentences… (my emphasis…)

"… The user can configure the NOBT field, but the device support routines may set it, in which case the value given to it by the user is simply overridden. The device support routines may also override MASK or shift it left by SHFT bits. If MASK is non-zero, only the bits specified by MASK will appear in RVAL."

I take from that, from the driver's point of view, 'MASK' is optional, and may or may not be used.  If that's the case, seems to me I should be able to define whatever mask I want, and as long as I don't want to match more than 16 values, it should work fine.

..So, if I define a mask in the driver that is 0x0303 for instance (bits 0,1,8, and 9), and set NOBT to 10, I should be able to match against 16 field values, even if the actual values I'm matching have values of "0,1,2,3, 256,257,258,259, 512,513,514,515, 768,769, 770,771" (I've already taken too much space, I'm not going to give them in binary as well ).  As long as I only have <16 valid bit states that I'm looking for, seems that I should be able to use -any– combination of bits (if I can compute their actual values, which I hope I got right).

I could add a calc record and figure some way to generate consecutive bits, but that seems like just adding an additional record that I don't really have to add, if I can define another way.

David

From: <Dalesio>, Leo <[email protected]>
Date: Friday, June 1, 2012 8:58 AM

To: David Dudley <[email protected]>, "[email protected]" <[email protected]>
Subject: RE: mbbi/mbbo Mask values

In the record reference manual on the EPICS wiki
https://wiki-ext.aps.anl.gov/epics/index.php/RRM_3-14_Multi-Bit_Binary_Input
it states:
NOBT Number of Bits Number of hardware bits accessed. They must be consecutive.

It would be better if the introduction to this record type had pointed this out. I will chance that today - if I remember how to get into the wiki page.



From: Dudley, David
Sent: Friday, June 01, 2012 8:42 AM
To: Dalesio, Leo; [email protected]
Subject: Re: mbbi/mbbo Mask values

I am assuming that is defined somewhere?

Looking at the MBBI record definition, I see that Mask, ZRVl, ONVL, … FFVL are all ULONGS, which would allow a bit field to be defined that didn't depend on consecutive bits.  Seems that the limitation is that NOBT defines MASK.

If NOBT was set to 0 (I would take that meaning as "don't define mask"), seems MASK 'should' be able to be manipulated.

Looking in the ether-ip driver, it doesn't look like mask from the record is even used.  It builds it's own internally.

David

From: <Dalesio>, Leo <[email protected]>
Date: Friday, June 1, 2012 8:34 AM
To: David Dudley <[email protected]>, "[email protected]" <[email protected]>
Subject: RE: mbbi/mbbo Mask values

The limit/definition of the MBBx record types was that the bits were consecutive.
I think that you would have to use a calc record between the input and MBBx record to mask out the bits in between.
Bob



References:
RE: mbbi/mbbo Mask values Dalesio, Leo
Re: mbbi/mbbo Mask values Dudley, David

Navigate by Date:
Prev: Re: mbbi/mbbo Mask values Dudley, David
Next: RE: mbbi/mbbo Mask values Dalesio, Leo
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: mbbi/mbbo Mask values Dudley, David
Next: RE: mbbi/mbbo Mask values Dalesio, Leo
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024