mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-17 05:11:13 +08:00
fd7c88c136
# Description Adds a one-command federated OpenUSD site demo and fixes the composition path that previously produced an empty, overlapping, or poorly framed viewport. - Add `samples/OpenUsd/SiteCompositionServer/run-site-composition-demo.ps1` to build and start the pump, generator, and site servers, wait for every endpoint, publish the connector and viewer side by side, launch the federated viewport, and clean up child processes and artifacts. - Include every fetched root layer in the generated stage and prepare structural component composition before the retained renderer starts. - Continue persisting structural changes while forwarding value-only updates into the live viewport, avoiding renderer topology invalidation. - Fold structured translation, rotation, and scale values into `xformOp:transform` matrices in `UsdFileSink`, including time samples, so multiple pump and generator instances remain distinct when the stage is reopened. - Preserve the latest prior transform components when independently sampled translation, rotation, or scale history adds a new matrix sample. - Reframe the site camera to show all three default pumps and both generator sets. - Move the detailed root sample catalog to `docs/samples.md` and replace it with a concise link to the platform-independent samples and companion sample repository. Validation performed: - Ran the demo script through both its existing-viewer-bundle path and its default side-by-side publish path on isolated ports. - Ran the focused OpenUSD connector and file-sink tests: 30 passed. - Ran the full `Opc.Ua.OpenUsd.Tests` project: 919 passed; the remaining local failure is the existing culture-sensitive decimal formatting assertion on this host's `en-DE` culture. - Ran the focused review-feedback file-sink tests: 19 passed. ## Related Issues - Fixes #4392 ## Checklist - [ ] 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. - [x] 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. - [x] I have addressed **all** PR feedback received. --------- Copilot-Session: 797ea461-49e2-4844-b6a4-54565a9469bd
3.9 KiB
3.9 KiB
Sample applications
This repository contains a large collection of platform-independent samples
that demonstrate the stack's client, server, PubSub, companion-model, and
developer-tooling APIs. Each sample has its own README.md with build and run
instructions.
Reference applications
- Console Reference Server — the certified reference server with Quickstarts, CTT, and Mono configurations. It also ships as a Docker container.
- Console Reference Client — cross-platform reference client demonstrating sessions, subscriptions, browsing, and method calls.
- Console LDS Server — a standalone
Local Discovery Server built on
Opc.Ua.Lds.Server.
PubSub samples
- Console Reference PubSub Client —
one executable with
publisher,subscriber, andexternalexternal-server-adapter modes across the supported transport profiles.
Minimal and companion-model samples
- Minimal Calc Server — minimal server built on the source-generated NodeManager pipeline and Calc model.
- Minimal Boiler Server — minimal Boiler-model server with the fluent state-machine builder; Native-AOT publishable.
- Pump Device Integration Server —
Device Integration Part 100 server using
Opc.Ua.Di.Server's fluent builder. - Minimal Robot Server — OPC 40010 Robotics with independently configurable RSL/GPOS motion and live OpenUSD transforms.
- Intent Enabled Robot — collaborative arm exposing task-level Robot Intent motion verbs, Part 10 program lifecycle, missions, command authority, and safety-aware refusal.
- Intent Viewer Client — click a target in an OpenUSD viewport and watch the arm execute the resulting intent; it also runs headless.
- Bin Picking Cell — Robot Intent, Vision, an eye-in-hand camera, and an in-address-space OpenUSD scene in one reference cell.
- Bin Picking Client — closes the Vision-to-Robot-Intent loop, with optional MCP hosting and an OpenUSD viewport.
- Visual Inspection Cell — hosts Vision, AI Model Management, ISA-95 Job Control V2, and an operator dialog for deterministic machined-bracket inspection.
- Visual Inspection Agent —
drives the inspection loop with typed clients, routes inference through
deployment
Invoke, applies recipe verdicts, schedules allowlisted jobs, and records operator ground truth. - AI Model Management sample —
ModelManagementServerpublishes the draft AI Model Management catalogue and routes inference;ModelManagementClientdiscovers deployments and exercises the Methods. - Minimal ISA-95 Server — hosts the OPC-10030 ISA-95 Common Model with OPC-10031-4 Job Control V1 and V2, using the typed common-model builder and in-memory Job Control provider.
OpenUSD site composition
- Generator Server — simulated generating sets with datasheet-driven behavior and independent OpenUSD twins.
- Site Composition Server — federates the pump and generator servers into one live OpenUSD site.
Run the complete site demo from the repository root:
pwsh samples/OpenUsd/SiteCompositionServer/run-site-composition-demo.ps1