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  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  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 
<== Date ==> <== Thread ==>

Subject: Re: Proposed change in asyn - request for comments
From: Bruce Hill <bhill@slac.stanford.edu>
To: tech-talk@aps.anl.gov
Date: Wed, 30 May 2012 14:55:35 -0700
I think we could make this work if TSE = Event Number, but it would
require some changes to some existing modules including our EDT
drivers, as they rely on TSE == -2.

We'd need to have the TSE value available to pasynUser, and set the
image record's TSE field either in the db files or via db links.

We do risk some confusion for users, as EPICS has event numbers
for use in triggering record processing, but they aren't the same event
numbers as used by the EVR drivers to select which EVG events will
generate triggers.

Re Mark's question about buffered image processing in the driver,
I can see how that would be an issue if you were using EPICS for data
acquisition and wanted to trigger a new image acquisition immediately
after collecting the prior image.    We generally don't try to capture an
image each pulse, setting our EVR event code to only trigger on 1 out
of N pulses, leaving ample time for adjusting shutter durations which
gives us plenty of time to process the image before the next image
is triggered.

Thus, when we call epicsTimeGetCurrent(), the timestamp for the
event code which triggered the camera contains the appropriate pulse
ID, which we stuff into the lower 17 bits of the timestamp's nsec field.

Regards,
- Bruce

On 5/30/2012 9:03 AM, Mark Rivers wrote:
I think that you'd be better off setting the waveform record TSE=<the number of
some event in your timing system event receiver associated with the pulse>.
The waveform record would then get its time stamp from the event receiver.
I agree that they should set TSE=Event number.  But the question is, how to get the correct value for TSE into the waveform record in a robust way.  Let's assume these are images being collected with an areaDetector camera.  They may be buffered in the driver and plugins for a few LCLS pulses before the waveform record finally processes.  If the waveform record then tries to read the current event number it will not be correct.

It seems to me that the low-level camera driver should be collecting the bunch number the instant the image is collected, and attaching it to the image.  That information should make it back with the image in the callback to the waveform device support.  So maybe it makes sense to not only have a timeStamp passed in the pasynUser, but also a TSE?

Mark


-----Original Message-----
From: Eric Norum [mailto:eric@norum.ca]
Sent: Wednesday, May 30, 2012 10:24 AM
To: Ernest L. Williams Jr.
Cc: Mark Rivers; EPICS Techtalk
Subject: Re: Proposed change in asyn - request for comments

On May 30, 2012, at 8:07 AM, Ernest L. Williams Jr. wrote:

Hi Mark,
I apologize for the late response.
Here at the LCLS we are indeed interested in this.

We rely on our pulseID or "beam flavor" for correlation on a pulse by pulse basis.
This will be useful for any piece of data acquisition hardware which has an asyn driver.
For example, if I wanted to use your ip330-asyn driver for beam synchronous acquisition (BSA)

I hope to encourage more asyn-based drivers here at LCLS but we do need the capability to grab the pulseID
with the "TSE = -2" technique.  :)

At this time, there are 2 waveform digitizer VME boards that we have started to work on:
(1) Struck SIS3350
(2) Struck SIS3302
Can we make these asyn drivers and still integrate with GTR?  Eric any comments?
I don't see how GTR and ASYN would go together very easily.    Also, I don't think that TSE=-2 is the right choice for this setup -- the digitizers don't supply the time stamp.  I think that you'd be better off setting the waveform record TSE=<the number of some event in your timing system event receiver associated with the pulse>.  The waveform record would then get its time stamp from the event receiver.  If other records associated with the pulse use the same TSE field then they and the waveform record will have exactly the same time stamp for each pulse.

If the driver is indeed asyn, we like the proposal for getting the pulseID that you mention above. :)

I wonder how Jeff Hill (LANL) will correlate his data at LANSCE?


Replies:
RE: Proposed change in asyn - request for comments Kim, Kukhee
References:
Proposed change in asyn - request for comments Mark Rivers
Re: Proposed change in asyn - request for comments Ernest L. Williams Jr.
Re: Proposed change in asyn - request for comments Eric Norum
RE: Proposed change in asyn - request for comments Mark Rivers

Navigate by Date:
Prev: Re: calc VAL field not updating from bi VAL field J. Lewis Muir
Next: Re: calc VAL field not updating from bi VAL field Andrew Johnson
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 
Navigate by Thread:
Prev: Re: Proposed change in asyn - request for comments Eric Norum
Next: RE: Proposed change in asyn - request for comments Kim, Kukhee
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 
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 ·