Skip to content

bump AXSharp to 0.47.0-alpha.495 + various minor fixies#1169

Merged
PTKu merged 7 commits into
devfrom
deps-update-0-47-0-alpha-495
Jun 3, 2026
Merged

bump AXSharp to 0.47.0-alpha.495 + various minor fixies#1169
PTKu merged 7 commits into
devfrom
deps-update-0-47-0-alpha-495

Conversation

@PTKu
Copy link
Copy Markdown
Contributor

@PTKu PTKu commented Jun 3, 2026

Summary

  • Bump AXSharp to 0.47.0-alpha.495 and regenerate AXSharp.config.json across all ctrl libraries (plus dotnet-tools.json / Directory.Packages.props / GitVersion.yml).
  • AxoRemoteTask (.NET twin): the start/done handshake batch read/write access priority is now configurable (default eAccessPriority.Normal), replacing the previously hardcoded High — a behavioral change for upgraders.
  • AxoTaskView (Blazor): reworked disabled-state rendering so the activity indicator keeps reflecting task state while disabled.

Changes from CHANGELOG

Workspace

[CORE] AxoRemoteTask start/done handshake priority is now configurable (default Normal)

Note: API addition + behavioral change in src/core/src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs (.NET twin only). No PLC source or PLC-side API change. Follow-up to the High-priority batching entry below (commit 2a70cb744).

  • feat: new HandshakeReadAccessPriority and HandshakeWriteAccessPriority properties (default eAccessPriority.Normal) drive the access priority of the batched start/done read (ReadBatchAsync of StartSignature + DoneSignature) and the Done-ack write (WriteBatchAsync) in ExecuteAsync, replacing the previously hardcoded eAccessPriority.High at both legs.
  • feat: all Initialize(...) / InitializeExclusively(...) overloads gain two optional args — handshakeReadAccessPriority and handshakeWriteAccessPriority (both default eAccessPriority.Normal) — that seed those properties. Existing call sites bind unchanged via the defaults; the properties can also be set directly any time.
  • test: added AxoRemoteTaskHandshakePriorityTests (4 tests) in src/core/tests/AXOpen.Core.Tests. A recording DummyConnector subclass captures the eAccessPriority passed to Read/WriteBatchAsync; tests cover the read leg, the write leg (distinct value to prove the write property specifically), the default-Normal behavior (asserting High is no longer used), and a property-override-after-Initialize case.
  • docs: src/core/docs/CHANGELOG.md (0.62.3 — New features + Breaking changes) and AxoRemoteTask.md note updated to describe the configurable, Normal-default handshake.

Impact:

  • The remote-task start/done handshake now defaults to eAccessPriority.Normal instead of High. Callers that need the handshake serviced ahead of lower-priority traffic must opt in — pass eAccessPriority.High to Initialize(...) or set HandshakeReadAccessPriority / HandshakeWriteAccessPriority.

Risks/Review:

  • Behavioral change for upgraders: any code relying on the implicit High handshake from 2a70cb744 will now contend at Normal until it sets the priority explicitly. In the built-in connectors High and Normal share the same batch chunking; only the queue/ordering priority relative to other connector traffic differs.

[CORE] AxoRemoteTask batches start/done handshake at High priority

Note: Performance change in src/core/src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs (.NET twin only). No PLC source or public-API change. Commit 2a70cb744.

  • perf: ExecuteAsync now reads StartSignature + DoneSignature with a single Connector.ReadBatchAsync(...) and writes the completed DoneSignature with Connector.WriteBatchAsync(...) (via DoneSignature.Cyclic), replacing the per-signal GetAsync/SetAsync. Collapses the remote-task start/done handshake into single batched connector round-trips.
  • docs: src/core/docs/CHANGELOG.md bumped; AxoRemoteTask.md gains a note describing the batched handshake.

Impact:

  • Fewer connector round-trips per AxoRemoteTask invocation.

Commits

feat

  • 03c6ad9ea feat(core): make AxoRemoteTask handshake priority configurable

perf

  • 2a70cb744 perf(core): batch AxoRemoteTask signal r/w at High priority

docs

  • 885d11aa3 docs(core): note AxoRemoteTask batched High-priority handshake

build

  • 15858c512 build(deps): bump AXSharp to 0.47.0-alpha.495

Other

  • bd9c48f2b eat(core): rework AxoTaskView disabled-state rendering
  • 8447e532f synch with remote
  • 8749575cd Update GitVersion.yml

