Repository navigation
Fix the issues found in the review of the 2026 changes (1.4.0.0) - #6
Merged
Merged
Conversation
Review of v1.1.0.0 to v1.3.0.0 against the EDSDK 13.20.21 headers, API reference and samples. Camera and settings: - Exposure compensation is settable in M when ISO is Auto. - Aperture and shutter speed labels shared by a 1/2 and a 1/3 stop value resolve to the value the camera accepts; f/4.5 labels follow the other pairs. - GET/POST /settings include exposureCompensation; POST refuses unknown fields. - POST /flash waits for a capture in progress. - A capture cancelled by the client marks its late file as stale. API and hosting: - Operator settings go in appsettings.Local.json, never shipped, so automatic updates no longer overwrite them. - Canon:CaptureFileTypes defaults to empty: the binder appended the configured types to ["jpg"]. - /videostream ends when the application stops instead of delaying the shutdown by 30 s. - /liveview no longer serves stale frames. - Content root and log file next to the executable; Logging:LogLevel applied to Serilog; Retry-After exposed through CORS; OpenAPI response metadata fixed; update exit handler simplified (the check runs before the server starts). Wrapper and tests: - Unused EDSDK declarations aligned with the headers (EdsWrite, EdsCreateFileStreamEx, EdsSetFramePoint, FocusShiftSetting, EdsManualWBData). - New Canon.API.Tests project (linked sources, runs on Linux), run by CI, release workflow and Dockerfile; ineffective or timing-dependent tests reworked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Review of v1.1.0.0 to v1.3.0.0 against the EDSDK 13.20.21 package (headers, API reference, samples), then fixes. Bumps the version to 1.4.0.0.
Review summary
EDSDK_64/Dllof the SDK. Every constant, signature and structure the application uses matches the headers.Fixes
Camera and settings
exposureCompensationadded toGET/POST /settings.POSTnow refuses unknown fields.POST /flashwaits for a capture in progress.API and hosting
appsettings.Local.jsonholds the operator settings. It is never shipped, so automatic updates stop resetting them.Canon:CaptureFileTypescould not exclude jpg: the configuration binder appended the configured types to the["jpg"]default./videostreamdelayed the shutdown by 30 s./liveviewcould serve stale frames.Logging:LogLevelis applied to Serilog.Retry-Afteris exposed through CORS.Wrapper and tests
Canon.API.Testsproject, run by CI, the release workflow and the Dockerfile.Testing
dotnet build CanonSDK.sln: no warnings.dotnet test CanonSDK.sln: 142 tests pass, run 3 times on Linux (.NET 10 SDK container).dotnet publish -r win-x64:appsettings.Local.jsonis not published.docs/openapi.jsonwas edited by hand, because it cannot be regenerated on Linux.Upgrade note
This update resets
appsettings.jsonone last time: move customized settings toappsettings.Local.json.🤖 Generated with Claude Code