1994 1995 1996 1997 1998 1999 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 2025 | Index | 1994 1995 1996 1997 1998 1999 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: More than 16 enumerations mbbi / mbbo |
From: | Hinko Kocevar <[email protected]> |
To: | [email protected] |
Date: | Thu, 26 Jul 2012 14:45:41 +0200 |
On 07/26/2012 02:04 PM, Benjamin Franksen wrote:
On Thursday, July 26, 2012, Hinko Kocevar wrote:While developing writing Asyn device driver support for our products running on Linux OS, we were faced with the need to support more than 16 enumeration values that are to be represented using mbbi / mbbo records. I'm looking for solutions to this problem. We are trying to stay within EPICS base provided record types as much as possible, but we have no problems to include additional EPICS extensions to out soft IOC in order to gain record support. Last resort would be to provide a new record type.Writing a new record type with, say, 32 choices based on the existing 16- choices versions wouldn't be hard. The problem is that the result won't be very useful because CA (Channel Access) limits the number of choices for type DBR_XXX_ENUM to 16 which is hard coded in the protocol (see db_access.h). So, for instance, a menu button in an operator panel would not see all 32 choices but only the first 16; and so on. A possible work-around would be to somehow split the choices into smaller (related) groups, then provide a 'master' mbbi/o for the choice of the group, and separate mbbi/o for chosing inside the groups.
My version would not even include the 'master' mbbi/mbbo. I was thinking about splitting too large enumerations into 16 or less values to fit single mbbi/mbbo.
For example: 20 enums - 0 - 15 in mbbi1 record - 16 -19 in mbbi2 record What will mbbi1 value be if eg. enum 17 should be set? What will mbbi2 value be if eg. enum 4 should be set?Can it be 'undefined'? Or should we leave one enum state reserved in this case and set it when other mbbiX is in use..
Best regards, Hinko -- Hinko Kocevar Software development engineer Instrumentation Technologies d.d. Velika pot 22, SI-5250 Solkan - Slovenia T:+386 5 3352600, F:+386 5 3352601 E-mail: [email protected] http://www.i-tech.si The information transmitted is intended solely for the addressee and may contain confidential and/or privileged information. Any review, retention, disclosure or other use by persons other than the intended recipient is prohibited. If you received this in error, please notify the sender and delete all copies.