Api improvements for industrial cameras#135
Open
amingozzi wants to merge 9 commits into
Open
Conversation
…r management - Updated image allocation to use computed raw image size instead of height and width. - Introduced logic to skip processing until the next frame boundary to prevent premature frame handling. - Enhanced final packet handling to correctly account for exact-multiple payload sizes. - Improved frame loss reporting with detailed messages on missing or extra packets. - Ensured the correct buffer is published to the FrameReady event to avoid data corruption. Update GigeVision.OpenCV project versioning for local development - Changed version from 1.1 to 1.1-local for local builds. - Updated GigeVision.Core package reference to version 2.7.3-local for compatibility with local changes. Enhance README with usage examples and API details - Expanded basic usage section with clear examples for discovering cameras, reading and writing registers, and streaming. - Added details on the unified parameter API for better clarity on camera control. - Included examples for setting camera parameters and receiving frames. Create changes.md to document implemented fixes and improvements - Summarized key changes made during the GigeVision.Core audit, including improvements to GVCP control, stream reception, pixel format handling, and camera control APIs. Add examples.md for minimal working examples - Provided a collection of small examples demonstrating the current APIs, including opening a camera, reading and setting parameters, and receiving frames. Document improvements in improvements.md - Detailed findings from the GigeVision.Core audit, highlighting critical issues, suggested improvements, and additional cleanup items.
- Introduced FrameReadyWithInfo event to provide per-frame metadata (timestamp and frame ID). - Added GvspFrameInfo struct to encapsulate frame metadata. - Implemented PixelFormatRegistry for vendor-specific pixel formats. - Enhanced StreamReceiverBase to handle chunk data mode and extended frame sizes. - Documented chunk data mode implementation in chunkMode.md. Co-authored-by: Copilot <copilot@github.com>
…xelFormat enum to uint Co-authored-by: Copilot <copilot@github.com>
…ision into api_improvements
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR improves the reliability and correctness of the core GigE Vision stack across GVCP control, GVSP streaming, and GenICam integration.
Fundamental Changes
Notes
Most of the implementation work in this PR was done with AI-assisted coding. The current result is working as-is, but additional review, cleanup, and refinement may still improve maintainability and edge-case handling.
Impact
Validation
dotnet build GigeVision.Core.csproj -c DebugsucceededIf you want a slightly more polished phrasing for the AI note, use this instead:
Most of the changes in this PR were produced with AI assistance. The implementation is functional in its current state, but further refinement and manual review are recommended to improve robustness and maintainability.