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 trigger
GevWaitForFrame(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