2.8 KiB
2.8 KiB
Native Homing and Status Validation
Date: 2026-09-09. Local URL: http://127.0.0.1:5175/. This records local execution, not deployment or a full LinuxCNC port.
Implementation
- The selected XYZAC case compiles the pinned
homing.candsimple_tp.c. - HAL allocation and ideal motor feedback are adapted; the homing state machine is not rewritten in JavaScript.
task.stateis machine state; interpreter state istask.interpState.motion.traj.modeis FREE/COORD/TELEOP;motion_typeis separate.home_statecomes from homemod's state underlyingjoint.N.home-state.- The monitor displays task mode/state, interpreter state, motion mode/type and Homing. Per-joint status and history remain in the snapshot; their table and history list were removed from the visible panel at the user's request.
- Numeric Home Joint replaces the world-axis-to-joint alias. Original control
ID
manual-home-axisis retained;manual-home-joint-selectselects 0..4. - Home acceptance is asynchronous. Completion is determined by homemod, not by the coordinated planner queue.
Verified
- Native C test:
ctest --test-dir build-native -R sim_native_homing_test. - WASM/Worker:
node web/worker/test_native_homing.mjs. - All five joints: Jog then native no-search re-home resets joint coordinates while preserving simulated physical motor position and updating motor offset.
- A test INI with HOME=5 executes the original free_tp final move; intermediate positions are nonzero, homed stays false until completion, coordinated TP queue remains empty.
- Partial home remains FREE; the native all-homed edge switches to TELEOP.
- AUTO+PAUSED rejects switching to MANUAL; abort and E-stop cancel homemod without marking interrupted joints homed; subsequent re-home works.
- Native state save/restore preserves positions and offsets.
- Existing Step, WAITING/MDI Pause/Resume, rerun, touch-off, source widget gates and Live Plot lifecycle regression tests pass with asynchronous Home setup.
- Source Tcl oracle: 576 scenarios, 7488 assertions. Control inventory: 83 IDs.
- Visible Chrome tests:
scripts/test_xyzac_home_reset_browser.mjsandscripts/test_xyzac_panel_buttons_browser.mjswithHEADED=1. - Desktop/mobile screenshots and canvas pixel checks pass. General browser audit covers 51 buttons with no page errors.
- React type checking and production build pass.
Screenshots: /tmp/axis-native-home-desktop.png,
/tmp/axis-native-home-mobile.png.
Remaining Boundaries
Task/interpreter status still uses the existing WASM adapter. Physical switch, encoder and unlock hardware have not been validated; the selected INI uses zero search/latch velocities. Full Joint/World jogging is not exposed. General recovery retains the existing planner/HAL endpoint differences and large RECOVER envelope stack limitation documented in the source-flow contract.