Repository navigation
feat(seeder): serve the demo writer's values over OPC UA - #144
Merged
Merged
Conversation
The OPC UA live edge needs a server shaped like Simple-Scada's for the integration tests and the demo stand, and a real SCADA on a developer machine already holds 49875. The seeder's --follow run now hosts DemoScadaServer on the 2.0.1 OPC Foundation stack. It serves every pen under namespace http://simple-scada.com/UA, folder 5E4D0C1A0Broot_2 and group folders from _3, node ns=3;s=5E4D0C1A0B<id>, None + Anonymous with the stock token policy. Each value is the lattice change the archive writer produces, stamped in true UTC; the first notification after a start carries the start instant. --opc-port is required for a follow run, and --archive-lag holds the archive inserts back by up to 86400 s so the stand shows a span the archive has not reached. The AppHost passes --opc-port 55875. The central Microsoft.Extensions.* pins move to 10.0.12, which the stack requires. The server keeps its certificate under %TEMP%\SemiPlot\OpcDemoServer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The OPC UA live edge (#116) needs an OPC UA server shaped like Simple-Scada's, for the integration
tests and for the demo stand. A developer machine runs the real SCADA on 49875, so the stand cannot
use that port.
What changed
DemoScadaServerandDemoScadaNodeManagerinSemiPlot.Tools.ArchiveSeeder, on theOPCFoundation.NetStandard.Opc.Ua.Server2.0.1 stack. The address space follows the measuredSimple-Scada shape:
http://simple-scada.com/UAat index 3;5E4D0C1A0Broot_2, then group folders from_3;ns=3;s=5E4D0C1A0B<id>;None+ Anonymous with the stock token policy.--followrun hosts the server. Each served value is the lattice change the archive writerproduces (
LiveTailGenerator.ChangesAt, pinned bySharedLatticeTests), stamped in true UTC. Thefirst notification after a start carries the start instant.
--opc-portis required for a follow run.--archive-lag(0 to 86400 s) holds the archive insertsback.
FollowEdgekeeps the write edge monotonic, and a graceful stop writes the held-back span.SemiPlot.AppHostpasses--opc-port 55875.Microsoft.Extensions.*pins raised to10.0.12,
Logging.Consoleadded.DemoScadaCollectioninSemiPlot.Tests.Integrationruns the server in process on a freeport that is never 4840 or 49875, under Asia/Tokyo.
FollowEdgeTestsand the seeder command testsare unit tests.
bench.md,testing-strategy.md,docs/architecture/README.md,AGENTS.md.Measured differences from the real server, recorded in
bench.md:#Noneon the anonymous token only at theNoneendpoint; Simple-Scada putsit on all seven endpoints.
Error.How it was verified
dotnet build SemiPlot.slnx: 0 errors, only the AppHost's twoNU1902.dotnet format --verify-no-changes: exit 0.dotnet terseover the 24 touched.csfiles: exit 0.SemiPlot.Tests.Unit: 2326/2326.SemiPlot.Tests.Integration: 216/216. TheDemoScadafilterpassed 16/16 on every rerun.
git grep -n "Opc.Ua"over UI, Core andSemiPlot.DataSource.Postgresprints nothing.--opc-port,--opc-port 0, and a seeding run with--archive-lag.--archive-lag 60). The automated suites stand in for them in this unattended roadmap run.Per-task commits before collapse