Handling arv_camera_[get|set]_[gain|black_level] with multiple taps #703
Labels
1. Enhancement
Issues that propose improvements to existing features
5. Camera
Issue in ArvCamera API
Some cameras have multiple sensor taps. As an example, Imperx GEV1620 has 2 taps. Each sensor tap has its own Black_Level and Analog Gain settings.
Using the current API for get and set will only return or change the value currently set via the "[Gain|BlackLevel]Selector" register which, in this case, can read either "AnalogTap1" or "AnalogTap2."
Thus, using the get/set API as it is right now only changes half the image.
The other way to change both, aside from the *Selector registers, is to use each register directly: "AnalogOffset_Ch1" and "AnalogOffset_Ch2" respectively as an example (corresponds to BlackLevel).
Obviously, one possibility would be for the set() method to check for a corresponding *Selector register and set each value to the requested one at a time. However, the issue arises when a get() is performed and the taps (or channels) are not all the same.
I'm more than willing to implement a solution, but I don't have a good idea how to handle it.
Another possibility would be for arv_camera_is_[gain|black_level]_available() to return false in the case where there are multiple taps, but that doesn't quite seem right either since it IS available and the proper use is to set each corresponding *Selector value to get/set the requested channel.
The text was updated successfully, but these errors were encountered: