I'm writing driver, device and record support for a set of custom VXI
modules. These modules have several functions, but share a number of
things like a subset of the VXI A16 registers, interrupt handling, etc.
Because of the desire to keep things self consistent and efficient, I
created one record type per module type. This makes for fairly messy
device support, as there is a lot of checking going on to figure out
which record field changed that caused the record to process. Does
anyone have a cleaner way to deal with this? Perhaps something to the
effect of using RSET->special to figure out which field caused
processing
and using that information (somehow) to tell RSET->process which
DSET->process
function to call? Perhaps call DSET->process in RSET->special directly?
Second, the records properly handle Is and Os from/to the modules when
they are marked scan passive. However, the modules can also raise
interrupts when they detect faults. I would like to get that
information
into record fields for display on an operator screen. Setting up for
the I/O Event scan mode appears to lock out processing due to
modification
of record fields from operator screens. Calling db_post_events from the
ISR seems to have no effect. There is really no need (currently) to
call
the process routine, but the record must be updated. What is the proper
way to handle both of these modes of operation?
Currently I'm running 3.12.2 and will upgrade to 3.12 as soon as I get
a chance.
Thanks,
Ric
--
Ric Claus ([email protected], (415) 926-2697)
- Replies:
- Re: rec/devSup advise needed Gabor Csuka
- Re: rec/devSup advise needed Ric Claus
- Navigate by Date:
- Prev:
Re: ANL vxWorks 5.2 Bakul Banerjee
- Next:
tclCa package (was et_wish) Claude Saunders
- 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
- Navigate by Thread:
- Prev:
R3.13.0beta1 available Marty Kraimer
- Next:
Re: rec/devSup advise needed Gabor Csuka
- 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
|