1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: AreaDetector Teledyne driver question |
From: | David Vine via Tech-talk <tech-talk at aps.anl.gov> |
To: | Mark Rivers <rivers at cars.uchicago.edu> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 22 Jun 2022 19:18:49 -0700 |
Hi David,
Can you call GevWaitForFrame(timeout) with a short timeout? If so then can’t that thread just poll with a short timeout. It should abort the polling loop if any of the following happens:- It receives the frame OK- It receives an abort signal- It has been polling for significantly longer than the exposure time.
Mark
Sent from my iPhone
On Jun 22, 2022, at 7:04 PM, David Vine via Tech-talk <tech-talk at aps.anl.gov> wrote:
Hi all,
I wrote a driver for the Teledyne Shadobox 6k flat panel detector.
The API has a function called GevWaitForFrame(timeout) which must be being executed by the driver when a frame arrives from the camera or the frame will be missed. Are there any examples of a driver that has a similar API?
The problem is that it creates a race condition so if I execute the code sequentially:
send triggerGevWaitForFrame(1 second)
It's possible for the frame to arrive before I'm "waiting" for it. Right now I have two threads that receive epicsEventSignal - one to send the trigger and one to wait.
That works ok but since I can't abort the GevWaitForFrame the driver gets out of sync for longer exposures. Eg I have a 5 second exposure so I set a 7 second timeout but then abort after 1 second my wait thread is stuck for 6 seconds.
I haven't had a camera API work like this before so any examples would be really helpful.
Thanks,David
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee, you should not disseminate, distribute or copy this email. Please notify the sender immediately by email if you have received this email by mistake and delete this email from your system. If you are not the intended recipient, you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited