Advanced automatic brightness controller with comprehensive feature set. More...
#include <peak_afl/pipeline/modules/controllers/peak_afl_advanced_auto_brightness.hpp>
Public Member Functions | |
| AdvancedAutoBrightness (peak::afl::Manager &manager, ProcessingCallback callback) | |
| Constructs an AdvancedAutoBrightness controller with the specified manager and callback. | |
| ~AdvancedAutoBrightness () override=default | |
| Destructor for AdvancedAutoBrightness. | |
| std::string | GetName () const override |
| Gets the name identifier for this controller. | |
| void | Serialize (peak::common::serialization::IArchive &archive) const override |
| Serializes the current controller state and configuration to an archive. | |
| void | Deserialize (const peak::common::serialization::IArchive &archive) override |
| Deserializes controller state and configuration from an archive. | |
| ControllerType | GetType () const override |
| Gets the controller type identifier. | |
| void | SetMode (ControllerMode mode) override |
| Sets the operation mode for the brightness controller. | |
| ControllerMode | GetMode () const override |
| Gets the current operation mode of the brightness controller. | |
| bool | IsRunning () const override |
| Checks if the brightness controller is currently running. | |
| features::SkipFrames & | SkipFrames () |
| Gets access to the skip frames feature. | |
| features::AutoTarget & | AutoTarget () |
| Gets access to the auto target feature for brightness target configuration. | |
| features::AutoTolerance & | AutoTolerance () |
| Gets access to the auto tolerance feature for brightness stability control. | |
| features::AutoPercentile & | AutoPercentile () |
| Gets access to the auto percentile feature used for automatic brightness adjustment. | |
| features::Roi & | Roi () |
| Gets access to the region of interest (ROI) feature for selective brightness analysis. | |
| features::BrightnessAlgorithm & | AnalysisAlgorithm () |
| Gets access to the brightness algorithm feature for algorithm selection. | |
| BrightnessComponent & | Exposure () const |
| Gets access to the exposure component for exposure time control. | |
| bool | HasExposure () const |
| Checks if the exposure component is available on the current device. | |
| BrightnessComponent & | AnalogGain () const |
| Gets access to the analog gain component for sensor-level gain control. | |
| bool | HasAnalogGain () const |
| Checks if the analog gain component is available on the current device. | |
| BrightnessComponent & | DigitalGain () const |
| Gets access to the digital gain component for post-processing gain control. | |
| bool | HasDigitalGain () const |
| Checks if the digital gain component is available on the current device. | |
| BrightnessComponent & | CombinedGain () const |
| Gets access to the combined gain component for unified gain control. | |
| bool | HasCombinedGain () const |
| Checks if the combined gain component is available on the current device. | |
| BrightnessComponent & | HostGain () const |
| Gets access to the host gain component for software-based gain control. | |
| bool | HasHostGain () const |
| Checks if the host gain component is available on the current device. | |
| std::vector< BrightnessComponent * > | GetComponents () const |
| Gets a vector of all available brightness components. | |
| BrightnessComponent * | GetComponent (BrightnessComponentType componentType) const |
| Gets a specific brightness component by type. | |
| void | ResetToDefault () override |
| Resets all controller settings and components to their default values. | |
| IController::FinishedCallbackHandle | RegisterFinishedCallback (const IController::FinishedCallback &callback) |
| Registers a callback function to be invoked when brightness adjustment completes. | |
| void | UnregisterFinishedCallback (IController::FinishedCallbackHandle callbackHandle) |
| Unregisters a previously registered completion callback. | |
| Public Member Functions inherited from IController | |
| virtual | ~IController ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
| IController (const IController &)=delete | |
| Copy constructor deleted to prevent copying. | |
| IController & | operator= (const IController &)=delete |
| Copy assignment deleted to prevent copying. | |
| IController (IController &&)=delete | |
| Move constructor deleted to prevent moving. | |
| IController & | operator= (IController &&)=delete |
| Move assignment deleted to prevent moving. | |
Additional Inherited Members | |
| Public Types inherited from IController | |
| using | FinishedCallback |
| Callback function type for operation completion notifications. | |
| using | FinishedCallbackHandle |
| Handle type for managing callback registrations. | |
| Protected Member Functions inherited from IController | |
| peak::afl::Manager & | GetManager () |
| Gets a reference to the API manager. | |
Advanced automatic brightness controller with comprehensive feature set.
The AdvancedAutoBrightness class provides a sophisticated and highly configurable interface for automatic brightness control. This controller offers the complete feature set with granular control over all brightness adjustment mechanisms and algorithmic options.
Advanced Features:
Brightness Components:
Algorithm Support:
|
inlineexplicit |
Constructs an AdvancedAutoBrightness controller with the specified manager and callback.
Initializes the brightness controller with all available brightness components including exposure, analog gain, digital gain, combined gain, and host gain. The controller will automatically detect which components are supported by the device.
| manager | Reference to the API manager for device communication |
| callback | Processing callback function that will be invoked when brightness adjustment completes (host gain) |
|
overridedefault |
Destructor for AdvancedAutoBrightness.
Cleans up resources and ensures proper shutdown of the controller.
|
inline |
Gets access to the analog gain component for sensor-level gain control.
The analog gain component controls sensor-level amplification before digitization. This provides brightness increase with better noise characteristics than digital gain.
| peak::afl::error::NotSupportedException | if analog gain component is not supported by the device |
|
inline |
Gets access to the brightness algorithm feature for algorithm selection.
Brightness algorithm determines the computational method used for brightness analysis and adjustment decisions.
|
inline |
Gets access to the auto percentile feature used for automatic brightness adjustment.
Determines the pixel intensity percentile to consider when adjusting exposure or gain. A higher percentile emphasizes brighter regions, while a lower percentile focuses on mid-tones or shadows.
Typical range: 0-100.
|
inline |
Gets access to the auto target feature for brightness target configuration.
Auto target defines the desired brightness level that the controller will attempt to achieve through automatic adjustments.
|
inline |
Gets access to the auto tolerance feature for brightness stability control.
Auto tolerance defines the acceptable deviation from the target brightness before the controller triggers adjustment actions.
|
inline |
Gets access to the combined gain component for unified gain control.
The combined gain component provides a unified interface for both analog and digital gain control, automatically selecting the optimal combination.
| peak::afl::error::NotSupportedException | if combined gain component is not supported by the device |
|
inlineoverridevirtual |
Deserializes controller state and configuration from an archive.
Restores all controller settings and component configurations from previously serialized data.
| archive | Reference to the archive containing the serialized data |
Implements ISerializable.
|
inline |
Gets access to the digital gain component for post-processing gain control.
The digital gain component controls post-digitization amplification. This provides brightness increase but may introduce more noise than analog methods.
| peak::afl::error::NotSupportedException | if digital gain component is not supported by the device |
|
inline |
Gets access to the exposure component for exposure time control.
The exposure component controls camera exposure time to adjust image brightness. This is typically the primary method for brightness control as it doesn't introduce noise.
| peak::afl::error::NotSupportedException | if exposure component is not supported by the device |
|
inline |
Gets a specific brightness component by type.
| componentType | The type of brightness component to retrieve |
|
inline |
Gets a vector of all available brightness components.
Returns pointers to all brightness components that are supported and available on the current device configuration.
|
inlineoverridevirtual |
Gets the current operation mode of the brightness controller.
Implements IController.
|
inlineoverridevirtual |
Gets the name identifier for this controller.
Implements IController.
|
inlineoverridevirtual |
Gets the controller type identifier.
Implements IController.
|
inline |
Checks if the analog gain component is available on the current device.
|
inline |
Checks if the combined gain component is available on the current device.
|
inline |
Checks if the digital gain component is available on the current device.
|
inline |
Checks if the exposure component is available on the current device.
|
inline |
Checks if the host gain component is available on the current device.
|
inline |
Gets access to the host gain component for software-based gain control.
The host gain component controls software-based gain adjustment performed on the host system after image acquisition.
| peak::afl::error::NotSupportedException | if host gain component is not supported by the device |
|
inlineoverridevirtual |
Checks if the brightness controller is currently running.
Implements IController.
|
inline |
Registers a callback function to be invoked when brightness adjustment completes.
The callback will be called asynchronously when the brightness controller finishes processing a frame and applying adjustments.
| callback | The callback function to register for completion notification |
|
inlineoverridevirtual |
Resets all controller settings and components to their default values.
This will restore:
Implements IController.
|
inline |
Gets access to the region of interest (ROI) feature for selective brightness analysis.
ROI allows the controller to focus brightness analysis on specific areas of the image rather than the entire frame, providing more precise control for specific applications.
|
inlineoverridevirtual |
Serializes the current controller state and configuration to an archive.
Saves all controller settings including:
| archive | Reference to the archive where the serialized data will be stored |
Implements ISerializable.
|
inlineoverridevirtual |
Sets the operation mode for the brightness controller.
| mode | The controller mode to set (Off, Continuous, Once). |
Implements IController.
|
inline |
Gets access to the skip frames feature.
Skip frames allows the controller to process only every Nth frame instead of every frame, reducing computational load while maintaining brightness control.
|
inline |
Unregisters a previously registered completion callback.
| callbackHandle | Handle returned from RegisterFinishedCallback() for the callback to remove |