Files
Marc Schier 15d0ce7bd5 Implement OPC UA Part 10 Programs (#4789)
# Description

Implement OPC UA Part 10 Programs across `Opc.Ua.Core`/`Core.Types`,
`Opc.Ua.Server`, and `Opc.Ua.Client`, reusing the existing
state-machine, source-generation, node-management, auditing, and
streaming-subscription infrastructure.

- Add asynchronous provider-backed execution, standard controls,
internal/autonomous transitions, generation checks, and nested-state
activation/resumption.
- Add checked creation/adoption, vendor Create adapters, deletion,
recycling and instance limits, auto-delete, DI, and direct-construction
paths.
- Maintain ProgramDiagnostic2 and retained final results; publish
captured intermediate results and concrete transition/audit events with
access controls.
- Add generated SDK models/proxies, typed client discovery and reads,
event streams, and subscribe-before-call readiness handling.
- Add unit, connected client/server, generated Annex A-style model, and
NativeAOT coverage. Document usage and migration in `docs/Programs.md`
and related guides.

### Compatibility and design decisions

The linked Part 10 document is v1.05.00; namespace-zero definitions
remain aligned with 1.05.07. Documentation distinguishes normative
requirements from conflicting specification text and SDK conventions.

- Correct state numbers to Halted=11, Ready=12, Running=13,
Suspended=14. Generated subtypes retain inherited namespace-zero
state/transition identifiers.
- Managed Reset is Halted-to-Ready only. Preserve the existing low-level
Reset-from-Suspended behavior for compatibility.
- Preserve UInt32 limit types; use `UInt32.MaxValue` as a documented SDK
unlimited convention. RecycleCount overflow reports BadOutOfRange
without stopping unlimited execution.
- In-memory default with injectable providers. Durable recovery,
distributed execution/failover, and a production Annex A download engine
are excluded.

## Checklist

_Put an `x` in the boxes that apply. You can complete these step by step
after opening the PR._

- [ ] I have signed the
[CLA](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf)
and read the
[CONTRIBUTING](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/CONTRIBUTING.md)
doc.
- [ ] I have added tests that prove my fix is effective or that my
feature works and increased code coverage.
- [x] I have added all necessary documentation.
- [x] I have verified that my changes do not introduce (new) build or
analyzer warnings.
- [ ] I ran **all** tests locally using the **UA.slnx** solution against
at least .net **framework** and .net **10**, and all passed.
- [ ] I fixed **all** failing and flaky tests in the CI pipelines and
**all** CodeQL warnings.
- [ ] I have addressed **all** PR feedback received.

Tests and focused coverage evidence are above; the combined
tests/coverage checkbox remains open because a whole-repository coverage
increase has not been established. CLA status, CI/CodeQL results,
tracking-issue approval, and PR feedback are not asserted.
2026-10-15 09:19:25 +02:00

34 lines
1.7 KiB
CSV

DomainDownloadType,1001,ObjectType
TransferStateMachineType,1002,ObjectType
NamedProgramType,1003,ObjectType
NamedProgramType_Create,6001,Method
NamedProgramType_Create_InputArguments,6002,Variable
NamedProgramType_Create_OutputArguments,6003,Variable
DomainDownloadType_Start,2001,Method
DomainDownloadType_Start_InputArguments,2002,Variable
DomainDownloadType_Suspend,2003,Method
DomainDownloadType_Resume,2004,Method
DomainDownloadType_Halt,2005,Method
DomainDownloadType_ProgramDiagnostic,2100,Variable
DomainDownloadType_TransferStateMachine,2200,Object
DomainDownloadType_Running,2300,Object
DomainDownloadType_FinalResultData,2400,Object
DomainDownloadType_FinalResultData_BytesTransferred,2401,Variable
DomainDownloadType_FinalResultData_Completed,2402,Variable
DomainDownloadType_FinalResultData_ErrorCode,2403,Variable
TransferStateMachineType_Opening,3001,Object
TransferStateMachineType_Opening_StateNumber,3011,Variable
TransferStateMachineType_Sending,3002,Object
TransferStateMachineType_Sending_StateNumber,3012,Variable
TransferStateMachineType_Closing,3003,Object
TransferStateMachineType_Closing_StateNumber,3013,Variable
TransferStateMachineType_OpeningToSending,4001,Object
TransferStateMachineType_OpeningToSending_TransitionNumber,4011,Variable
TransferStateMachineType_SendingToSending,4002,Object
TransferStateMachineType_SendingToSending_TransitionNumber,4012,Variable
TransferStateMachineType_SendingToClosing,4003,Object
TransferStateMachineType_SendingToClosing_TransitionNumber,4013,Variable
TransferStateMachineType_LastTransition,5001,Variable
TransferStateMachineType_LastTransition_Number,5002,Variable
TransferStateMachineType_LastTransition_TransitionTime,5003,Variable