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: Proposed change in asyn - request for comments
From: Bruce Hill <[email protected]>
To: "Kim, Kukhee" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Thu, 31 May 2012 16:34:18 -0700
Hi Kukhee,
The EPICS events I'm referring to are related to the post_event(int event)
call which can be used to trigger processing of records with their SCAN
field set to "Event".    The only EPICS event that our event module posts
is EVENT_MODULO720 (121) which is used to cause 0.5Hz processing of
calc records for event rates and some diagnostic records.

By contrast, the event records in our event module typically have SCAN set
to "I/O Intr"  and the driver processes the record when the EVR sees the event
code from  the EVG and causes an interrupt.   While we could call post_event()
for the  received EVG event codes,  we don't currently and I think it would risk
unintended side effects if we did so, as other modules may use some of the
same EPICS event codes for their own synchronization.

My concern was that overloading the TSE field to contain EVR Event codes
would be inappropriate for a module like asyn that is used by many sites
that don't use EVR's.

Regards,
- Bruce

On 05/30/2012 06:53 PM, Kim, Kukhee wrote:
Hi Bruce; I am confusing in your previous email.
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.

The event number which generated by the EVR and the epics event is exactly same. Actually there are event records which are correspond to the EVR event numbers. If we enable the soft event, then the event module proceeds the event record which is corresponded to the EVR event. Thus, the EVR event number n generates the epics event number n.

Probably, I mis-understand your message. Would you advice me?

Thank you.
Best regards,
Kukhee
--------------------------------------------
Kukhee Kim
SLAC National Accelerator Laboratory
2575 Sand Hill Rd, MS 64
Menlo Park, CA 94025
Email: [email protected]
Phone: (650)926-4912


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Bruce Hill
Sent: Wednesday, May 30, 2012 2:56 PM
To: [email protected]
Subject: Re: Proposed change in asyn - request for comments

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:[email protected]]
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?


--
Bruce Hill
Member Technical Staff
SLAC National Accelerator Lab
2575 Sand Hill Road M/S 10
Menlo Park, CA  94025


Replies:
Re: Proposed change in asyn - request for comments Andrew Johnson
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
Re: Proposed change in asyn - request for comments Bruce Hill
RE: Proposed change in asyn - request for comments Kim, Kukhee

Navigate by Date:
Prev: Re: waveform of STRING memory structure Andrew Johnson
Next: Re: waveform of STRING memory structure Pavel Masloff
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: Proposed change in asyn - request for comments Eric Norum
Next: Re: Proposed change in asyn - request for comments 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  2021  2022  2023  2024