Diff stat

 .config/dotnet-tools.json                          |   6 +-
 CHANGELOG.md                                       |  35 ++++
 Directory.Packages.props                           |  10 +-
 GitVersion.yml                                     |   2 +-
 src/abstractions/ctrl/AXSharp.config.json          |   2 +-
 src/components.*/ctrl/AXSharp.config.json (×20)     |   2 +-  each
 src/core/ctrl/AXSharp.config.json                  |   2 +-
 src/core/ctrl/src/AxoObject/AxoObject.st           |   3 +-
 src/core/docs/AxoRemoteTask.md                     |   3 +
 src/core/docs/AxoTask.md                           |  13 +-
 src/core/docs/CHANGELOG.md                         |  12 ++
 .../AXOpen.Core.Blazor/AxoTask/AxoTaskView.razor   |  30 +--
 .../src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs | 231 ++++++++++++------
 .../AxoRemoteTask/AxoRemoteTaskTests.cs            | 151 +++++++++++-
 src/data|inspectors|io|probers|simatic1500|timers|utils/ctrl/AXSharp.config.json | 2 +- each
 src/showcase/app/AXSharp.config.json               |   2 +-
 src/showcase/app/.../plc_line.SecurityConfiguration.json | 6 +-
 src/showcase/app/.../Pages/core/AxoTask.razor      |  32 +-
 src/showcase/app/.../Search/ShowcasePageRegistry.cs|   3 +-
 src/showcase/app/src/ShowcaseContext.st            |   4 +
 src/showcase/app/.../AxoTaskDisabledExample.st     |  49 +++++
 src/styling/src/wwwroot/css/momentum.css           |   2 +-
 48 files changed, 498 insertions(+), 156 deletions(-)

Test plan

  • dotnet ixc regenerates twins from the bumped AXSharp.config.json without errors
  • dotnet build from solution root succeeds
  • apax build succeeds for the affected ctrl libraries (deps bump + *.st changes)
  • dotnet test src/core/tests/AXOpen.Core.Tests is green (incl. the 4 new AxoRemoteTaskHandshakePriorityTests)
  • Launch the showcase Blazor app, exercise the AxoTask page, and confirm no console/runtime errors (AxoTaskView disabled-state rendering)
  • CHANGELOG entries cover all branch commits and flag the HighNormal breaking change

Generated by /pr-description-update. Last regenerated: 2026-06-03.

PTKu added 5 commits June 3, 2026 10:44
Update ixc/ixd/ixr tools and AXSharp.* packages from 0.47.0-alpha.489 to 0.47.0-alpha.495.
Collapse the per-call StartSignature/DoneSignature GetAsync and the
DoneSignature SetAsync into single ReadBatchAsync/WriteBatchAsync calls
on the connector, both at eAccessPriority.High, to cut connector
round-trips on the remote-task start/done handshake. Done signal is now
written via DoneSignature.Cyclic + WriteBatchAsync.
Document the batched start/done handshake added in 2a70cb7:
ExecuteAsync reads StartSignature + DoneSignature via one
ReadBatchAsync and writes completion via WriteBatchAsync, both at
eAccessPriority.High. PLC-side API and IsBusy/IsDone/HasError/
IsAborted semantics unchanged.

Bump next-version 0.61.1 -> 0.62.3 (GitVersion, core docs CHANGELOG).
Comment thread src/core/src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs Fixed
When IsDisabled, the activity indicator (state ring/circle) now stays
live instead of being overridden by the lock; the lock-closed icon
moved to the action-button area, hiding Reset/Resume. State still
announced via aria-label.

- showcase: add AxoTaskDisabledExample (always-Busy + idle tasks) and a
  display-only demo tile; wire into ShowcaseContext + search registry
- docs: update AxoTask.md affordances table + prose, CHANGELOG 0.62.3
@PTKu PTKu changed the title build(deps): bump AXSharp to 0.47.0-alpha.495 bump AXSharp to 0.47.0-alpha.495 + various minor fixies Jun 3, 2026
Start/done handshake batch read/write priority was hardcoded to
eAccessPriority.High. Expose it via new HandshakeReadAccessPriority /
HandshakeWriteAccessPriority properties and optional Initialize /
InitializeExclusively args, so callers tune handshake contention per
task.

BREAKING CHANGE: handshake default drops from High to Normal. Callers
relying on the High boost from 2a70cb7 must pass eAccessPriority.High
to Initialize(...) or set the properties. Built-in connectors share
batch chunking across High/Normal; only queue/ordering priority differs.
Comment thread src/core/src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs Dismissed
Comment thread src/core/src/AXOpen.Core/AxoRemoteTask/AxoRemoteTask.cs Dismissed
@PTKu PTKu merged commit 3764612 into dev Jun 3, 2026
3 checks passed
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