areaDetector / ADSpinnaker

An EPICS areaDetector driver for cameras from FLIR (formerly Point Grey) using their Spinnaker SDK.
https://areadetector.github.io/areaDetector/ADSpinnaker/ADSpinnaker.html
5 stars 6 forks source link

FLIR camera PV cam1:NumImages_RBV does not match cam1:NumImages #5

Closed LeeYangLBLBCS closed 4 years ago

LeeYangLBLBCS commented 4 years ago

image 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?

MarkRivers commented 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.

MarkRivers commented 4 years ago

This is a feature of the camera firmware , not the EPICS software.

ronpandolfi commented 4 years ago

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.

MarkRivers commented 4 years ago

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.

ronpandolfi commented 4 years ago

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?

MarkRivers commented 4 years ago

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?

MarkRivers commented 4 years ago

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.