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: asynPortDriver
From: "Szalata, Zenon M." <[email protected]>
To: Andrew Johnson <[email protected]>, "[email protected]" <[email protected]>
Date: Tue, 24 Jul 2012 15:27:47 -0700
Hi Andrew,
You are absolutely right that aSub record is the way to go.  The reason for the way I have it is somewhat historic.
The aSub record is processed by a FLNK in the waveform record.  In fact, since this now became a test IOC, I will simplify it further to eliminate the sub array records.
Thank you,
Zen

> -----Original Message-----
> From: Andrew Johnson [mailto:[email protected]]
> Sent: Tuesday, July 24, 2012 3:21 PM
> To: [email protected]
> Cc: Szalata, Zenon M.; Mark Rivers
> Subject: Re: asynPortDriver
> 
> Hi Zenon,
> 
> A couple of comments...
> 
> On 2012-07-24 Szalata, Zenon M. wrote:
> >
> > My diagnostic mechanism consists of two sets of EPICS records.
> > The data are passed from the device driver as an array of 17 integers.
> > The  first is a gate counter, which is incremented just before it is
> > put in the  array.  This counter is followed by 16 ADC values.  The
> > array is received  in a waveform record.  The waveform record triggers
> > processing of an aSub  record and a chain of sub array records where
> > the ADC values are extracted  and put into ai records. The aSub record
> > compares the value of the gate  counter with the value of gate counter
> > from a previous event.  If this  value is not greater by 1 than the
> > previous value, it prints a message,  which shows this and previous values.
> 
> If you are looking for high performance a chain of sub-array records is not
> going to be terribly efficient.  Much better would be to use the aSub itself to
> split up your array into 16 individual output fields VALx and point the OUTx
> links to the individual ai records.
> 
> > Here is a typical output:
> >
> > asubMiss: Something wrong: n=53385,lastn=53383
> > asubMiss: Something wrong: n=53385,lastn=53385
> > subASMissing: got a missing ++++++++++++++++
> >
> a=53385.000,b=0.000,c=4294967295.000,d=1.000,e=53383.000,f=1.000,g=1.
> 0
> > 00
> > k=2.000,l=1.000,val=2.000
> > subASMissing: trigger number this=53385.0, prev=53385.0
> >
> > The first two messages come from the aSub record, the next three come
> > from  the sub record. I am not sure how to interpret the presence of
> > the second  of the two messages from the aSub record and the third
> > from the sub  record.  It looks as if the waveform record processed
> > twice when the  problem occurred.
> 
> Actually I would read the first asubMiss as somehow having its input array
> overwritten while it was still processing for n=53384, then immediately getting
> retriggered for the actual n=53385.
> 
> How is your waveform record connected to the aSub record, i.e. what causes
> the aSub to process after the waveform record processes?
> 
> - Andrew
> --
> Never interrupt your enemy when he is making a mistake.
> -- Napoleon Bonaparte


References:
asynPortDriver Szalata, Zenon M.
RE: asynPortDriver Mark Rivers
RE: asynPortDriver Szalata, Zenon M.
Re: asynPortDriver Andrew Johnson

Navigate by Date:
Prev: Re: asynPortDriver Andrew Johnson
Next: RE: asynPortDriver Mark Rivers
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: asynPortDriver Andrew Johnson
Next: RE: asynPortDriver Mark Rivers
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