5356
5226; Unify Grippers, Fingers & Loading Table Under Generic DiscreteAxis Dispatch
Pathfinder

Changes made for 5226 controllers.

Change: Added a generic discrete-axis reference table (DiscreteAxis[] / struct DiscreteAxisRef) and dispatcher (Find_DiscreteAxis, Is_DiscreteAxis_In_Tolerance) so grippers, fingers, and the loading table are reached through one table lookup instead of the per-type if/else ladder in Is_Axis_In_Tolerance. Per-device tolerance checks were parameterized to take the axis struct/IO pointers.

Reason: Remove duplicated per-axis branching, make adding a discrete axis simpler, and lay groundwork toward data-driven axis topology.

Behavior: No functional change — each device still runs its own tolerance logic; only the dispatch path changed.

Files: Run/DiscreteAxis.c, Run/Header/DiscreteAxis.h (new); Run/MoveToPosition.c, Run/OK_To_Run.c, Run/Finger.c, Run/Header/Finger.h, Run/LoadingTable.c, Run/Header/LoadingTable.h.

Testing: Verified in simulation — both grippers and finger jog/operate correctly; no RMT_HALTED / E289_UNEXPECTED_FINGER_STATE.

Risk: Low — dispatch indirection only; device tolerance logic unchanged.

Model Version Released
5226BB Rev H. 5.01.03 8/11/2026
5226BB Rev G. 5.00.27 8/11/2026
5226BB Rev F. 4.04.28 8/11/2026