Skip to content

feat(s7commplus): add typed symbolic tag API - #886

Open
gijzelaerr wants to merge 2 commits into
masterfrom
feat/837-symbolic-tag-catalog
Open

feat(s7commplus): add typed symbolic tag API#886
gijzelaerr wants to merge 2 commits into
masterfrom
feat/837-symbolic-tag-catalog

Conversation

@gijzelaerr

Copy link
Copy Markdown
Owner

Closes #837

Adds a public typed symbolic catalog and name-based sync/async APIs:

  • preserve access path, software/wire datatype, SymbolCRC, array dimensions, string length, and optimized/classic offsets from browse metadata
  • add resolve_tag, read_tag(s), and write_tag(s) with cached catalog lifecycle
  • encode writes with the resolved PValue datatype instead of BLOB
  • return per-item success/error results for batch operations
  • refresh and safely retry failed reads once only when a fresh browse confirms the SymbolCRC changed
  • never retry writes after a potentially ambiguous transport failure
  • retain all existing low-level symbolic methods

Validation:

  • uv run pre-commit run --all-files
  • uv run pytest -q --tb=short (2085 passed, 82 skipped)
  • uv build --quiet

@gijzelaerr

Copy link
Copy Markdown
Owner Author

@NiklasReisser Could you give the public typed-symbolic-tag API here, plus the stacked subscription lifecycle in #891, a focused code/API review? The main questions are whether the public types and error behavior are coherent and whether the subscription lifecycle has a predictable ownership/cleanup model. Real-PLC validation is being coordinated separately.

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.

Add a typed symbolic tag catalog and read_tag/write_tag API

1 participant