mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-19 07:02:16 +08:00
c48c8b93dd
**Stack 3/5** — base #4124. Part of the #4096 split; see #4096 for the overall picture. > Review after #4123 and #4124. ## What this is The OPC 10000-210 Relative Spatial Location and OPC 10000-211 Global Positioning companion models, with their server and client libraries, plus the ISA-95 migration onto the shared geolocation seam. ## Why it is one change A deployment writes **one** provider implementation and both OPC 10000-211 and OPC 10030 are served from it. The specifications disagree on representation, not on content: - GPOS publishes the structured `GlobalLocationDataType` and validates the EPSG code against the configured CRS. - ISA-95 publishes the same sample as the `String` array that OPC 10030 §8.3.2.2 requires. Splitting them would mean two provider interfaces for one physical sensor, which is exactly what this avoids. The seam itself lives in `Opc.Ua.Server` and landed in 1/5. ## Contents - `Opc.Ua.Positioning`, `.Server` and `.Client`. - `Opc.Ua.ISA95.Server` moves onto `IGeoLocationProvider`; the three ISA-95-specific provider files are removed because the shared seam and its in-memory implementation replace them. - **Fixes a conformance gap**: the ISA-95 binder wrote a scalar where the type declares `ValueRank` OneOrMoreDimensions. It now writes `String[]`. - **Fixes a liveness bug**: a provider that cannot push is polled at the Variable's `MinimumSamplingInterval` rather than installed once, so a non-pushing provider no longer serves its start-up sample with `Good` status forever. - `samples/MinimalIsa95Server`. ## Validation `dotnet build UA.slnx` — 0 errors. | Suite | Result | | --- | --- | | Opc.Ua.Positioning.Tests | 69 / 0 | | Opc.Ua.ISA95.Tests | 136 / 0 | | Opc.Ua.Di.Tests | 304 / 0 | --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8cbb8cd0-f0cb-4ab0-bea2-6202fbf69485
35 lines
994 B
Plaintext
35 lines
994 B
Plaintext
# Default behavior: if Git thinks a file is text (as opposed to binary), it
|
|
# will normalize line endings to LF in the repository, but convert to your
|
|
# platform's native line endings on checkout (e.g., CRLF for Windows).
|
|
* text=auto
|
|
|
|
# Explicitly declare text files you want to always be normalized and converted
|
|
# to native line endings on checkout. E.g.,
|
|
# *.txt text
|
|
|
|
# Declare files that will always have CRLF line endings on checkout. E.g.,
|
|
#*.slnx text eol=crlf
|
|
|
|
# Declare files that will always have LF line endings on checkout. E.g.,
|
|
*.sh text eol=lf
|
|
*.json text eol=lf
|
|
|
|
# Denote all files that should not have line endings normalized, should not be
|
|
# merged, and should not show in a textual diff.
|
|
*.docm binary
|
|
*.docx binary
|
|
*.ico binary
|
|
*.lib binary
|
|
*.png binary
|
|
*.pptx binary
|
|
*.snk binary
|
|
*.vsdx binary
|
|
*.xps binary
|
|
|
|
# OPC UA
|
|
*.uanodes binary
|
|
|
|
# Preserve official NodeSet artifacts byte-for-byte.
|
|
src/Opc.Ua.Positioning/Model/*.csv binary
|
|
src/Opc.Ua.Positioning/Model/*.xml binary
|