mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-18 22:55:08 +08:00
87012a147f
# Description - Add opt-in bounded browsing and strict reads with original source, status, timestamp, and structured-value evidence. Preserve the existing tolerant constructors and convenience projections, and wire options through session extensions, factories, and hosting registration. - Add selected-result streaming downloads with byte/request limits and independent cleanup, using `TemporaryFileTransferClient.CopyToAsync` from the client/server predecessor. Retain the detailed transfer regressions in the Machinery test layer. - Expose genuinely null unpublished result slots, carry the two Machinery sample updates, and include the complete Machinery guide and package README changes. ## Related Issues - Related tracking issue: #4461; this extraction does not close it. - Frozen source PR: #4462; this extraction does not close or modify it. - Immediate predecessor: #4803 (`marcschier-extract-amb-changes`). The earlier dependencies are client/server #4802 and core/types #4801. ## 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.
MachineryClient
A console client for any OPC 40001 server. It starts at the Machines folder,
so it needs no NodeIds configured and works against a server it has never seen.
dotnet run --project samples/Machinery/MachineryClient -- --insecure
| Option | Meaning |
|---|---|
--url <endpoint> |
The endpoint to connect to (default opc.tcp://localhost:62546/MachineryServer) |
--insecure |
Accept any server certificate. Demo only. |
--seconds <n> |
How long to stream state transitions (default 12; 0 skips) |
--no-download |
Skip the OPC 40001-101 result download |
What it does
- Enumerates the machines below the
Machinesfolder. - Reads each machine's OPC 40001-1 identification and its components.
- Reads
MachineryItemStateandMachineryOperationMode. - Asks
ResultManagement.GetLatestResultfor the newest result, downloads its payload through the OPC 40001-101 transfer path, and releases the result handle it was given. - Streams
MachineryItemStatetransitions for a while.
Every step degrades rather than failing when the server publishes less: a
machine without a Monitoring add-in simply reports no state.