FOCAS: duplicate sibling axis names make the Axes/ fixed-tree subtree untrustworthy (#540 residual) #548
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split out of #540's "Still open, recorded rather than fixed" section so closing that issue does not lose it.
Problem
A CNC can report duplicate sibling axis names — the wonder Makino (Fanuc 30i,
10.201.31.5:8193) returns two axis folders both calledAA. Two consequences:AAcould be authored, its values would overwrite the first's. TheAxes/subtree is therefore not trustworthy on such a machine — documented as a caveat indocs/drivers/FOCAS.mdsince the #540 fix (4e22f024).This is why
Axes/was excluded from the wonder deployment: the box reads 20/20 Good on the non-axis fixed tree, with the axis surface deliberately left unauthored.Decision needed
Disambiguation is a design call, not a bug fix: suffix duplicate siblings by ordinal index? by the CNC's own axis number (
cnc_rdaxisdataslot)? Whichever is chosen must be stable across browses — an index that shifts when the machine adds an axis would rename existing RawPaths, which the v3 model exists to prevent (compare the DataSet row-index rationale in #515, where the row index is always present precisely so a growing table never renames existing tags).Both the emitter (
FocasDriverfixed-tree cache key) and commit-time collision handling need to agree on the scheme.One operational note beyond the merge (
8b5c478c): the fix is inmasterbut not yet onwonder-app-vd03(the box runs4e22f024). Authoring the Makino'sAxes/subtree there needs a deployment of this build followed by a re-browse + commit — the tree will then offerAA_1/AA_2alongside the bare-named unique axes. The 20 existing non-axis fixed-tree tags are untouched by this change (their segments were never duplicated, and unique names keep their bare form by design).