577 Commits

Author SHA1 Message Date
yair
fd651e3cf9 rm wokflows 2025-11-15 14:02:51 +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
yair
743bfb8323 Decouple display and recording in recv_raw_rolling.py
- Add --record-fps parameter for independent recording frame rate control
- Separate display and recording buffers (display_buffer_obj, record_buffer_obj)
- Enable recording without display and vice versa
- Independent throttling for display and recording operations
- Improve code organization and cleanup handling
2025-11-15 00:48:09 +02:00
yair
d3ee5d998e Fix image orientation in recv_raw_rolling.py - correct 180deg rotation and flip 2025-11-15 00:35:49 +02:00
yair
bdb89b2632 Add UDP traffic analysis tools for GStreamer video debugging 2025-11-14 19:52:11 +02:00
yair
3a799c0a65 Adapt pipeline to transmit single line (2456x1) instead of 2456x4
- Modified recv_raw_rolling.py to handle 2456x1 BGR line format
- Fixed display dimensions (2456 tall x 800 wide)
- Updated 200fps-2456x4pix-cw.ini to start at Y=500
- Added detailed single line transmission docs to network_guide.md
- Updated README.md with quick start example using videocrop
2025-11-14 19:32:14 +02:00
yair
3349050849 Fix IDS uEye AOI issue with non-zero Y offset
- 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
2025-11-14 19:11:55 +02:00
yair
8c650dde33 Optimize recv_raw_rolling.py: NumPy indexing, display throttling, and MJPEG recording
- Replace cv2.rotate() with NumPy array indexing for 2x+ speedup
- Add --display-fps argument to throttle display refresh while capturing all UDP frames
- Add --save-mjpeg argument to record rolling display to MJPEG video
- Fix display throttling to capture all frames while only refreshing display at specified rate
- Performance: ~300 FPS no-display, ~100 FPS full display, 150-250+ FPS with throttling
2025-11-14 18:27:56 +02:00
yair
e16d36128b Optimize recv_raw_rolling.py: NumPy indexing, display throttling, and MJPEG recording
- Replace cv2.rotate() with NumPy array indexing for 2x+ speedup
- Add --display-fps argument to throttle display refresh while capturing all UDP frames
- Add --save-mjpeg argument to record rolling display to MJPEG video
- Fix display throttling to capture all frames while only refreshing display at specified rate
- Performance: ~300 FPS no-display, ~100 FPS full display, 150-250+ FPS with throttling
2025-11-14 18:27:06 +02:00
yair
fa3dbdef38 opencv optional (100fps max) 2025-11-14 18:10:52 +02:00
yair
25f32bf8e9 go test (no udp limit) 2025-11-14 18:03:44 +02:00
yair
581d0ce7ae go test (no udp limit) 2025-11-14 18:03:35 +02:00
yair
76626278ca rolling optimize 2025-11-14 18:03:15 +02:00
yair
64e4803df3 add stats for drops 2025-11-14 17:27:19 +02:00
yair
4856248bc5 with netwrok 2025-11-14 17:17:02 +02:00
yair
e58e2319a3 dot stuff 2025-11-14 17:11:18 +02:00
yair
4d35d16c72 udp 2025-11-14 17:00:20 +02:00
yair
2699913e92 rolling 2025-11-14 16:29:31 +02:00
yair
72e7091c61 rolling 2025-11-14 16:18:27 +02:00
yair
94f7c04dc6 Fix recv_raw_column.py height mismatch and update script paths in docs
- Fixed HEIGHT from 480 to 640 to match actual videotestsrc output
- Added DEBUG flag to control debug output visibility
- Added cv2.namedWindow() for proper window initialization
- Updated all Python script references in markdown files to scripts/ folder
- Updated network_guide.md with correct frame dimensions and Python receiver option
2025-11-14 15:33:17 +02:00
yair
ee4fd76e13 rem unused lic 2025-11-14 15:01:03 +02:00
yair
1c7ca124b1 del 2025-11-14 15:00:05 +02:00
yair
cb1e5c7607 docs: convert bash commands to PowerShell and merge ROLLINGSUM docs
- Updated all commands in README.md and ROLLINGSUM_GUIDE.md to use PowerShell syntax
- Changed line continuation from backslash (\) to backtick ()
- Updated environment variable syntax to PowerShell format ()
- Merged DESIGN_ROLLINGSUM.md into ROLLINGSUM_GUIDE.md for comprehensive documentation
- Combined user guide with technical design details in single document
- Added table of contents and improved organization
2025-11-14 14:58:39 +02:00
yair
d0467aaf65 converted cli to pwsh 2025-11-14 14:55:05 +02:00
yair
44083222ee refactor: Output analysis results to results/debug directory
- Update analyze_sma.py to save files to results/debug/
- Add timestamp to archived CSV and plot files
- Update .gitignore to exclude results/ directory
- Update ROLLINGSUM_GUIDE.md with new output locations
2025-11-14 14:34:58 +02:00
yair
c783de425a feat: Add CSV logging and analysis tools for rollingsum plugin
- Add csv-file property to log frame statistics
- Create analyze_sma.py for automated CSV analysis with visualizations
- Add comprehensive ROLLINGSUM_GUIDE.md documentation
- Include debugging guide and threshold recommendations
- Uses uv for Python dependency management
2025-11-14 14:21:40 +02:00
yair
ab242739f9 fixed exposure missing 2025-11-14 12:33:04 +02:00
yair
32a0674b6c Unify build process with PowerShell script and update documentation
- Created build.ps1 to merge batch files with auto-copy to GST_PLUGIN_PATH
- Updated README.md to focus on IDS uEye and rollingsum plugins only
- Removed outdated batch files (build_idsueye_only.bat, build_idsueye_and_rollingsum.bat)
- Removed unused build files (set_paths_and_run_cmake.bat, CMakeLists_idsueye_only.txt)
- Updated .gitignore for build artifacts and plugin directory
2025-11-14 11:30:10 +02:00
yair
69dcea025e Add rollingsum filter for frame analysis based on column mean deviation
- Implements GStreamer element that analyzes pixel columns
- Drops frames when column mean deviates from rolling baseline
- Configurable window size, column index, stride, and threshold
- Includes design documentation and build script
- Tested successfully with IDS uEye camera source
2025-11-14 03:44:54 +02:00
yair
15871ea9fb
Update msbuild.yml 2023-04-26 22:52:23 +03:00
yair
b953478223
Update msbuild.yml 2023-04-26 22:51:04 +03:00
yair
df05002010
Update msbuild.yml 2023-04-26 22:50:15 +03:00
yair
6f48029c63
Merge branch 'joshdoe:master' into master 2023-04-26 22:45:27 +03:00
Joshua M. Doe
8a5478b344 niimaqdxsrc: show more verbose errors to applications 2022-02-25 10:55:00 -05:00
Joshua M. Doe
2beabedaa2 idsueyesrc: fix CMake build with default path
Before, Pleora would only be found if Pleora_DIR was specified
2022-02-25 10:55:00 -05:00
Joshua M. Doe
4836d595ce idsueyesrc: properly close camera handle if there's an error during opening and configuring 2022-02-25 10:55:00 -05:00
Joshua M. Doe
619ce5f132 niimaqdxsrc: add some non standard pixel format names 2022-02-25 10:55:00 -05:00
Joshua M. Doe
fec3ce5308 kayasrc: sync clock every second and use better clock
g_get_real_time() on Windows sometimes gives millisecond resolution.
Also grabbing framegrabber timestamp takes a non-insignificant amount of time,
so do it every second.
2022-02-25 10:55:00 -05:00
Joshua M. Doe
ac4a7b29e3 gentlsrc: add device-user-id property
This will search across all interfaces.
2022-02-25 10:55:00 -05:00
Joshua M. Doe
f3020dbf82 matroxsrc: show MIL error when failing to allocate digitizer 2022-02-25 10:55:00 -05:00
Joshua M. Doe
1bab9b907b gentlsrc: fix bug where two devices wouldn't be found on the same interface 2022-02-25 10:55:00 -05:00
Joshua M. Doe
260c09b1be gentlsrc: only send valid image data in case payload size has padding 2022-02-25 10:55:00 -05:00
Joshua M. Doe
ddae5b5105 gentlsrc: add Mono16, BayerGR16, BayerRG16 2022-02-25 10:55:00 -05:00
Joshua M. Doe
6c5cbad0ad gentlsrc: add support for FLIR Spinnaker cameras
This also required changing how we read values, as FLIR uses little
endian. Timestamps are handled differently as well.

We're even more overdue for moving to properly parse the XML, just a
matter of if we'll use the GenApi reference implementation or something
else like Aravis.
2022-02-25 10:55:00 -05:00
Joshua M. Doe
ddf2f6857e gentlsrc: check first for timestamp in nanoseconds
Then fallback to timestamp in ticks if needed.
2022-02-25 10:54:59 -05:00
Thor Tomasarson
6f84e34a1f pylonsrc: reduce repeated parameter writes 2022-02-25 10:14:28 -05:00
Thor Tomasarson
c64f9dda31 pylonsrc: the testimagesource should only be set if explicitly configured 2022-02-25 10:14:28 -05:00
Thor Tomasarson
ee440aa927 pylonsrc: add in the testimagesource parameter to allow for custom image source 2022-02-25 10:14:28 -05:00
Thor Tomasarson
8900eeb73c pylonsrc: the emulator does not have a DeviceSerialNumber 2022-02-25 10:14:28 -05:00
Thor Tomasarson
07f8711774 pylonsrc: log error codes as hexadecimal for clarity 2022-02-25 10:14:28 -05:00