{ "boundaries": { "estop_command": -904, "estop_recovery_before_clear": -904, "fault_clear_while_asserted": -905, "invalid_pin_type": -304, "probe_state": 2, "probe_trigger": 0, "recovery": 0, "spindle_limit": -906, "state_hash_stable": true, "tool_change_while_spinning": -910 }, "implementation_status": "verified", "native_wasm": { "native_command": "build-native/sim_io_test", "status": "passed", "wasm_command": "node build-wasm/sim_io_wasm_test.js" }, "oracle": { "blocked_samples": [ "spindle acceleration/at-speed", "spindle orient", "tool prepare/change", "tool abort/fault/recovery", "probe pose latch", "estop and recovery" ], "reason": "locked LinuxCNC source has no linuxcnc/unit_tests/kinematics oracle root and no browser IO oracle", "status": "blocked" }, "pipeline": { "kinematics_association": "probe latch consumes the motion feedback pose; tool change requires stopped spindle; estop cancels motion-facing IO", "probe": [ "arm", "input_edge", "forward_pose_latch", "trip_or_disarm" ], "spindle": [ "command", "inhibit_or_fault_gate", "acceleration_limit", "at_speed_and_brake", "revs_and_index" ], "tool": [ "prepare", "prepared_ack", "spindle_stopped_gate", "change", "changed_ack", "abort_or_fault" ] }, "registration": { "fixed_tick": true, "hal_pins": [ "spindle.0.*", "spindle.1.*", "iocontrol.0.tool-*", "motion.probe-input" ], "scheduler": "sim-io-servo", "spindle_capacity": 8, "tool_pocket_capacity": 1001 }, "report_sha256": "82a4b09badb2fcbcd248a0624b7b3a4e70c697f4040bd9250ac4831799c63af6", "samples": { "byte_identical_json": true, "native": { "canonical": { "estop": 0, "fault": 0, "fault_reason": 0, "last_error": 0, "probe": { "input": 1, "position": [ 1, 2, 3 ], "state": 2, "tick": 40, "tripped": 1 }, "ready": 1, "recovery_epoch": 1, "spindles": [ { "at_speed": 1, "brake": 1, "command_rpm": 0, "forward": 0, "reverse": 0, "speed_rpm": 0, "tick": 40 }, { "at_speed": 1, "brake": 1, "command_rpm": 0, "forward": 0, "reverse": 0, "speed_rpm": 0, "tick": 40 } ], "tick": 40, "tool": { "changed": 0, "current": 7, "prepare": 0, "prepared": 0, "prepared_pocket": 3, "prepared_tool": 7, "state": 0 } }, "estop": { "command": -904, "recover": 0, "recover_before_clear": -904 }, "pin": { "count": 67, "functions": 1, "invalid_type": -304 }, "probe": { "position": [ 1.0, 2.0, 3.0 ], "state": 2, "status": 0 }, "repeat_hash": 3758173594264074653, "schema": "io-samples.v1", "spindle": { "at_speed": 1, "limit": -906, "speed": 0.0, "step": 0, "tool_busy": -910 }, "state_hash": 3758173594264074653, "tool": { "current": 7, "fault_clear": -905, "state": 0 } }, "state_hash_identical": true, "wasm": { "canonical": { "estop": 0, "fault": 0, "fault_reason": 0, "last_error": 0, "probe": { "input": 1, "position": [ 1, 2, 3 ], "state": 2, "tick": 40, "tripped": 1 }, "ready": 1, "recovery_epoch": 1, "spindles": [ { "at_speed": 1, "brake": 1, "command_rpm": 0, "forward": 0, "reverse": 0, "speed_rpm": 0, "tick": 40 }, { "at_speed": 1, "brake": 1, "command_rpm": 0, "forward": 0, "reverse": 0, "speed_rpm": 0, "tick": 40 } ], "tick": 40, "tool": { "changed": 0, "current": 7, "prepare": 0, "prepared": 0, "prepared_pocket": 3, "prepared_tool": 7, "state": 0 } }, "estop": { "command": -904, "recover": 0, "recover_before_clear": -904 }, "pin": { "count": 67, "functions": 1, "invalid_type": -304 }, "probe": { "position": [ 1.0, 2.0, 3.0 ], "state": 2, "status": 0 }, "repeat_hash": 3758173594264074653, "schema": "io-samples.v1", "spindle": { "at_speed": 1, "limit": -906, "speed": 0.0, "step": 0, "tool_busy": -910 }, "state_hash": 3758173594264074653, "tool": { "current": 7, "fault_clear": -905, "state": 0 } } }, "schema": "io-runtime-report.v1", "source_records": { "hal_header": { "path": "wasm-core/include/sim_hal.h", "sha256": "3dd7230316e557d1a129a9a80a26a109b837a318b092657b8bee0d53a5e57db9" }, "hal_source": { "path": "wasm-core/src/sim_hal.c", "sha256": "76a057064546a8ee9ba1098952755a4cdc56e6e714f2761b8a1826898d3ae621" }, "io_header": { "path": "wasm-core/include/sim_io.h", "sha256": "d84e9ab0bcf9ff138f8c8a57b28337605d731ff796577a8ab748d708f97daf9b" }, "io_source": { "path": "wasm-core/src/sim_io.c", "sha256": "2ceacdb168a1f6dddb36761b93f62e4c39b3a6249c0a91a740ecf924dce217b3" }, "linuxcnc_control": { "path": "linuxcnc/src/emc/motion/control.c", "sha256": "fa1b14689e2e4493c02d0939f982278366d4c1888da62e172cec030904c82c50" }, "linuxcnc_iocontrol": { "path": "linuxcnc/src/emc/iotask/ioControl.cc", "sha256": "f2f7d4f8a0e77815ca1ffb1ba2699b9d2ffa4297c8ec7718aadd197fe6ca06a9" }, "linuxcnc_iocontrol_v2": { "path": "linuxcnc/src/emc/iotask/ioControl_v2.cc", "sha256": "a33bcddcdcbcda843166bd547f7c7a5dfc7f9436426c5354f7124f42f6f75e5c" }, "linuxcnc_motion": { "path": "linuxcnc/src/emc/motion/motion.c", "sha256": "c3d1404150b56cfb03ab35ecdf64694d60a6d37117d0617a8464d548133e79d3" }, "linuxcnc_sim_spindle": { "path": "linuxcnc/src/hal/components/sim_spindle.comp", "sha256": "a1ce30a051490c5f40adc968a693930464dfbe59c9df1848c296689179b11365" }, "test": { "path": "wasm-core/tests/sim_io_test.c", "sha256": "46923ff49c55576692e660d1af37e43bd6c1aff184ae2a2d5ca9201dd969ccfe" } }, "status": "partial" }