Files

1829 lines
52 KiB
JSON

[
{
"sdk": "1.5.378.0",
"process": 35798,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "passed"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"rawReferences": [
{
"nodeId": "ns=2;s=Matrix/dev/Scalar",
"browseName": "2:Matrix/dev/Scalar",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Vector",
"browseName": "2:Matrix/dev/Vector",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Alarm",
"browseName": "2:Alarm",
"nodeClass": "Object",
"typeDefinition": "i=10637",
"referenceType": "i=47",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"browseName": "2:Matrix/dev/UnsetTimestamp",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "i=61",
"browseName": "FolderType",
"nodeClass": "ObjectType",
"typeDefinition": "i=0",
"referenceType": "i=40",
"IsForward": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:18:50.5069120Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:18:50.5501200Z",
"serverTimestamp": "2026-11-10T17:18:50.5504940Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:18:51.0307070Z",
"serverTimestamp": "2026-11-10T17:18:51.0307070Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.242,
"p95": 0.2874,
"p99": 0.377,
"throughputOperationsPerSecond": 4045.176531503835
},
"scalar-write": {
"p50": 0.205,
"p95": 0.2538,
"p99": 0.2577,
"throughputOperationsPerSecond": 4893.133954435136
},
"array-read": {
"p50": 0.1648,
"p95": 0.2271,
"p99": 0.2526,
"throughputOperationsPerSecond": 5757.2512579593995
},
"array-write": {
"p50": 0.1967,
"p95": 0.2315,
"p99": 0.2373,
"throughputOperationsPerSecond": 5084.711290092947
}
},
"clientCpuMilliseconds": 53.338,
"clientAllocatedBytes": 1326176,
"clientAllocatedBytesPerOperation": 6630.88,
"clientWorkingSetBytes": 136003584,
"clientPrivateBytes": 0,
"clientThreads": 18,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2037,
"p95": 0.2401,
"p99": 0.2469,
"throughputOperationsPerSecond": 4871.632484045405
},
"scalar-write": {
"p50": 0.1556,
"p95": 0.1965,
"p99": 0.2119,
"throughputOperationsPerSecond": 6260.956674179815
},
"array-read": {
"p50": 0.1661,
"p95": 0.2139,
"p99": 0.2395,
"throughputOperationsPerSecond": 5811.588307084326
},
"array-write": {
"p50": 0.2132,
"p95": 0.2729,
"p99": 9.1337,
"throughputOperationsPerSecond": 2547.407248902067
}
},
"clientCpuMilliseconds": 47.557,
"clientAllocatedBytes": 1326480,
"clientAllocatedBytesPerOperation": 6632.4,
"clientWorkingSetBytes": 137641984,
"clientPrivateBytes": 0,
"clientThreads": 18,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.1481,
"p95": 0.1695,
"p99": 0.2183,
"throughputOperationsPerSecond": 6567.454323355181
},
"scalar-write": {
"p50": 0.158,
"p95": 0.205,
"p99": 0.2164,
"throughputOperationsPerSecond": 6207.941198380969
},
"array-read": {
"p50": 0.2134,
"p95": 0.2418,
"p99": 2.2267,
"throughputOperationsPerSecond": 3938.806699122434
},
"array-write": {
"p50": 0.2276,
"p95": 0.2652,
"p99": 0.2774,
"throughputOperationsPerSecond": 4332.004851845434
}
},
"clientCpuMilliseconds": 51.317,
"clientAllocatedBytes": 1297176,
"clientAllocatedBytesPerOperation": 6485.88,
"clientWorkingSetBytes": 139198464,
"clientPrivateBytes": 0,
"clientThreads": 18,
"clientHandles": 0,
"collections": [
1,
0,
0
]
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "baseline-client-to-baseline-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:55610/OtOpcUa",
"process": 35791,
"sdk": "1.5.378.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "passed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "1.5.378.0",
"process": 35821,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "passed"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"rawReferences": [
{
"nodeId": "ns=2;s=Matrix/dev/Scalar",
"browseName": "2:Matrix/dev/Scalar",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Vector",
"browseName": "2:Matrix/dev/Vector",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Alarm",
"browseName": "2:Alarm",
"nodeClass": "Object",
"typeDefinition": "i=10637",
"referenceType": "i=47",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"browseName": "2:Matrix/dev/UnsetTimestamp",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "i=61",
"browseName": "FolderType",
"nodeClass": "ObjectType",
"typeDefinition": "i=0",
"referenceType": "i=40",
"IsForward": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:18:54.7852690Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:18:54.8378960Z",
"serverTimestamp": "2026-11-10T17:18:54.8394590Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:18:57.2714180Z",
"serverTimestamp": "2026-11-10T17:18:57.2714180Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2533,
"p95": 0.3,
"p99": 0.426,
"throughputOperationsPerSecond": 3868.681475979357
},
"scalar-write": {
"p50": 0.2655,
"p95": 0.2867,
"p99": 0.356,
"throughputOperationsPerSecond": 3835.09108341323
},
"array-read": {
"p50": 0.2232,
"p95": 0.2506,
"p99": 0.2769,
"throughputOperationsPerSecond": 4446.736984400845
},
"array-write": {
"p50": 0.2108,
"p95": 0.2629,
"p99": 0.2857,
"throughputOperationsPerSecond": 4544.008724496749
}
},
"clientCpuMilliseconds": 54.573,
"clientAllocatedBytes": 1327336,
"clientAllocatedBytesPerOperation": 6636.68,
"clientWorkingSetBytes": 136511488,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2203,
"p95": 0.2413,
"p99": 0.2568,
"throughputOperationsPerSecond": 4530.17549899883
},
"scalar-write": {
"p50": 0.2312,
"p95": 0.2585,
"p99": 0.2899,
"throughputOperationsPerSecond": 4321.745293619376
},
"array-read": {
"p50": 0.1737,
"p95": 0.2116,
"p99": 0.2181,
"throughputOperationsPerSecond": 5682.722251267249
},
"array-write": {
"p50": 0.1794,
"p95": 0.206,
"p99": 0.2116,
"throughputOperationsPerSecond": 5497.64700708097
}
},
"clientCpuMilliseconds": 46.142,
"clientAllocatedBytes": 1334192,
"clientAllocatedBytesPerOperation": 6670.96,
"clientWorkingSetBytes": 138133504,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.229,
"p95": 0.3001,
"p99": 0.3524,
"throughputOperationsPerSecond": 4257.094447897421
},
"scalar-write": {
"p50": 0.2543,
"p95": 0.3046,
"p99": 3.1119,
"throughputOperationsPerSecond": 3212.7275414281203
},
"array-read": {
"p50": 0.2009,
"p95": 0.2322,
"p99": 0.2545,
"throughputOperationsPerSecond": 4990.717265885452
},
"array-write": {
"p50": 0.2312,
"p95": 0.262,
"p99": 0.2652,
"throughputOperationsPerSecond": 4318.609753148267
}
},
"clientCpuMilliseconds": 56.307,
"clientAllocatedBytes": 1277016,
"clientAllocatedBytesPerOperation": 6385.08,
"clientWorkingSetBytes": 139689984,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
1,
0,
0
]
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "1.5.378.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-baseline/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "baseline-client-to-candidate-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:55642/OtOpcUa",
"process": 35814,
"sdk": "2.0.1.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "passed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "2.0.1.0",
"process": 35842,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "passed"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"rawReferences": [
{
"nodeId": "ns=2;s=Matrix/dev/Scalar",
"browseName": "2:Matrix/dev/Scalar",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Vector",
"browseName": "2:Matrix/dev/Vector",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Alarm",
"browseName": "2:Alarm",
"nodeClass": "Object",
"typeDefinition": "i=10637",
"referenceType": "i=47",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"browseName": "2:Matrix/dev/UnsetTimestamp",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "i=61",
"browseName": "FolderType",
"nodeClass": "ObjectType",
"typeDefinition": "",
"referenceType": "i=40",
"IsForward": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:19:00.0739470Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:19:00.1294130Z",
"serverTimestamp": "2026-11-10T17:19:00.1298110Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:19:02.5684610Z",
"serverTimestamp": "2026-11-10T17:19:02.5684610Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2167,
"p95": 0.3023,
"p99": 0.3517,
"throughputOperationsPerSecond": 4467.836048288374
},
"scalar-write": {
"p50": 0.2267,
"p95": 0.3315,
"p99": 0.3405,
"throughputOperationsPerSecond": 4343.444872997671
},
"array-read": {
"p50": 0.195,
"p95": 0.2639,
"p99": 0.2978,
"throughputOperationsPerSecond": 4934.616333580064
},
"array-write": {
"p50": 0.1941,
"p95": 0.2321,
"p99": 0.3557,
"throughputOperationsPerSecond": 5030.02927477038
}
},
"clientCpuMilliseconds": 64.293,
"clientAllocatedBytes": 681928,
"clientAllocatedBytesPerOperation": 3409.64,
"clientWorkingSetBytes": 128696320,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.1735,
"p95": 0.2329,
"p99": 0.2756,
"throughputOperationsPerSecond": 5809.495038691237
},
"scalar-write": {
"p50": 0.2036,
"p95": 0.2893,
"p99": 9.6273,
"throughputOperationsPerSecond": 2501.0754624488522
},
"array-read": {
"p50": 0.1553,
"p95": 0.209,
"p99": 0.2232,
"throughputOperationsPerSecond": 6165.836334040348
},
"array-write": {
"p50": 0.1586,
"p95": 0.1733,
"p99": 0.1844,
"throughputOperationsPerSecond": 6403.524499884735
}
},
"clientCpuMilliseconds": 56.542,
"clientAllocatedBytes": 675864,
"clientAllocatedBytesPerOperation": 3379.32,
"clientWorkingSetBytes": 129531904,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.1853,
"p95": 0.2121,
"p99": 0.2722,
"throughputOperationsPerSecond": 5374.494797489036
},
"scalar-write": {
"p50": 0.1895,
"p95": 0.2228,
"p99": 0.2406,
"throughputOperationsPerSecond": 5224.7149917971965
},
"array-read": {
"p50": 0.169,
"p95": 0.199,
"p99": 0.2084,
"throughputOperationsPerSecond": 5957.132474711974
},
"array-write": {
"p50": 0.154,
"p95": 0.1895,
"p99": 0.2363,
"throughputOperationsPerSecond": 6447.61953886625
}
},
"clientCpuMilliseconds": 57.443,
"clientAllocatedBytes": 675000,
"clientAllocatedBytesPerOperation": 3375,
"clientWorkingSetBytes": 130351104,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "candidate-client-to-baseline-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:55671/OtOpcUa",
"process": 35841,
"sdk": "1.5.378.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "passed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "2.0.1.0",
"process": 35873,
"cases": [
{
"name": "trusted-SignAndEncrypt-API-key",
"status": "passed"
},
{
"name": "raw-UNS-URI-browse",
"status": "passed"
},
{
"name": "initial-quality-explicit-source-and-server-timestamps",
"status": "passed"
},
{
"name": "scalar-read-write-ns-2",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-2",
"status": "passed"
},
{
"name": "scalar-read-write-ns-3",
"status": "passed"
},
{
"name": "typed-array-read-write-ns-3",
"status": "passed"
},
{
"name": "monitor-quality-timestamps",
"status": "passed"
},
{
"name": "event-filter-and-native-ack",
"status": "passed"
},
{
"name": "raw-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-CP-paging",
"status": "passed"
},
{
"name": "event-history-where-filter-positive-and-negative",
"status": "passed"
}
],
"observations": [
{
"SecurityMode": "SignAndEncrypt",
"SecurityPolicyUri": "http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256"
},
{
"rawChildren": [
{
"NodeId": "ns=2;s=Matrix/dev/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
},
{
"NodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"DisplayName": "UnsetTimestamp",
"NodeClass": "Variable",
"HasChildren": false
}
],
"unsChildren": [
{
"NodeId": "ns=3;s=Eq/Scalar",
"DisplayName": "Scalar",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=3;s=Eq/Vector",
"DisplayName": "Vector",
"NodeClass": "Variable",
"HasChildren": false
},
{
"NodeId": "ns=2;s=Matrix/dev/Alarm",
"DisplayName": "Alarm",
"NodeClass": "Object",
"HasChildren": true
}
]
},
{
"rawReferences": [
{
"nodeId": "ns=2;s=Matrix/dev/Scalar",
"browseName": "2:Matrix/dev/Scalar",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Vector",
"browseName": "2:Matrix/dev/Vector",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/Alarm",
"browseName": "2:Alarm",
"nodeClass": "Object",
"typeDefinition": "i=10637",
"referenceType": "i=47",
"IsForward": true
},
{
"nodeId": "ns=2;s=Matrix/dev/UnsetTimestamp",
"browseName": "2:Matrix/dev/UnsetTimestamp",
"nodeClass": "Variable",
"typeDefinition": "i=63",
"referenceType": "i=35",
"IsForward": true
},
{
"nodeId": "i=61",
"browseName": "FolderType",
"nodeClass": "ObjectType",
"typeDefinition": "",
"referenceType": "i=40",
"IsForward": true
}
]
},
{
"sourceTimestamp": "2026-10-01T00:00:00.0000000Z",
"serverTimestamp": "2026-11-10T17:19:06.4704690Z",
"contract": "Source supplied as 2026-10-01T00:00:00Z; server timestamp observed without normalization or historian algorithm changes"
},
{
"sourceTimestamp": "2026-11-10T17:19:06.5329490Z",
"serverTimestamp": "2026-11-10T17:19:06.5342530Z",
"status": "Good"
},
{
"sourceTimestamp": "2026-11-10T17:19:08.7156710Z",
"serverTimestamp": "2026-11-10T17:19:08.7156710Z",
"timestampObservation": "Fixture source supplied DateTime.MinValue (unset). These are unmodified application/SDK wire observations; no historian algorithm or expected timestamp was changed."
},
{
"benchmarkRound": 1,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2664,
"p95": 0.3049,
"p99": 0.4341,
"throughputOperationsPerSecond": 3707.8785002373047
},
"scalar-write": {
"p50": 0.2393,
"p95": 0.3332,
"p99": 0.3404,
"throughputOperationsPerSecond": 4133.495366351693
},
"array-read": {
"p50": 0.184,
"p95": 0.2077,
"p99": 0.2392,
"throughputOperationsPerSecond": 5395.896959951652
},
"array-write": {
"p50": 0.2016,
"p95": 0.2642,
"p99": 0.2827,
"throughputOperationsPerSecond": 4799.9846400491515
}
},
"clientCpuMilliseconds": 65.791,
"clientAllocatedBytes": 674272,
"clientAllocatedBytesPerOperation": 3371.36,
"clientWorkingSetBytes": 128385024,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 2,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2273,
"p95": 0.2785,
"p99": 0.3107,
"throughputOperationsPerSecond": 4323.6138493998815
},
"scalar-write": {
"p50": 0.261,
"p95": 0.3195,
"p99": 0.3372,
"throughputOperationsPerSecond": 3833.5032853123166
},
"array-read": {
"p50": 0.25,
"p95": 0.3153,
"p99": 0.3712,
"throughputOperationsPerSecond": 4038.935336645261
},
"array-write": {
"p50": 0.2201,
"p95": 0.3085,
"p99": 0.445,
"throughputOperationsPerSecond": 4244.986670741853
}
},
"clientCpuMilliseconds": 68.441,
"clientAllocatedBytes": 674360,
"clientAllocatedBytesPerOperation": 3371.8,
"clientWorkingSetBytes": 129220608,
"clientPrivateBytes": 0,
"clientThreads": 19,
"clientHandles": 0,
"collections": [
0,
0,
0
]
},
{
"benchmarkRound": 3,
"warmupOperationsPerKind": 10,
"operationsPerKind": 50,
"latencyMilliseconds": {
"scalar-read": {
"p50": 0.2055,
"p95": 0.2672,
"p99": 0.2689,
"throughputOperationsPerSecond": 4709.029092381732
},
"scalar-write": {
"p50": 0.264,
"p95": 0.4505,
"p99": 0.9849,
"throughputOperationsPerSecond": 3334.711680828075
},
"array-read": {
"p50": 0.2176,
"p95": 0.6237,
"p99": 1.1979,
"throughputOperationsPerSecond": 3565.392870640416
},
"array-write": {
"p50": 0.2402,
"p95": 0.314,
"p99": 0.3317,
"throughputOperationsPerSecond": 4077.239219779503
}
},
"clientCpuMilliseconds": 63.14,
"clientAllocatedBytes": 682904,
"clientAllocatedBytesPerOperation": 3414.52,
"clientWorkingSetBytes": 130088960,
"clientPrivateBytes": 0,
"clientThreads": 20,
"clientHandles": 0,
"collections": [
0,
0,
0
]
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Security.Certificates.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/build-candidate/bin/Release/net10.0/Opc.Ua.Client.dll"
}
],
"name": "candidate-client-to-candidate-server",
"server": {
"endpoint": "opc.tcp://127.0.0.1:55697/OtOpcUa",
"process": 35866,
"sdk": "2.0.1.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
},
"status": "passed",
"historyBackendRequests": [
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 7
},
{
"operation": "raw",
"rows": 5
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
},
{
"operation": "events",
"rows": 7
}
],
"certificateValidation": "explicit trusted peers; server and Shared client autoaccept disabled",
"authentication": "ephemeral API-key-shaped credential, exact fixture authenticator; real authority/ACL/method gates"
},
{
"sdk": "2.0.1.0",
"process": 68,
"cases": [
{
"name": "driver-trusted-encrypted-API-key-connect",
"status": "passed"
},
{
"name": "driver-raw-UNS-URI-scalar-and-array-read",
"status": "passed"
},
{
"name": "driver-scalar-array-write-roundtrip",
"status": "passed"
},
{
"name": "driver-monitor-quality-timestamps",
"status": "passed"
},
{
"name": "production-CLI-read",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/candidate-driver-cli-to-baseline-server/cli-read.log",
"expectedOutput": "Value: 92"
},
{
"name": "production-CLI-raw-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/candidate-driver-cli-to-baseline-server/cli-raw-history.log",
"expectedOutput": "25 values returned."
},
{
"name": "production-CLI-event-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/candidate-driver-cli-to-baseline-server/cli-event-history.log",
"expectedOutput": "25 events returned."
}
],
"observations": [
{
"SourceTimestampUtc": "2026-11-10T17:19:14.3035771Z",
"ServerTimestampUtc": "2026-11-10T17:19:14.3044509Z",
"StatusCode": 0
},
{
"capability": "driver-history",
"status": "not-applicable",
"evidence": "Driver has no IHistoryProvider/HistoryRead capability; .claude/rules/drivers.md #655. Shared/CLI own history."
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Client.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Security.Certificates.dll"
}
],
"name": "candidate-driver-cli-to-baseline-server",
"status": "passed",
"container": "otopcua-sdk2-matrix-222d08944aba",
"network": "none; all peers in task container, separate SDK processes",
"driverCertificateValidation": "explicit trusted peers; autoaccept disabled",
"cliCertificateValidation": "explicit exchanged peers; CLI always configures AutoAcceptCertificates=true (CommandBase.CreateConnectionSettings)",
"server": {
"endpoint": "opc.tcp://127.0.0.1:44603/OtOpcUa",
"process": 33,
"sdk": "1.5.378.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
}
},
{
"sdk": "2.0.1.0",
"process": 79,
"cases": [
{
"name": "driver-trusted-encrypted-API-key-connect",
"status": "passed"
},
{
"name": "driver-raw-UNS-URI-scalar-and-array-read",
"status": "passed"
},
{
"name": "driver-scalar-array-write-roundtrip",
"status": "passed"
},
{
"name": "driver-monitor-quality-timestamps",
"status": "passed"
},
{
"name": "production-CLI-read",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/candidate-driver-cli-to-candidate-server/cli-read.log",
"expectedOutput": "Value: 92"
},
{
"name": "production-CLI-raw-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/candidate-driver-cli-to-candidate-server/cli-raw-history.log",
"expectedOutput": "25 values returned."
},
{
"name": "production-CLI-event-history",
"status": "passed",
"log": "/Users/dohertj2/.codex/worktrees/opcua2-cross-version/OtOpcUa/artifacts/cross-version/run-10/candidate-driver-cli-to-candidate-server/cli-event-history.log",
"expectedOutput": "25 events returned."
}
],
"observations": [
{
"SourceTimestampUtc": "2026-11-10T17:19:21.7145689Z",
"ServerTimestampUtc": "2026-11-10T17:19:21.7157531Z",
"StatusCode": 0
},
{
"capability": "driver-history",
"status": "not-applicable",
"evidence": "Driver has no IHistoryProvider/HistoryRead capability; .claude/rules/drivers.md #655. Shared/CLI own history."
}
],
"failures": 0,
"loadedSdkAssemblies": [
{
"name": "Opc.Ua.Core",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.dll"
},
{
"name": "Opc.Ua.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Types.dll"
},
{
"name": "Opc.Ua.Core.Types",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Core.Types.dll"
},
{
"name": "Opc.Ua.Client",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Client.dll"
},
{
"name": "Opc.Ua.Configuration",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Configuration.dll"
},
{
"name": "Opc.Ua.Security.Certificates",
"version": "2.0.1.0",
"path": "/candidate/Opc.Ua.Security.Certificates.dll"
}
],
"name": "candidate-driver-cli-to-candidate-server",
"status": "passed",
"container": "otopcua-sdk2-matrix-00f1df5c1613",
"network": "none; all peers in task container, separate SDK processes",
"driverCertificateValidation": "explicit trusted peers; autoaccept disabled",
"cliCertificateValidation": "explicit exchanged peers; CLI always configures AutoAcceptCertificates=true (CommandBase.CreateConnectionSettings)",
"server": {
"endpoint": "opc.tcp://127.0.0.1:44545/OtOpcUa",
"process": 33,
"sdk": "2.0.1.0",
"rawUri": "https://zb.com/otopcua/raw",
"unsUri": "https://zb.com/otopcua/uns"
}
}
]