218 lines
6.1 KiB
JSON
218 lines
6.1 KiB
JSON
{
|
|
"boundaries": [
|
|
"real encoder transport and physical safety circuits remain REAL-EXCLUDED",
|
|
"nonfinite/range/unsafe commands fail closed"
|
|
],
|
|
"capacities": {
|
|
"ack_entries": 64,
|
|
"encoders": 8,
|
|
"max_tick_step": 1000000
|
|
},
|
|
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
|
"features": [
|
|
"fixed-tick quadrature encoder and index pulse",
|
|
"encoder position/velocity/count scaling",
|
|
"coolant mist/flood/lube interlock gating",
|
|
"door and latched interlock fault/recovery",
|
|
"deterministic IO ack issue/duplicate/timeout/late/abort",
|
|
"native/WASM byte-identical state sample",
|
|
"Worker checkpoint/replay device state"
|
|
],
|
|
"inputs": [
|
|
{
|
|
"path": "context-lock.json",
|
|
"sha256": "785051d2a826ff45223da0a3dada919b75ac03a4ffb3c7e6f19083e78adc1abc"
|
|
},
|
|
{
|
|
"path": "wasm-core/include/sim_device_io.h",
|
|
"sha256": "5a7d7cc3b335497f09fd8b824ad10f40595c6027d2c6635507e78b88841ebe0a"
|
|
},
|
|
{
|
|
"path": "wasm-core/src/sim_device_io.c",
|
|
"sha256": "62d3ecee8a1f09a4d06e1f5a4f48fbdd642373943522e4ea07d612dd1aebfd93"
|
|
},
|
|
{
|
|
"path": "wasm-core/tests/sim_device_io_test.c",
|
|
"sha256": "2696747c654a4bf258ad4b618548b9413ee72e7ef8f9b600d20f5ceb826c8192"
|
|
},
|
|
{
|
|
"path": "web/worker/device-io.mjs",
|
|
"sha256": "e5714b11283e1b6adcc15d96b340d4ca9795ec5efe6fff288464c21f0c76349a"
|
|
},
|
|
{
|
|
"path": "web/worker/test_device_io.mjs",
|
|
"sha256": "8b95591f5478738478efd8e26cbab8637df59d68a5fc8e4733de0ad3bf1fc336"
|
|
},
|
|
{
|
|
"path": "web/worker/io-ack.mjs",
|
|
"sha256": "a68fe56c8b8c7b44ff585a7c7c1fa5ca942f59197ef51651abf59ae4cc1eaec5"
|
|
},
|
|
{
|
|
"path": "web/worker/sim-session.mjs",
|
|
"sha256": "31a7e035c592f444d516bd423c760cf8ff04e513b2b2117b7c8a56d3300e9525"
|
|
},
|
|
{
|
|
"path": "linuxcnc/src/hal/components/sim_encoder.c",
|
|
"sha256": "dc40520ef2f718ccbe588cf61ca8518faf35582b32c66dae036c24e2b1fb9ec9"
|
|
},
|
|
{
|
|
"path": "linuxcnc/src/hal/components/encoder.c",
|
|
"sha256": "2c61ca53342cf58209d87041625e232cd6377c4c44e699de2e0047ea97a99a23"
|
|
},
|
|
{
|
|
"path": "linuxcnc/configs/sim/axis/cooling.hal",
|
|
"sha256": "4bf84dc7aa6748a8703a917b0da84ae529d70207845e8453348ad9cb1d26ae4c"
|
|
}
|
|
],
|
|
"report_sha256": "438eb2df1fd60944577c13cafbcc2879f2cefddc9bbc828992aa2e8f1f863b58",
|
|
"schema": "device-io-s2-report.v1",
|
|
"status": "verified",
|
|
"task_id": "S2-03",
|
|
"tests": {
|
|
"native": {
|
|
"command": [
|
|
"/home/mes006/linuxcncWebWASM/build-native/sim_device_io_test"
|
|
],
|
|
"returncode": 0,
|
|
"sample": {
|
|
"ack": {
|
|
"acked": 2,
|
|
"timed_out": 3
|
|
},
|
|
"canonical": {
|
|
"coolant": {
|
|
"flood": 0,
|
|
"lube": 0,
|
|
"mist": 1
|
|
},
|
|
"encoders": [
|
|
{
|
|
"count": 40,
|
|
"index_pulse": 1,
|
|
"position": 10,
|
|
"velocity": 10
|
|
},
|
|
{
|
|
"count": 0,
|
|
"index_pulse": 0,
|
|
"position": 0,
|
|
"velocity": 0
|
|
}
|
|
],
|
|
"safety": {
|
|
"door_open": 0,
|
|
"estop": 0,
|
|
"interlock_ok": 1,
|
|
"latched_fault": 0
|
|
},
|
|
"tick": 12
|
|
},
|
|
"coolant": {
|
|
"flood": 0,
|
|
"lube": 0,
|
|
"mist": 1
|
|
},
|
|
"encoder": {
|
|
"count": 40,
|
|
"index_pulse": 1,
|
|
"position": 10.0,
|
|
"velocity": 10.0
|
|
},
|
|
"safety": {
|
|
"interlock_ok": 1,
|
|
"recovery_epoch": 2
|
|
},
|
|
"schema": "device-io-s2-sample.v1",
|
|
"state_hash": 2331225012073024271,
|
|
"tick": 12
|
|
},
|
|
"status": "verified",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
|
|
},
|
|
"native_wasm_byte_identical": true,
|
|
"wasm": {
|
|
"command": [
|
|
"node",
|
|
"/home/mes006/linuxcncWebWASM/build-wasm/sim_device_io_wasm_test.js"
|
|
],
|
|
"returncode": 0,
|
|
"sample": {
|
|
"ack": {
|
|
"acked": 2,
|
|
"timed_out": 3
|
|
},
|
|
"canonical": {
|
|
"coolant": {
|
|
"flood": 0,
|
|
"lube": 0,
|
|
"mist": 1
|
|
},
|
|
"encoders": [
|
|
{
|
|
"count": 40,
|
|
"index_pulse": 1,
|
|
"position": 10,
|
|
"velocity": 10
|
|
},
|
|
{
|
|
"count": 0,
|
|
"index_pulse": 0,
|
|
"position": 0,
|
|
"velocity": 0
|
|
}
|
|
],
|
|
"safety": {
|
|
"door_open": 0,
|
|
"estop": 0,
|
|
"interlock_ok": 1,
|
|
"latched_fault": 0
|
|
},
|
|
"tick": 12
|
|
},
|
|
"coolant": {
|
|
"flood": 0,
|
|
"lube": 0,
|
|
"mist": 1
|
|
},
|
|
"encoder": {
|
|
"count": 40,
|
|
"index_pulse": 1,
|
|
"position": 10.0,
|
|
"velocity": 10.0
|
|
},
|
|
"safety": {
|
|
"interlock_ok": 1,
|
|
"recovery_epoch": 2
|
|
},
|
|
"schema": "device-io-s2-sample.v1",
|
|
"state_hash": 2331225012073024271,
|
|
"tick": 12
|
|
},
|
|
"status": "verified",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "0d61cefc36cc59dffac89a052a3b955bfe15fbaf02525d529169a54d3e17e234"
|
|
},
|
|
"worker": {
|
|
"command": [
|
|
"node",
|
|
"/home/mes006/linuxcncWebWASM/web/worker/test_device_io.mjs"
|
|
],
|
|
"returncode": 0,
|
|
"sample": {
|
|
"checkpoint_hash": "fnv1a64:2fd430f34934440e",
|
|
"count": 40,
|
|
"schema": "device-io-worker-sample.v1",
|
|
"state_hash": "fnv1a64:d303b40b131396ff",
|
|
"status": "verified",
|
|
"tick": 12,
|
|
"worker_state_hash": "fnv1a64:128eb22bfba5d6f9",
|
|
"worker_tick": 2
|
|
},
|
|
"status": "verified",
|
|
"stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"stdout_sha256": "2fe0ab9d322ad28fd18ac076a0e8a505ba4b789c7a686866c99c229d195ea7d7"
|
|
}
|
|
}
|
|
}
|