Drivers: take the live device host from DeviceConfig instead of string-matching (TODO(v3 WaveC)) #608

Closed
opened 2026-10-08 02:31:12 -04:00 by dohertj2 · 1 comment
Owner

Seven of the nine TODOs in src/. Four drivers recover a tag's device host by matching RawTagEntry.DeviceName against the driver's Devices list instead of reading the owning Device row's DeviceConfig keyed by the RawPath device segment; FOCAS throws at init on no match.
Sources: FocasDriver.cs:227,385; TwinCATDriver.cs:822; AbLegacyDriver.cs:640; AbCipDriver.cs:104,1719; AbCipDriverOptions.cs:166.

  • Thread the per-device DeviceConfig (as merged by DriverDeviceConfigMerger) into driver options
  • Collapse the four lookups into a pure DeviceName index; remove the TODOs

Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep.

Seven of the nine `TODO`s in `src/`. Four drivers recover a tag's device host by matching `RawTagEntry.DeviceName` against the driver's Devices list instead of reading the owning Device row's `DeviceConfig` keyed by the RawPath device segment; FOCAS throws at init on no match. Sources: FocasDriver.cs:227,385; TwinCATDriver.cs:822; AbLegacyDriver.cs:640; AbCipDriver.cs:104,1719; AbCipDriverOptions.cs:166. - [ ] Thread the per-device `DeviceConfig` (as merged by `DriverDeviceConfigMerger`) into driver options - [ ] Collapse the four lookups into a pure DeviceName index; remove the TODOs _Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep._
dohertj2 added the driver/focasdriver/abcipdriver/ablegacydriver/twincat labels 2026-10-08 02:31:12 -04:00
Author
Owner

Resolved on master (9c39f2b6, merge 0fb194a0).

  • DeviceConfig threading: already in place, DriverDeviceConfigMerger rebuilds options.Devices from each Device row's DeviceConfig at deploy time (one object per Device row, DeviceName = the RawPath device segment). Verified in the code.
  • The TODO(v3 WaveC) comments in FocasDriver, TwinCATDriver, AbLegacyDriver and AbCipDriver/AbCipDriverOptions are removed and replaced with the actual contract. Ruling: the DeviceName lookup is kept (not collapsed to a pure DeviceName index) because the HostAddress fallback is deliberate: the Client CLI routes by host. Failing fast on no match is unchanged.

Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).

Resolved on master (9c39f2b6, merge 0fb194a0). - [x] DeviceConfig threading: already in place, `DriverDeviceConfigMerger` rebuilds `options.Devices` from each Device row's DeviceConfig at deploy time (one object per Device row, DeviceName = the RawPath device segment). Verified in the code. - [x] The TODO(v3 WaveC) comments in FocasDriver, TwinCATDriver, AbLegacyDriver and AbCipDriver/AbCipDriverOptions are removed and replaced with the actual contract. Ruling: the DeviceName lookup is **kept** (not collapsed to a pure DeviceName index) because the HostAddress fallback is deliberate: the Client CLI routes by host. Failing fast on no match is unchanged. *Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).*
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#608