The Resonon API is no longer being updated or maintained. We recommend customers move to using the camera vendors' SDKs.
Documentation on how to do so is available here.
Resonon API  3.12 [Deprecated]
C++ API for controlling Resonon hyperspectral imagers
Framerate and Integration Time

Overall

Integration time is a key parameter determining the amount of light available to an imager. For most applications, the longest integration time allowed by the required framerate without resulting in saturated pixels is typically desirable. Fundamentally, the highest framerate that can be attained is limited to 1 / integration time. Additionally, camera readout time and data transfer rates can limit framerates.

Resonon imagers respond differently to framerate and integration time settings depending on the underlying camera technology in use. Please read the section below which corresponds to your imager carefully.

Visible Range Imagers based on Basler Cameras

The Pika L and Pika XC2 framerates are affected by the integration time and binning settings. The underlying camera technology honors integration time over the framerate setting. The framerate setting on these imagers should be treated as a target value. The camera will attempt to run at the requested framerate, but will not adjust integration time in order to do so. This means that setting a framerate lower than the maximum possible framerate given the current integration time will be honored, but setting a higher framerate than is achievable at the requested integration time will result in a achieved framerate that is lower than the requested framerate. The imager will accept the framerate passed to Resonon::PikaBasler::set_framerate(), and if asked for the framerate using Resonon::PikaBasler::get_framerate() will report the framerate that was set. While actually acquiring data, however, the imager may not be able to achieve the requested framerate and will instead operate at a rate that is determined by integration time. The Resonon::PikaBasler::get_max_framerate function will return the maximum framerate which should actually be achievable at the current settings.

Resonon::PikaBasler::get_min_integration_time() and Resonon::PikaBasler::get_max_integration_time() return values representative of the limits of the capabilities of the underlying camera regardless of current framerate settings. It is rare to actually use values at these boundaries.

Near Infrared Imagers based on Allied Vision Cameras

The PikaNIR GigE imagers based on the Allied Goldeye camera honor integration time over framerate. Unlike the Pika L, the PikaAllied may change the framerate setting when the integration time is changed. If a longer integration time is set which requires a lower framerate, the framerate is silently lowered. If a shorter integration time is set which permits a faster framerate, the framerate will be increased up to, but not above, the last framerate that was set by the user.

When connected to a PikaNIR, the Resonon::PikaAllied::get_min_framerate() and Resonon::PikaAllied::get_max_framerate() methods return the minimum and maximum framerates which are actually achievable at the current integration time.