- PROP_AUTO_EXPOSURE now queries hardware using IS_GET_ENABLE_AUTO_SHUTTER
- PROP_AUTO_GAIN now queries hardware using IS_GET_ENABLE_AUTO_GAIN
- PROP_GAIN_BOOST now queries hardware using IS_GET_GAINBOOST
This ensures each camera reports its actual hardware state rather than
a shared cached value when properties are queried via camera_control.py
- Add gain-boost property to gstidsueyesrc (boolean)
- Implement is_SetGainBoost() API call in property setter and framerate/exposure function
- Add UDP control commands SET_GAIN_BOOST and GET_GAIN_BOOST
- Add --gain-boost command-line flag to launch-ids.py
- Update camera_control.py with get-gain-boost and set-gain-boost commands
- Change parameter defaults to None (exposure, framerate, gain) to respect INI file defaults
- Only set properties when explicitly provided by user - INI file is source of truth
- Query camera's actual exposure range before setting exposure time
- Validate and clamp exposure values to supported min/max limits
- Log detailed information about range, requested vs actual values
- Add GET_EXPOSURE_RANGE command to UDP control interface
- Update Python control scripts with exposure range query support
This prevents IS_INVALID_EXPOSURE_TIME errors and ensures values are
always within the camera's capabilities. The exposure range varies by
framerate and sensor configuration.
- Added 'gain' property to gstidsueyesrc element (0-100, 0=auto)
- Implemented hardware gain control using is_SetHardwareGain() API
- Added --gain/-g command-line argument to launch-ids.py
- Added SET_GAIN and GET_GAIN UDP control commands
- Updated STATUS command to include gain value
- Added get-gain and set-gain commands to camera_control.py test client
- Gain can be set at startup or adjusted dynamically during runtime
- Replaced garbled is_GetError() output with human-readable error messages
- Added error code mapping for 25+ common IDS errors from uEye.h
- Enhanced camera initialization with detailed logging and context
- Error messages now include error code, name, description, and troubleshooting hints
- Added information about device/camera ID attempted and available camera count
- Example: Error 3 now shows 'IS_CANT_OPEN_DEVICE (3): Cannot open device - check if camera is connected and not in use. Camera/Device ID used: 99, Available cameras: 2'
Fixes issue where camera initialization failures showed cryptic characters instead of useful error information.
- Added --display option for 1/4 sized preview window using autovideosink
- Added --camera-id and --device-id options for camera selection
- Added UDP control commands: SET_CAMERA_ID, GET_CAMERA_ID, SET_DEVICE_ID, GET_DEVICE_ID
- Updated GStreamer idsueyesrc element to support device-id property
- device-id uses IS_USE_DEVICE_ID flag for system enumeration
- camera-id continues to use user-definable ID (0 for first found)
- Updated STATUS command to include camera_id and device_id
- Re-validate AOI configuration before starting video capture
- Fixes 'Invalid buffer size' error when using Start Y > 0
- Query current AOI and re-set it to force SDK internal state update
- Tested with Start Y=0 and Start Y=500 - both work correctly
Previous way of creating caps left invalid colorimetry field 0:0:0:0,
which combined with a bug present in GStreamer 1.8 led to GRAY16_LE data
being corrupted when converted to GRAY16_BE (or vice versa). Current
method will properly initialize colorimetry field, avoiding this problem
in 1.8.