Skip to content

Complete classic S7 management requests and PLC driven download - #904

Merged
gijzelaerr merged 4 commits into
masterfrom
fix/classic-s7-management-download
Sep 30, 2026
Merged

gijzelaerr merged 4 commits into
masterfrom
fix/classic-s7-management-download

Conversation

@gijzelaerr

@gijzelaerr gijzelaerr commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Match classic S7 wire vectors for list-blocks-of-type, set clock, get block info, request download, password entry, and download responses.
  • Replace the client driven download flow with the PLC driven request/response sequence in both synchronous and asynchronous clients.
  • Update the Python server emulator to request bounded fragments, validate references, lengths, markers, continuation flags, and final acknowledgement, then commit the DB only after the complete transfer. Decode and validate the canonical 10-byte set-clock payload.
  • Add golden packets, malformed response cases, a 40-example size property test, and sync/async 600-byte emulator transfers.

This is stacked on #903 because its response and upload validation is required. The matching Lean corpus runner update is lean-s7 #10.

Validation

  • pytest -q: 1,417 passed, 52 skipped, 5 subtests passed.
  • mypy snap7 s7 tests example: passed.
  • uv run pre-commit run --all-files: passed.
  • Lean S7 conformance corpus: 48/48 cases passed.
  • Lean integration suite against the pinned python-snap7 3.0.0 emulator: passed.

@gijzelaerr
gijzelaerr force-pushed the fix/classic-s7-management-download branch from ce95fbb to 912d623 Compare September 30, 2026 12:01
@gijzelaerr
gijzelaerr changed the base branch from fix/classic-s7-response-validation to master September 30, 2026 12:01
@gijzelaerr gijzelaerr closed this Sep 30, 2026
@gijzelaerr gijzelaerr reopened this Sep 30, 2026
@gijzelaerr
gijzelaerr merged commit 67bf8d7 into master Sep 30, 2026
17 checks passed
@gijzelaerr
gijzelaerr deleted the fix/classic-s7-management-download branch September 30, 2026 12:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant