The original task scope assumed a per-tag editor lived in EquipmentTab.razor
or a similar surface. Reading the codebase confirmed that's not the case:
tags are seeded via SQL (scripts/smoke/*) or arrive at runtime through
ITagDiscovery; the Admin UI has no per-tag CRUD page today. Equipment
import is for equipment metadata (Name / MachineCode / ZTag / SAPID /
Identification) — not tag rows.
Adjusted scope:
1. ModbusAddressPreview.razor — new standalone page at /modbus/address-preview.
Hosts the ModbusAddressEditor component shipped in #145 + the family
selector + a copy-pasteable grammar reference. Operators can sanity-check
address-string syntax (40001:F:CDAB / HR1:I / V2000:F / D100:I etc.)
without committing it to a config row first.
2. ImportEquipment.razor — appended a secondary alert banner clarifying
that Modbus per-tag addressing isn't part of equipment import; points
users at the Drivers tab + the new preview tool.
Builds clean against the existing Admin app. The actual per-tag CRUD UI is
still a separate piece of work — when it ships, it can drop in
ModbusAddressEditor directly. The preview page acts as the canonical
demonstration of how to use the component.
Razor caveat: the grammar reference uses literal `<...>` syntax tokens
that the Razor parser interprets as malformed elements when inlined in a
<pre> block. Held as a string field (_grammarReference) and rendered
through @ binding to sidestep the parser conflict.