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.
This commit is contained in:
yair
2025-11-16 04:37:09 +02:00
parent 43878b36e2
commit 48f669f5c8
3 changed files with 72 additions and 14 deletions

View File

@@ -197,8 +197,9 @@ Examples:
parser.add_argument('command',
nargs='?',
choices=['test', 'get-exposure', 'set-exposure', 'get-framerate', 'set-framerate',
'get-gain', 'set-gain', 'get-auto-exposure', 'set-auto-exposure',
choices=['test', 'get-exposure', 'get-exposure-range', 'set-exposure',
'get-framerate', 'set-framerate', 'get-gain', 'set-gain',
'get-auto-exposure', 'set-auto-exposure',
'get-auto-gain', 'set-auto-gain', 'status'],
help='Command to execute')
@@ -236,6 +237,9 @@ Examples:
if args.command == 'get-exposure':
success = simple_command("GET_EXPOSURE", "Getting current exposure")
elif args.command == 'get-exposure-range':
success = simple_command("GET_EXPOSURE_RANGE", "Getting exposure range")
elif args.command == 'set-exposure':
if args.value is None:
print("Error: set-exposure requires a value (exposure in milliseconds)")