Closed LeeYangLBLBCS closed 4 years ago
I have seen the same behavior. It appears the Multiple mode has a minimum of 2 images. If you want just 1 then use Single mode.
This is a feature of the camera firmware , not the EPICS software.
The issue we're encountering is actually not limited to Multiple mode. Even in Single mode, the following returns an unexpected result:
$ caput 13SP1:cam1:ImageMode 0
Old : 13SP1:cam1:ImageMode Multiple
New : 13SP1:cam1:ImageMode Single
$ caput 13SP1:cam1:NumImages 1
Old : 13SP1:cam1:NumImages 1
New : 13SP1:cam1:NumImages 1
$ caget 13SP1:cam1:NumImages_RBV
13SP1:cam1:NumImages_RBV 2
The returned value is always at least 2.
The returned value is always at least 2.
Yes, because that GenICam feature for NumImages only applies in Multiple mode. So it is never allowed to be less than 2.
I see. So this behavior is unique to the design of this driver, and not consistent with other AD devices? A side-effect of this is that I'm unable to acquire a single image through Bluesky. Whenever requesting one image frame, I end up with 2. How could this behavior be corrected?
Bluesky should be using Singl mode when it want to acquire a single image. There are many SDKs for which that is simpler and more efficient than Multiple mode with NumImages=1.
We could also change ADGenICam so that if NumImages=1 it changes to Single mode. But then when NumImages is changed to >1 should it automatically go to Multiple mode? What if the user does not want that?
It is not really unique to the design of this driver. The GenICam feature is AcquisitionFrameCount, which GenICam says must be >=1. But FLIR seems to limit it to be >=2, so it is a function of their firmware design.
As shown in MEDM screen attached, RBV value for cam1:NumImages is minimum 2, even when when the entered value for NumImages is 1. The behavior for ImageMode in Single and Multiple is different when NumImages=1. The camera will acquire 1 image in Single, or 2 images in Multiple mode in this case. Is this behavior correct?