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  <20112012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: asynPortDriver callbacks to I/O Intr, how to propagate an error?
From: Angus Gratton <angus.gratton@anu.edu.au>
To: tech-talk <tech-talk@aps.anl.gov>
Date: Wed, 11 May 2011 10:59:20 +1000
I have some asynPortDriver-derived driver classes for various pieces of
hardware, most of which are updated when data changes in a DMA read (ie
the background monitoring thread calls setIntegerParam() then calls
callParamCallbacks())

The records are all using I/O Intr so they only scan when required.

Sometimes the DMA read indicates that a piece of hardware has gone
offline. In this case, I'd like to have records using that port scanned
and updated to INVALID severity, and also see an error logged on the
console.

If was using periodic scanning, I believe I could override readInt32()
or equivalent to return asynError status. However, if I want to keep
using I/O Intr then I can't see any way to do this, either with
asynPortDriver or with asyn.

What I'm imagining would help me is a method with a name like
setParamErrorFlag(), that I could call before callParamCallbacks() and
that would propagate the error state back to the record. I'm still very
much an asyn newbie though, so maybe I'm looking at this the wrong way.

Thanks in advance for any tips. If this feature doesn't exist and might
be useful, I'm happy to have a shot at implementing it with a view to
submitting a patch.

- Angus



-- 
Angus Gratton
Computer Control Specialist
Department of Nuclear Physics
Australian National University

Ph: +61 2 6125 2096


Replies:
RE: asynPortDriver callbacks to I/O Intr, how to propagate an error? Mark Rivers

Navigate by Date:
Prev: Disconnected PVs Andrew C. Starritt
Next: Calculation in SNL/SEQ liuping
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: Disconnected PVs Andrew Johnson
Next: RE: asynPortDriver callbacks to I/O Intr, how to propagate an error? Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·