13 Commits

Author SHA1 Message Date
yair
6e1195c94c refine: improve exposure control precision and validation
- Lower minimum exposure from 1.0ms to 0.015ms in launch-ids.py validation
- Add exposure range validation (0.015-30000ms) to camera_control.py
- Update help text to display exposure range for better user guidance
- Adjust camera config: swap binning/subsampling values in nightcolor preset
- Add comment explaining subsampling vs binning behavior

Enhances exposure control granularity and provides clearer validation
feedback while optimizing camera configuration for low-light scenarios.
2025-11-16 06:27:51 +02:00
yair
02dc12a5c4 feat: add simplified syntax to camera control scripts
- Update camera_control.py to support 'property value' syntax
  * camera_control.py gain → gets current gain value
  * camera_control.py gain 33 → sets gain to 33
  * Add --host, --port, and --timeout parameters
  * Maintain backward compatibility with existing commands

- Update launch-ids.py to support simplified property setting at startup
  * launch-ids.py exposure 16 → launches with 16ms exposure
  * launch-ids.py framerate 30 → launches with 30fps framerate
  * launch-ids.py gain 50 → launches with gain set to 50
  * Preserve traditional flag syntax for full backward compatibility

Both scripts now provide intuitive property-based syntax while
maintaining all existing functionality and command-line options.
2025-11-16 05:39:44 +02:00
yair
b62451d80f Add IS_GET_GAINBOOST support to IDS uEye plugin
- 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
2025-11-16 04:58:17 +02:00
yair
48f669f5c8 feat(idsueye): Add exposure range validation and query support
- 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.
2025-11-16 04:37:09 +02:00
yair
43878b36e2 add auto gain 2025-11-16 04:05:26 +02:00
yair
6654b99eab added auto exposure 2025-11-16 04:00:14 +02:00
yair
acbd8ec416 Add gain control support to IDS uEye camera driver
- 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
2025-11-16 03:54:29 +02:00
yair
497ea26aa7 fix exposure limits 2025-11-16 03:37:26 +02:00
yair
8880dbf3cf Add display option and device-id support to launch-ids.py
- 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
2025-11-16 03:19:42 +02:00
yair
9051fe182a feat: add comprehensive IDS uEye camera control script
- Add full-featured launch-ids.py with command-line argument parsing
- Implement UDP control server for dynamic exposure/framerate adjustment
- Support configurable video streaming (UDP) with optional display preview
- Add exposure control in milliseconds (1.0-1000.0ms, default 10ms)
- Add framerate control (1-20200 Hz, default 750Hz)
- Include video cropping, queue configuration, and verbose/quiet modes
- Integrate argcomplete for tab completion support
- Add comprehensive error handling and validation
- Support custom camera configuration files
- Enable tee-based pipeline for simultaneous UDP streaming and display

Provides complete camera control interface with both CLI configuration
and runtime UDP control for exposure/framerate adjustments.
2025-11-16 02:36:11 +02:00
yair
193244e9a3 Here's a commit message for the changes to [scripts/launch-ids.py](scripts/launch-ids.py):
```
fix(launch-ids): fix videocrop element error and enhance startup output

- Fix GstAddError caused by duplicate pipeline.add(videocrop) call
  The videocrop element was being added to the pipeline twice: once
  explicitly when crop was enabled, and again in the element linking loop.
  Removed the duplicate add operation.

- Enhance startup configuration display
  Display all configured parameters at startup in a formatted summary:
  * Camera config file path
  * Exposure time (ms)
  * Framerate (Hz)
  * Crop settings (pixels or disabled)
  * Queue buffer size (if configured)
  * Video stream destination (UDP host:port)
  * Control server port (or disabled status)
  * Complete pipeline description

The output is now formatted with separators and aligned labels for
better readability, making it easier to verify settings at startup.
```
2025-11-16 02:20:12 +02:00
yair
083cd86702 fix: correct exposure units from seconds to milliseconds
- Update idsueyesrc exposure property to use milliseconds (per gst-inspect)
- Fix default exposure value from 0.016 to 10ms
- Update validation range to 1.0-1000.0ms in control server
- Correct all documentation and examples in UDP_CONTROL_PROTOCOL.md
- Update test_exposure_control.py to use millisecond values

Resolves unit mismatch between documented seconds and actual milliseconds
expected by the idsueyesrc GStreamer element.
2025-11-16 01:58:36 +02:00
yair
fef3f0baad Add UDP control protocol and IDS camera scripts
- Added UDP_CONTROL_PROTOCOL.md documenting the UDP control interface
- Added launch-ids.py for IDS camera control
- Added test_exposure_control.py for testing exposure settings
- Added udp_backup.reg for UDP configuration backup
- Added visualize_line_realtime.py for real-time visualization
- Updated .gitignore and ROLLINGSUM_GUIDE.md
- Removed ini/200fps-2456x4pix-cw.ini configuration file
2025-11-15 14:00:36 +02:00