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 |