docs(claude): exact condition Severity + two-element select-clause trap
Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
@@ -1228,6 +1228,12 @@ ack is refused `BadInvalidState` off-Primary** via `NativeAlarmAckPrimaryGate` (
|
|||||||
changes, so the boot window before the first redundancy snapshot is closed — the same fix covers the MQTT
|
changes, so the boot window before the first redundancy snapshot is closed — the same fix covers the MQTT
|
||||||
Sparkplug primary-host claim). A native re-ack is still re-sent to the driver (the retry path, by design).
|
Sparkplug primary-host claim). A native re-ack is still re-sent to the driver (the retry path, by design).
|
||||||
|
|
||||||
|
**Condition `Severity` is carried verbatim, clamped to 1..1000** — `ToPart9Severity`; the node manager used to re-bucket onto
|
||||||
|
the five `EventSeverity` points (so an MTConnect Fault read 900, scripted Critical 1000 read 900, native Low 200 read 300).
|
||||||
|
ScadaBridge only clamps, so exact values pass through. ⚠️ **Never select a two-state id with `AddSelectClause(type, "X/Id")`** —
|
||||||
|
the string becomes ONE QualifiedName named `X/Id`, which no event carries; the Client.CLI/Client.UI filter did this since
|
||||||
|
`a2883b82` and every alarm read inactive+unacked. Use `new SimpleAttributeOperand(type, [X, Id])` (ScadaBridge already does).
|
||||||
|
|
||||||
**Condition children are instance-scoped (#629).** Every child of a materialised condition carries
|
**Condition children are instance-scoped (#629).** Every child of a materialised condition carries
|
||||||
`{ConditionId}/{browse path}` in the condition's namespace (e.g. `…/temp_hi/ShelvingState/UnshelveTime`), assigned by
|
`{ConditionId}/{browse path}` in the condition's namespace (e.g. `…/temp_hi/ShelvingState/UnshelveTime`), assigned by
|
||||||
the `OtOpcUaNodeManager.New` override — the SDK default kept each child on the TYPE's ns=0 id, so a direct Read hit
|
the `OtOpcUaNodeManager.New` override — the SDK default kept each child on the TYPE's ns=0 id, so a direct Read hit
|
||||||
|
|||||||
Reference in New Issue
Block a user