EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: RE: asyn float64array interrupt problem
From: "Mark Rivers" <[email protected]>
To: "Pedersen, UK \(Ulrik\)" <[email protected]>, <[email protected]>
Cc: [email protected]
Date: Thu, 26 Jul 2007 08:18:16 -0500
Hi Ulrik,
 
It is certainly possible that there is a bug.  The support for interrupt callbacks for waveform records was only added in R4-8.  The Modbus driver is the only one that I am aware of that uses the support, and it only uses asynInt32Array, not asynFloat64Array.  If there is a problem I suspect it is in devEpics/devAsynFloat64Array.  I'll take a look at that today and see if I can see a problem.
 
Mark
 

________________________________

From: [email protected] on behalf of Pedersen, UK (Ulrik)
Sent: Thu 7/26/2007 4:51 AM
To: [email protected]
Cc: [email protected]
Subject: asyn float64array interrupt problem




Hi,

I have come across a problem with float64Array interrupts when writing
asyn based driver support for a device. I may just be doing things wrong
but I have previously got the same thing working for int32, uint32 and
octet interrupts and I think I'm doing pretty much the same now...

In the release notes for Asyn version 4-8 it states that interrupt
support for devAsynFloat64Array has been added (enabling IO Intr. in
waveform records). Previously I used event processing for the same
functionality...

So I enabled IO intr in my waveform record:
record(waveform, "$(DAQMX):DATA") {
  field(SCAN, "I/O Intr")
  field(PINI, "NO")
  field(DTYP, "asynFloat64ArrayIn")
  field(PREC, "5")
  field(INP, "@asyn(myport1 0 5.0)DATA")
  field(NELM, "$(NELM)")
  field(FTVL, "DOUBLE")
}

All the asyn registering bits is in the configuration function and
according to the asyn debug output during startup, the interrupt gets
registered:
2007/07/26 10:34:51.478 drvDaqMxBase::drvUserCreate, attempting to
create cmd: DATA
2007/07/26 10:34:51.478 drvDaqMxBase::drvUserCreate, command created:
DATA
...
2007/07/26 10:34:51.478 test:DATA devAsynFloat64Array::getIoIntInfo
registering interrupt
2007/07/26 10:34:51.478 myport1 0 registerInterruptUser

In the driver code when I want to execute the interrupt/callback I do
this:
pasynManager->interruptStart(pPvt->float64ArrayInterruptPvt,
&pclientList);
pNode = (interruptNode *)ellFirst(pclientList);

Here is where the problem occur: pNode is still NULL! So it seems that
the list of interrupt clients is empty - but according to the startup
script the devAsynFloat64Array interrupt has been registered for that
record...(???)

Any idea why this is not working or what I may be doing wrong? Any
suggestion where I need to start looking for more debug information?

Cheers,
Ulrik

--------------------------------------------------------------------

  Ulrik Pedersen               phone: +44(0)1235-778580
  Software Engineer            email: [email protected]

      Diamond Light Source Ltd.
      Rutherford Appleton Laboratory,
      Chilton, Didcot
      OxfordShire OX11 0DE

--------------------------------------------------------------------





Replies:
RE: asyn float64array interrupt problem Mark Rivers
References:
asyn float64array interrupt problem Pedersen, UK (Ulrik)

Navigate by Date:
Prev: asyn float64array interrupt problem Pedersen, UK (Ulrik)
Next: Asyn, asyn, and more asyn interpose interfaces Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: asyn float64array interrupt problem Pedersen, UK (Ulrik)
Next: RE: asyn float64array interrupt problem Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·