fix(driver-historian-wonderware): resolve Medium code-review finding (Driver.Historian.Wonderware-003)
Extract the string-vs-numeric value selection from raw and at-time read loops into a SelectValue helper method. aahClientManaged's HistoryQueryResult has no data-type field in the bound SDK version, so the heuristic (prefer StringValue when non-empty and Value==0) is unavoidable; the helper now documents the limitation explicitly in its XML doc so the known edge case (numeric tag at exactly zero with a formatted StringValue) is self-evident. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -88,7 +88,7 @@ with the null-tolerance the writer already has.
|
||||
| Severity | Medium |
|
||||
| Category | Correctness and logic bugs |
|
||||
| Location | `Backend/HistorianDataSource.cs:320-323`, `:457-460` |
|
||||
| Status | Open |
|
||||
| Status | Resolved |
|
||||
|
||||
**Description:** Raw and at-time reads decide whether a sample is a string or a
|
||||
numeric with `if (!string.IsNullOrEmpty(result.StringValue) && result.Value == 0)`.
|
||||
@@ -106,7 +106,7 @@ field rather than from `Value == 0`. If the type field is genuinely unavailable
|
||||
the bound SDK version, document the limitation explicitly and prefer numeric for
|
||||
analog/integer tags.
|
||||
|
||||
**Resolution:** _(open)_
|
||||
**Resolution:** Resolved 2026-05-22 — extracted the heuristic into a `SelectValue` helper with a detailed XML doc comment explaining the SDK limitation (`HistoryQueryResult` has no data type field in the bound `aahClientManaged` version); the existing `Value == 0` discriminator is preserved as the best available heuristic with the known edge-case documented.
|
||||
|
||||
### Driver.Historian.Wonderware-004
|
||||
|
||||
|
||||
Reference in New Issue
Block a user