diff --git a/README.md b/README.md index bf16dd6..6085827 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # LinuxCNC Web/WASM -本仓库的目标是将 LinuxCNC `2.10.0~pre0` 的仿真行为移植到浏览器。当前提交完成的是实施前 M0/M1 骨架,不是 LinuxCNC 功能完成声明。 +本仓库的目标是将 LinuxCNC `2.10.0~pre0` 的仿真行为移植到浏览器。当前已完成 posemath/TP、rs274ngc interpreter 和 fixed-tick motion queue 核心切片;这仍不是 LinuxCNC 全功能完成声明。 -恢复或开始工作时,首先读取 [`nextTask.md`](nextTask.md)。它是当前任务节点、下一任务节点、验证证据和切换规则的唯一接续入口。 +恢复或开始工作时,首先读取 [`nextTask.md`](nextTask.md)。它是唯一接续入口,刻意限制在 8 KiB 以内,不包含聊天记录、完整日志或历史证据。只有定位旧证据时才按需读取 [`docs/task-history.md`](docs/task-history.md) 和其中引用的产物。 ## 当前状态 @@ -11,6 +11,10 @@ - 覆盖种子:`coverage/manifest.jsonl`。所有条目初始为 `planned/needs_owner`,没有来源会被静默忽略。 - WASM ABI 骨架:`wasm-core/include/sim_api.h`;当前实现只验证生命周期、固定 tick、快照和状态导入导出。 - 前端、Worker、HAL、解释器、TP、Python、OPFS 和 UI 功能仍须按文档里程碑实现。 +- `K0-INV-01`、`K0-INV-02`、`K0-ORACLE-01`、`K1-CONTRACT-01`、`K1-CONTRACT-02`、`K1-NUM-01`、`K2-TRIV-01`、`K2-TRIV-02`、`K2-COUPLED-01`、`K2-HAL-01`、`K3-5AXIS-01`、`K3-TRT-01`、`K3-ROBOT-01` 和 `K3-GENSER-01` 已完成;Genser melfa/puma560 DH、迭代 residual、固定上限和 native/WASM 对照见 `coverage/genser-kinematics.report.json`;其它运动学证据保持在对应 `coverage/*-kinematics.report.json`。旧 `M2-CORE-04` 因锁定来源缺少声明的 `linuxcnc/unit_tests/kinematics/**` 输入而保留为 blocked 证据。 +- `K4-DELTA-01` 已完成 linear/rotary Delta 的统一解析 FK/IK、XYZ/extra-joint mapping、默认/alternate root、工作空间/限位/奇异边界和 native/WASM 对照;四个真实配置候选、缺失 HAL 资源和官方 oracle blocked 清单见 `coverage/delta-kinematics.report.json`。旧 `M2-CORE-04` 因锁定来源缺少声明的 `linuxcnc/unit_tests/kinematics/**` 输入而保留为 blocked 证据。 +- `K4-TRIPOD-01` 已完成 point-vertex tripod 的统一 FK/IK/mapping;真实 `tripod.ini`/`tripodsim.hal`、XYZ/AD-BD-CD 映射、above/below 根分支、无解/基面奇异/限位/退化几何和 native/WASM state hash 对照见 `coverage/tripod-kinematics.report.json`。`nextTask.md` 当前进入 `K4-HEX-01`;官方 oracle 因锁定来源缺少 `linuxcnc/unit_tests/kinematics/**` 继续显式 blocked。 +- `K4-HEX-01` 已完成 genhex 六腿 Stewart 平台的统一 FK/IK/mapping;真实 `hexapod.ini`/`kinematics.hal`、Newton 6x6 正解、闭式逆解、迭代/奇异/限位边界和 native/WASM 对照见 `coverage/genhex-kinematics.report.json`。`nextTask.md` 当前进入 `K4-PENTA-01`;官方 oracle 继续显式 blocked。 ## 重建 M0 @@ -18,8 +22,11 @@ python3 scripts/generate_source_inventory.py python3 scripts/validate_baseline.py python3 -m unittest discover -s scripts -p 'test_*.py' -v +python3 scripts/validate_task_pointer.py ``` +模型请求也必须先经过预算门禁:用 `scripts/context_packet.py` 生成固定 profile 的 packet,再运行 `scripts/validate_model_budget.py packet.json --context-window --overhead-tokens `。覆盖值只能缩小 profile;请求外开销不得包含上一轮聊天。请求返回后用 `validate_provider_response` 校验 provider usage,流式响应交给 `scripts/model_stream.py` 消费;断流、上下文超限、usage 缺失或截断只写 metadata-only checkpoint,并从更小的 packet 重建,绝不把旧响应拼回上下文。 + ## 编译 ABI 骨架 需要 Emscripten。该命令同时运行原生 ABI 单测并生成 `build-wasm/linuxcnc-sim-core.js`/`.wasm`: @@ -28,6 +35,6 @@ python3 -m unittest discover -s scripts -p 'test_*.py' -v scripts/build-wasm.sh ``` -完整路线、功能完整性和退出门禁见 [`docs/linuxcnc-web-wasm-implementation-readiness.md`](docs/linuxcnc-web-wasm-implementation-readiness.md)。专项设计仍分别位于 `docs/` 下的 roadmap、source map、coverage、communication、execution 和 playbook 文档。 +完整路线、功能完整性和退出门禁见 [`docs/linuxcnc-web-wasm-implementation-readiness.md`](docs/linuxcnc-web-wasm-implementation-readiness.md)。面向“完整移植仿真机床”的启动闭环、运行时依赖、固定 tick、资源闭包和分阶段产物见 [`docs/linuxcnc-web-wasm-full-port-implementation.md`](docs/linuxcnc-web-wasm-full-port-implementation.md);运动学正逆解、机床类型分族、分支/奇异性和 K0-K8 主线见 [`docs/linuxcnc-web-wasm-kinematics-migration-plan.md`](docs/linuxcnc-web-wasm-kinematics-migration-plan.md)。专项设计仍分别位于 `docs/` 下的 roadmap、source map、coverage、communication、execution 和 playbook 文档。 依赖下载允许使用中国大陆镜像;请先阅读 `context-lock.json` 的 `downloads` 策略。镜像只改变传输位置,不能改变版本、文件字节或校验记录。 diff --git a/context-lock.json b/context-lock.json index f7592ab..e69f01d 100644 --- a/context-lock.json +++ b/context-lock.json @@ -60,18 +60,25 @@ "runtime_pin_rule": "Changing mirror URL without changing bytes does not change context; changing bytes or version creates a new context_id." }, "inventory_counts": { - "total": 8020, - "source_index": 8020, - "manifest_seed": 8020, + "total": 8035, + "source_index": 8035, + "manifest_seed": 8035, "document_capabilities": 2868, "source_symbols": 23983, "config_resources": 16093, "test_entries": 321, "normalized_sources": 51285, - "dependency_edges": 37160 + "dependency_edges": 37160, + "kinematics_source_files": 35, + "kinematics_config_entries": 264, + "kinematics_hal_entries": 113, + "kinematics_test_files": 6, + "kinematics_graph_entries": 377, + "kinematics_graph_edges": 2784, + "kinematics_oracle_samples": 11 }, - "source_index_sha256": "843e35bb7b4c086453c4d370bbd2d1f20445b13a1a56f7273d4eb13079bae41d", - "manifest_seed_sha256": "1a64bedd3629e665411fb87abb6b5de94eed11456acab305fade6bdec18076fd", + "source_index_sha256": "b0719a9cf1031f7305e29075e645f21aa3c3630401e284825565a8b206c83ce4", + "manifest_seed_sha256": "70cd247690616ca260b111fb737c1277c5336f845acc5ac27160eaf87a7c9f93", "document_capabilities_sha256": "fa5140bd4995224406381e4190e76bf81f64bd24dbf93a2fd10421c45aee4316", "source_symbols_sha256": "5fc72e6a268d2220b6335f7f6834c925f13c5c35461fa399a400e6621958875a", "config_resources_sha256": "d4d02cb13f2f9cb58404630d4de8ac0226e02075166fe30f2b03a6abca4be5bc", @@ -81,8 +88,29 @@ "runtime_mapping_report_sha256": "f4be10828fda8201ff9e69de95bc68e5def42fc7206a851b37474c21b4da0a17", "python_runtime_manifest_sha256": "340faa6ef5bedcaeb0583f463e6b89cb442ddf1d83d7e6ee8d96cee438fe4213", "python_runtime_report_sha256": "be531c8cb5af55f9527b6b6b3955ff908a748fae0e37952fa699aecf1a44b399", - "hal_runtime_report_sha256": "70b99118ae6957456e592512d752aa137f59cae897ec546509ff26456879dd90", - "posemath_runtime_report_sha256": "26b04fb285b5d085a980856fffe5707c2e2ccaeddc08c06f2da2491e76256a39", + "hal_runtime_report_sha256": "85f79be090c5fceb3ee633da0fff57c908604938592c9b2cf6a1b2151b588e6b", + "posemath_runtime_report_sha256": "e9680e09dab67f85736f7f6a3bb6bb4456f5f4c93428f72ee3dc94ed0456face", + "interpreter_runtime_report_sha256": "1ffed00d9f0affbbc55e73ab4dca12b0446af11ea7861dfb7597ebe5e1a6cda2", + "motion_runtime_report_sha256": "fb2d36130bf3168bea9b13fe08cc2225d72190a7aa9c99a0f0db7f148ac171df", + "kinematics_runtime_report_sha256": "7090db32ac2af28e13c115b63ba7b894596efe25d8eec9fc27f097db931fde2c", + "kinematics_source_closure_report_sha256": "d3af5e19e38d8dc2640323dcf755d0323e871815087b9eece9d76544b0b0cfa6", + "kinematics_config_graph_report_sha256": "1c7ffe85730b23ee303beae95c7c565506e7c8f10c7bf68d23b980be22b46521", + "kinematics_oracle_samples_sha256": "df32ade49e3c3beb49e52d26200e37766dd04c5bee5dba4b1c87695439bf87bd", + "kinematics_oracle_report_sha256": "66c98703195c69f165a932aadc29015ab748aa005e8bfc223cb04d9d2f65a1af", + "kinematics_golden_schema_sha256": "8d6abe21ad350bb5a5ddc38d8fd9044ed2fa622f4331804a85cad55eb5a30a63", + "kinematics_abi_contract_sha256": "3177c4d28200c5136981d28489ac4578a84360f9688ee8614e23af8d7526b50b", + "kinematics_mapping_contract_sha256": "49bd93c716bd5b5eb6064f75ea2b8ba26dfa819c6166c22c5375ebeba927dd91", + "kinematics_numeric_policy_sha256": "b78c2b464771083e279689d33d65169e99ef01b08e347a0e75b7486d8d2d0134", + "trivkins_integration_report_sha256": "98c2a61c2fa3503782494768fcb7b0e5a13e998a519ce9b3629549194fa29ef8", + "coupled_kinematics_report_sha256": "696e62679095e831f86b24a34ae4daba69bcab81da47f92e7c4ee680dfcd70fd", + "corexy_hal_report_sha256": "e1e5c03f5d2dc30647b19a59a59ab625d440eb90a522d8e2366050761938064b", + "fiveaxis_kinematics_report_sha256": "5b02508761b7c1d7731e1bf4210563bb289fb8f9860f98ab1aa0a0d316f77369", + "trt_kinematics_report_sha256": "2f655742b5f9de09de903964a4cd85de0391d06ef1e2a35da0d6854f26649b51", + "robot_kinematics_report_sha256": "e3c27bc17b74206038af29fc8f5cc5bc39aca9af161b4f1d2de3be3f9905e5c3", + "genser_kinematics_report_sha256": "9c537fa9d25eb90e10cf594ac960ade29ac3c5dcc4b2a8e0cbef428c147e8e2c", + "delta_kinematics_report_sha256": "c0402979c5783292c9eed353e94c6b308b861457e8fb73a6e6e06882b81939a2", + "tripod_kinematics_report_sha256": "a17e63e50e255ab5ea5bcee6d78796e279f7b0e1c7f753a7963b2ce2b3a787ed", + "genhex_kinematics_report_sha256": "780043fabe9caca0c10554ac7d330fc21e67983177dfe72434dd616a85d8caac", "dependency_closure_sha256": "39ab6b831f4eb53347dbb509855ca05bc557e25abc5d76837c45ce037a3e44a9", "golden_schema_sha256": "5513535b9480d7100ef3ef59ac933c4040bd7198dc419693a7ee68098171c423", "native_runner_report_sha256": "6f2105f154d12b99f4e1cd4af3cdb5df4a462f3665f1447d5959384be5d4fae2", diff --git a/coverage/corexy-hal.report.json b/coverage/corexy-hal.report.json new file mode 100644 index 0000000..367b4c1 --- /dev/null +++ b/coverage/corexy-hal.report.json @@ -0,0 +1,134 @@ +{ + "component": { + "name": "corexy_by_hal", + "period": "fixed HAL tick", + "pins": [ + "j0-motor-pos-cmd", + "j1-motor-pos-cmd", + "alpha-cmd", + "beta-cmd", + "alpha-fb", + "beta-fb", + "j0-motor-pos-fb", + "j1-motor-pos-fb" + ], + "thread": "servo-thread" + }, + "config_scan": { + "alpha_command_to_stepgen": true, + "beta_command_to_stepgen": true, + "component_command_formula": true, + "component_feedback_formula": true, + "hal_and_kins_entries_distinct": true, + "home_j0_before_transform": true, + "home_j1_before_transform": true, + "loadrt_component": true, + "servo_registration": true + }, + "home_semantics": { + "home_inputs": [ + "j0-motor-pos-cmd", + "j1-motor-pos-cmd" + ], + "kins_difference": "corexykins homes motor joints directly", + "reason": "corexy_by_hal.hal routes Cartesian trivkins joint commands to j0home/j1home before alpha/beta stepgens", + "status": "verified" + }, + "implementation_status": "verified", + "native_wasm": { + "byte_identical_json": true, + "native": { + "command": { + "alpha": 4.0, + "beta": 2.0, + "j0": 6.0, + "j1": 2.0 + }, + "feedback": { + "alpha": 4.0, + "beta": 1.0, + "j0": 5.0, + "j1": 3.0 + }, + "function_calls": 1, + "schema": "hal-corexy-sample.v1", + "tick": 1 + }, + "status": "passed", + "wasm": { + "command": { + "alpha": 4.0, + "beta": 2.0, + "j0": 6.0, + "j1": 2.0 + }, + "feedback": { + "alpha": 4.0, + "beta": 1.0, + "j0": 5.0, + "j1": 3.0 + }, + "function_calls": 1, + "schema": "hal-corexy-sample.v1", + "tick": 1 + } + }, + "oracle": { + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "765c8318c48d7570773d22394c625c0d6c479fdf2e98c62fa48296b61e99c238", + "schema": "corexy-hal-report.v1", + "source_records": { + "component": { + "path": "linuxcnc/src/hal/components/corexy_by_hal.comp", + "sha256": "7cb585058976198779600ee1d27f6b4e225a89c1c6ebcc7ba699291c9463e5a8" + }, + "hal": { + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "sha256": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + "hal_header": { + "path": "wasm-core/include/sim_hal.h", + "sha256": "f0b25fda1c267ed8078469c9966fa3b09721eba77c575affea77d489437a3e49" + }, + "hal_source": { + "path": "wasm-core/src/sim_hal.c", + "sha256": "76a057064546a8ee9ba1098952755a4cdc56e6e714f2761b8a1826898d3ae621" + }, + "hal_test": { + "path": "wasm-core/tests/sim_hal_test.c", + "sha256": "5044ed422b37499291ff85fd7c601acc6665621cf33e9ff4d26f0e8fd5b7d533" + }, + "ini": { + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "sha256": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f" + }, + "kins_ini": { + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "sha256": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a" + } + }, + "status": "partial", + "transform": { + "command": { + "alpha": "0.5*(j0+j1)", + "beta": "0.5*(j0-j1)" + }, + "direction": "verified against LinuxCNC corexy_by_hal.comp", + "feedback": { + "j0": "alpha+beta", + "j1": "alpha-beta" + }, + "sample": { + "alpha": 4.0, + "alpha_fb": 4.0, + "beta": 2.0, + "beta_fb": 1.0, + "j0": 6.0, + "j0_fb": 5.0, + "j1": 2.0, + "j1_fb": 3.0 + } + } +} diff --git a/coverage/coupled-kinematics.report.json b/coverage/coupled-kinematics.report.json new file mode 100644 index 0000000..743134a --- /dev/null +++ b/coverage/coupled-kinematics.report.json @@ -0,0 +1,436 @@ +{ + "closure": { + "blocking_reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "cartesian_candidate_ids": [ + "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins" + ], + "coupled_linear_source_ids": [ + "source:linuxcnc/src/emc/kinematics/corexykins.c", + "source:linuxcnc/src/emc/kinematics/rosekins.c" + ], + "max_rotate_source_ids": [ + "linuxcnc/src/emc/kinematics/maxkins.c", + "linuxcnc/src/emc/kinematics/rotatekins.c" + ], + "official_oracle": "blocked" + }, + "configuration_candidate_origin": { + "rotatekins": "workspace_derived_fixture; LinuxCNC locked source has no shipped rotatekins config" + }, + "configuration_candidates": { + "corexy_hal": { + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "sha256": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f" + }, + "corexy_kins": { + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "sha256": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a" + }, + "maxkins": { + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", + "sha256": "ea7d453127122b7831e74de2204b446c514f3c999961a4be412b36880bacb8b6" + }, + "rose": { + "path": "linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini", + "sha256": "0685e9ca8c05c903b715e9fed6ecd23cbac13911ed335b6d14e24eb235de25d3" + }, + "rotatekins": { + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.ini", + "sha256": "324af9a73d21b5f0c9adaf3c97e698422790d403586901f9e161b6020b1fb4fa" + } + }, + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "corexy_entry_distinction": { + "distinct": true, + "hal_component": "linuxcnc/src/hal/components/corexy_by_hal.comp", + "hal_configuration": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "kins_configuration": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini" + }, + "families": { + "corexy": { + "boundary": "configuration coordinate requirements verified", + "forward": "X=0.5*(J0+J1), Y=0.5*(J0-J1), Z=J2", + "round_trip": "verified" + }, + "maxkins": { + "boundary": "pivot_length=0 and pivot_length=0.666 verified", + "forward": "LinuxCNC maxkins pivot/B/C/U/V/W correction formula", + "round_trip": "verified" + }, + "rose": { + "branch_state": "previous quadrant plus revolution count", + "forward": "X=R*cos(theta), Y=R*sin(theta), Z=J1; theta=J2 degrees", + "quadrant_continuity": "verified", + "round_trip": "verified" + }, + "rotatekins": { + "boundary": "90 degree rotation verified", + "forward": "XY rotation by -C degrees; Z and optional axes direct", + "round_trip": "verified" + } + }, + "implementation_status": "verified", + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "report_sha256": "3bcd97e6a87058f42f1653ae896a95b6dad2ca9f149236b75a2d5d699f2e6988", + "samples": { + "byte_identical_json": true, + "native": { + "corexy": { + "inverse": [ + 6.0, + 2.0, + 3.0 + ], + "pose": [ + 4.0, + 2.0, + 3.0 + ], + "state_hash": 15406663564927631605 + }, + "fiveaxiskins": { + "inverse": [ + 10.0, + 20.0, + 30.0, + 35.0, + 40.0, + -2.0, + 20.0 + ], + "pose": [ + 118.967490359, + 111.434580971, + 76.850293016 + ], + "state_hash": 5053227094931014129 + }, + "maxkins": { + "inverse": [ + 3.0, + 4.0, + 5.0, + 0.0, + 30.0, + 90.0 + ], + "pose": [ + -4.0, + 3.0, + 5.0 + ], + "state_hash": 2549915653649577904 + }, + "puma": { + "inverse": [ + 10.0, + 20.0, + -30.0, + 40.0, + 25.0, + -15.0 + ], + "pose": [ + 450.112320486, + 207.114833215, + -612.180622409 + ], + "state_hash": 3161234248163340028 + }, + "rose": { + "branch": 1, + "inverse": [ + 2.0, + 7.0, + 190.0 + ], + "pose": [ + -1.969615506, + -0.347296355, + 7.0 + ], + "state_hash": 15304911204640563299 + }, + "rotatekins": { + "inverse": [ + 3.0, + 4.0, + 5.0, + 0.0, + 0.0, + 90.0 + ], + "pose": [ + 4.0, + -3.0, + 5.0 + ], + "state_hash": 1338350581716392236 + }, + "scara": { + "inverse": [ + -3.644300703, + 40.0, + 25.0, + -31.355699297, + 5.0, + -3.0 + ], + "pose": [ + 590.460310444, + 130.945742721, + 465.0 + ], + "state_hash": 4515826253922604237 + }, + "schema": "kinematics-coupled-samples.v1", + "scorbot": { + "inverse": [ + 25.0, + 35.0, + -20.0, + 10.0, + -5.0 + ], + "pose": [ + 366.786994761, + 171.035584569, + 191.173940759 + ], + "state_hash": 16037922903473574131 + }, + "xyzac_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 142.826706376, + 9.689621386, + 163.102540378 + ], + "state_hash": 4869492769119734977 + }, + "xyzbc_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 44.740352549, + 25.97032557, + 227.67175976 + ], + "state_hash": 1734235358276017152 + } + }, + "wasm": { + "corexy": { + "inverse": [ + 6.0, + 2.0, + 3.0 + ], + "pose": [ + 4.0, + 2.0, + 3.0 + ], + "state_hash": 15406663564927631605 + }, + "fiveaxiskins": { + "inverse": [ + 10.0, + 20.0, + 30.0, + 35.0, + 40.0, + -2.0, + 20.0 + ], + "pose": [ + 118.967490359, + 111.434580971, + 76.850293016 + ], + "state_hash": 5053227094931014129 + }, + "maxkins": { + "inverse": [ + 3.0, + 4.0, + 5.0, + 0.0, + 30.0, + 90.0 + ], + "pose": [ + -4.0, + 3.0, + 5.0 + ], + "state_hash": 2549915653649577904 + }, + "puma": { + "inverse": [ + 10.0, + 20.0, + -30.0, + 40.0, + 25.0, + -15.0 + ], + "pose": [ + 450.112320486, + 207.114833215, + -612.180622409 + ], + "state_hash": 3161234248163340028 + }, + "rose": { + "branch": 1, + "inverse": [ + 2.0, + 7.0, + 190.0 + ], + "pose": [ + -1.969615506, + -0.347296355, + 7.0 + ], + "state_hash": 15304911204640563299 + }, + "rotatekins": { + "inverse": [ + 3.0, + 4.0, + 5.0, + 0.0, + 0.0, + 90.0 + ], + "pose": [ + 4.0, + -3.0, + 5.0 + ], + "state_hash": 1338350581716392236 + }, + "scara": { + "inverse": [ + -3.644300703, + 40.0, + 25.0, + -31.355699297, + 5.0, + -3.0 + ], + "pose": [ + 590.460310444, + 130.945742721, + 465.0 + ], + "state_hash": 4515826253922604237 + }, + "schema": "kinematics-coupled-samples.v1", + "scorbot": { + "inverse": [ + 25.0, + 35.0, + -20.0, + 10.0, + -5.0 + ], + "pose": [ + 366.786994761, + 171.035584569, + 191.173940759 + ], + "state_hash": 16037922903473574131 + }, + "xyzac_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 142.826706376, + 9.689621386, + 163.102540378 + ], + "state_hash": 4869492769119734977 + }, + "xyzbc_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 44.740352549, + 25.97032557, + 227.67175976 + ], + "state_hash": 1734235358276017152 + } + } + }, + "schema": "coupled-kinematics-report.v1", + "source_records": { + "corexy": { + "path": "linuxcnc/src/emc/kinematics/corexykins.c", + "sha256": "507963e0ed464440fa530db11b1b15c6a663182eb016855d105554ae8125ae5b" + }, + "maxkins": { + "path": "linuxcnc/src/emc/kinematics/maxkins.c", + "sha256": "01529e0db1b698af621d63c30bc8ae382757dd367f3e4babc9b959873344b4e7" + }, + "rose": { + "path": "linuxcnc/src/emc/kinematics/rosekins.c", + "sha256": "1de39affa6b99f21c5e902fc67c8b1d8876d44fc8eff920afd816d7f956cfd78" + }, + "rotatekins": { + "path": "linuxcnc/src/emc/kinematics/rotatekins.c", + "sha256": "b104c7e0eb726f48b83daa4d596db5ca8021d803ab17dd123db9b9410ce5f47c" + } + }, + "state_hash": { + "native": { + "corexy": 15406663564927631605, + "maxkins": 2549915653649577904, + "rose": 15304911204640563299, + "rotatekins": 1338350581716392236 + }, + "stable": true, + "wasm": { + "corexy": 15406663564927631605, + "maxkins": 2549915653649577904, + "rose": 15304911204640563299, + "rotatekins": 1338350581716392236 + } + }, + "status": "partial" +} diff --git a/coverage/delta-kinematics.report.json b/coverage/delta-kinematics.report.json new file mode 100644 index 0000000..a7dffff --- /dev/null +++ b/coverage/delta-kinematics.report.json @@ -0,0 +1,361 @@ +{ + "configuration_candidate_count": 4, + "configuration_candidates": { + "linear_axis": { + "hal_files": [ + "sim_ldelta.hal", + "axis_manualtoolchange.hal" + ], + "kinematics": "lineardeltakins", + "missing_hal_files": [ + "linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "linuxcnc/configs/sim/axis/sim_ldelta.hal" + ], + "path": "linuxcnc/configs/sim/axis/ldelta.ini", + "sha256": "1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c" + }, + "linear_demo": { + "hal_files": [ + "sim_ldelta.hal", + "axis_manualtoolchange.hal" + ], + "kinematics": "lineardeltakins", + "missing_hal_files": [ + "linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "linuxcnc/configs/sim/axis/sim_ldelta.hal" + ], + "path": "linuxcnc/configs/sim/axis/ldelta_demo.ini", + "sha256": "ab0645308abe903bf66f36a328b43303aa0e8ad2d19e69a45e2703d665956439" + }, + "linear_tklinuxcnc": { + "hal_files": [ + "sim_ldelta.hal", + "axis_manualtoolchange.hal" + ], + "kinematics": "lineardeltakins", + "missing_hal_files": [ + "linuxcnc/configs/sim/tklinuxcnc/axis_manualtoolchange.hal", + "linuxcnc/configs/sim/tklinuxcnc/sim_ldelta.hal" + ], + "path": "linuxcnc/configs/sim/tklinuxcnc/ldelta.ini", + "sha256": "0e23dee0f4df839c028f5bfba95c5941f2f8623ce502d6fdfc90dfdef63d8967" + }, + "rotary_axis": { + "hal_files": [ + "sim_rdelta.hal", + "axis_manualtoolchange.hal" + ], + "kinematics": "rotarydeltakins", + "missing_hal_files": [ + "linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "linuxcnc/configs/sim/axis/sim_rdelta.hal" + ], + "path": "linuxcnc/configs/sim/axis/rdelta.ini", + "sha256": "53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508" + } + }, + "families": { + "linear_delta": { + "configuration_candidates": [ + "linear_axis", + "linear_demo", + "linear_tklinuxcnc" + ], + "forward": "three carriage spheres -> quadratic platform root", + "inverse": "three carriage heights from sphere intersections", + "module": "lineardeltakins" + }, + "rotary_delta": { + "configuration_candidates": [ + "rotary_axis" + ], + "forward": "three rotary knee constraints -> quadratic platform root", + "inverse": "three rotated leg intersections", + "module": "rotarydeltakins" + } + }, + "geometry": { + "linear": { + "radius": 130.25, + "rod_length": 269.0, + "tower_layout": "120-degree equilateral", + "units": "mm" + }, + "rotary": { + "foot_radius": 6.0, + "joint_units": "degrees", + "platform_radius": 10.0, + "shin_length": 14.0, + "thigh_length": 10.0 + } + }, + "implementation_status": "verified", + "mapping": { + "coordinates": "XYZ", + "extra_joint_policy": "prefix only; extra joints rejected by count", + "kinematics_joint_count": 3, + "optional_axes": "A/B/C/U/V/W pass through" + }, + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "blocked_samples": [ + "linear nominal/root", + "linear alternate root", + "linear no-solution", + "linear joint-limit", + "rotary nominal/root", + "rotary alternate root", + "rotary z=0 singular" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "a585edd0895eefb4add8753927a33b60cae806e814623830df39f396787cd2e3", + "resource_gaps": { + "missing_hal_files": [ + "linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "linuxcnc/configs/sim/axis/sim_ldelta.hal", + "linuxcnc/configs/sim/axis/sim_rdelta.hal", + "linuxcnc/configs/sim/tklinuxcnc/axis_manualtoolchange.hal", + "linuxcnc/configs/sim/tklinuxcnc/sim_ldelta.hal" + ], + "policy": "retained as missing inputs; no configuration smoke is promoted to numeric golden" + }, + "samples": { + "byte_identical_json": true, + "native": { + "delta_edges": { + "lineardelta": { + "alternate_branch": 1, + "alternate_pose": [ + -0.0, + -0.0, + 535.363415806 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "limit_error": -702, + "no_solution": -702 + }, + "rotarydelta": { + "alternate_branch": 1, + "alternate_pose": [ + -0.0, + -0.0, + 0.320396615 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "singular": -704 + }, + "tripod": { + "alternate_branch": 1, + "alternate_pose": [ + 2.0, + 3.0, + -4.0 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "limit_error": -702, + "no_solution": -702, + "singular": -704 + } + }, + "lineardelta": { + "inverse": [ + 300.0, + 300.0, + 300.0 + ], + "pose": [ + 0.0, + 0.0, + 64.636584194 + ], + "state_hash": 10022623683197000937 + }, + "rotarydelta": { + "inverse": [ + 10.0, + 10.0, + 10.0 + ], + "pose": [ + 0.0, + 0.0, + -3.793360169 + ], + "state_hash": 14346691006498560820 + } + }, + "state_hash_identical": true, + "wasm": { + "delta_edges": { + "lineardelta": { + "alternate_branch": 1, + "alternate_pose": [ + -0.0, + -0.0, + 535.363415806 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "limit_error": -702, + "no_solution": -702 + }, + "rotarydelta": { + "alternate_branch": 1, + "alternate_pose": [ + -0.0, + -0.0, + 0.320396615 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "singular": -704 + }, + "tripod": { + "alternate_branch": 1, + "alternate_pose": [ + 2.0, + 3.0, + -4.0 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "limit_error": -702, + "no_solution": -702, + "singular": -704 + } + }, + "lineardelta": { + "inverse": [ + 300.0, + 300.0, + 300.0 + ], + "pose": [ + 0.0, + 0.0, + 64.636584194 + ], + "state_hash": 10022623683197000937 + }, + "rotarydelta": { + "inverse": [ + 10.0, + 10.0, + 10.0 + ], + "pose": [ + 0.0, + 0.0, + -3.793360169 + ], + "state_hash": 14346691006498560820 + } + } + }, + "schema": "delta-kinematics-report.v1", + "solver": { + "alternate_root_flag": "SIM_KIN_DELTA_ALTERNATE_ROOT bit 0", + "convergence_tolerance": 0.0, + "default_root": 0, + "fixed_iteration_limit": 0, + "forward": "analytic quadratic intersection", + "inverse": "three independent leg intersections" + }, + "source_records": { + "header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "43e588f7c45c703970598e8e42ff5aae4b97a437eaff1d4cd6ad156bd204edc7" + }, + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "f15842a1dbf0cb33f071ee1e70715a85a1f3dec44c4facc220edd924f6ca352c" + }, + "linear_c": { + "path": "linuxcnc/src/emc/kinematics/lineardeltakins.c", + "sha256": "792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748" + }, + "linear_cc": { + "path": "linuxcnc/src/emc/kinematics/lineardeltakins.cc", + "sha256": "77634457a4dd3f5617f91a66651965c5b8326fc0d4dfc916d9cd63b89b0ec0f1" + }, + "linear_common": { + "path": "linuxcnc/src/emc/kinematics/lineardeltakins-common.h", + "sha256": "7785bcd7d095b431169cdd0f753c177ece643ee825f7ff4b8cdb6f8cd4706df8" + }, + "rotary_c": { + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins.c", + "sha256": "64c8aeb6998a481f3c26743093dd157d2d22dc6769b258e3e6012b5c1f784773" + }, + "rotary_cc": { + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins.cc", + "sha256": "7e2fd63a2a7f5718d706faa21f903b36007226b065ad6d234631d2514f653618" + }, + "rotary_common": { + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins-common.h", + "sha256": "ba3e037fe2ad7eba29aa2b657492ac83f1979a38c9249fef52e598ba0d5c9136" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "00d9efc3c701ba2848535357f6027e6d9d4d19796a17be96e290ddc0babe2c5c" + } + }, + "status": "partial", + "workspace_and_boundaries": { + "linear": { + "alternate_branch": 1, + "alternate_root_pose": [ + -0.0, + -0.0, + 535.363415806 + ], + "geometry_error": -703, + "iterations": 0, + "joint_limit_error": -702, + "no_solution_error": -702, + "nominal": [ + 0.0, + 0.0, + 64.636584194 + ], + "root_branch": 0 + }, + "rotary": { + "alternate_branch": 1, + "alternate_root_pose": [ + -0.0, + -0.0, + 0.320396615 + ], + "geometry_error": -703, + "iterations": 0, + "nominal": [ + 0.0, + 0.0, + -3.793360169 + ], + "root_branch": 0, + "singular_error": -704 + } + } +} diff --git a/coverage/fiveaxis-kinematics.report.json b/coverage/fiveaxis-kinematics.report.json new file mode 100644 index 0000000..a32757c --- /dev/null +++ b/coverage/fiveaxis-kinematics.report.json @@ -0,0 +1,105 @@ +{ + "boundary": { + "duplicate_axis_suffix": "verified", + "missing_required_coordinate": "SIM_KIN_ERR_CONFIGURATION verified", + "pivot_length": "250.0 verified", + "round_trip": "verified", + "state_hash": "native/WASM identical" + }, + "configuration": { + "coordinates": "xyzbcwy", + "duplicate_axis": "Y at joint 1 and suffix joint 6; first-wins mapping with suffix synchronized", + "joints": 7, + "kinematics": "5axiskins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "pivot_length_default": 250.0, + "required_coordinates": "XYZBCW", + "scan": { + "joint_count": true, + "kins_entry": true, + "pivot_pin": true + } + }, + "formula": { + "forward": "X=JX+r*sin(180-B)*cos(C), Y=JY+r*sin(180-B)*sin(C), Z=JZ+pivot+r*cos(180-B)", + "inverse": "subtract the same spherical vector, then map pose to coordinates", + "source_contains_required_coordinates": true, + "source_spherical_helper": "s2r" + }, + "implementation_status": "verified", + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "d0af8c3785d87bedd869d235f45b9d522434589a26794113b1acf8526982dde0", + "sample": { + "byte_identical_json": true, + "native": { + "inverse": [ + 10.0, + 20.0, + 30.0, + 35.0, + 40.0, + -2.0, + 20.0 + ], + "pose": [ + 118.967490359, + 111.434580971, + 76.850293016 + ], + "state_hash": 5053227094931014129 + }, + "wasm": { + "inverse": [ + 10.0, + 20.0, + 30.0, + 35.0, + 40.0, + -2.0, + 20.0 + ], + "pose": [ + 118.967490359, + 111.434580971, + 76.850293016 + ], + "state_hash": 5053227094931014129 + } + }, + "schema": "fiveaxis-kinematics-report.v1", + "source_records": { + "config": { + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "sha256": "789ba656f8ee3e97feba07b58eb242305898e745795891b1a7e536289bffe6bf" + }, + "hal": { + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal", + "sha256": "a59e6b9432c0a898f6d8da46309b868733a906158733fb0942017d14eb97cd07" + }, + "header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "db16293ec3645559a0be71a40963693f3d1e3f5fdedc92902be19b47f653dfa8" + }, + "source": { + "path": "linuxcnc/src/emc/kinematics/5axiskins.c", + "sha256": "2e29fee21936cfbbafbb000290276e4b32eaba4831014e08d3fb833f2b3dac72" + }, + "source_impl": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "7a77915c59f190bcbe5c93d8f53498745bfcf978c167ba8878a21b914f9401fd" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "ceeb8b4100d034d76e70ce675d78b2d62c51e8e70be2205a9c8ae02e105a6aa6" + } + }, + "status": "partial" +} diff --git a/coverage/genhex-kinematics.report.json b/coverage/genhex-kinematics.report.json new file mode 100644 index 0000000..98b4848 --- /dev/null +++ b/coverage/genhex-kinematics.report.json @@ -0,0 +1,333 @@ +{ + "configuration_candidate": { + "coordinates": "XYZABC", + "hal_geometry": { + "base": [ + -22.95, + 13.25, + 0.0, + 22.95, + 13.25, + 0.0, + 22.95, + 13.25, + 0.0, + 0.0, + -26.5, + 0.0, + 0.0, + -26.5, + 0.0, + -22.95, + 13.25, + 0.0 + ], + "platform": [ + -1.0, + 11.5, + 0.0, + 1.0, + 11.5, + 0.0, + 10.459, + -4.884, + 0.0, + 9.459, + -6.616, + 0.0, + -9.459, + -6.616, + 0.0, + -10.459, + -4.884, + 0.0 + ] + }, + "hal_pins": [ + "last-iterations", + "max-iterations", + "limit-iterations", + "max-error", + "convergence-criterion", + "fwd-kins-fail", + "x", + "y", + "z", + "a", + "b", + "c" + ], + "joints": 6, + "kinematics": "genhexkins", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "scan": true + }, + "geometry": { + "base_points": [ + [ + -22.95, + 13.25, + 0.0 + ], + [ + 22.95, + 13.25, + 0.0 + ], + [ + 22.95, + 13.25, + 0.0 + ], + [ + 0.0, + -26.5, + 0.0 + ], + [ + 0.0, + -26.5, + 0.0 + ], + [ + -22.95, + 13.25, + 0.0 + ] + ], + "platform_points": [ + [ + -1.0, + 11.5, + 0.0 + ], + [ + 1.0, + 11.5, + 0.0 + ], + [ + 10.459, + -4.884, + 0.0 + ], + [ + 9.459, + -6.616, + 0.0 + ], + [ + -9.459, + -6.616, + 0.0 + ], + [ + -10.459, + -4.884, + 0.0 + ] + ], + "struts": 6, + "units": "configuration units; XYZ linear and ABC degrees" + }, + "implementation_status": "verified", + "mapping": { + "coordinates": "XYZABC", + "extra_joint_policy": "rejected", + "joint_semantics": [ + "strut-0", + "strut-1", + "strut-2", + "strut-3", + "strut-4", + "strut-5" + ], + "kinematics_joint_count": 6 + }, + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "blocked_samples": [ + "nominal six-leg pose", + "alternate initial seed", + "nonpositive strut", + "iteration limit", + "maximum error", + "singular Jacobian", + "joint limit" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "992b96bae770789e6013cfffaeb3c47d8ecfde24d7abe974987e66250921ea78", + "samples": { + "byte_identical_json": true, + "native": { + "boundaries": { + "alternate_branch": 1, + "alternate_pose": [ + 10.0, + -5.0, + -60.0 + ], + "alternate_status": 0, + "branch": 0, + "iteration_limit": -702, + "iterations": 14, + "limit_error": -702, + "max_error": -702, + "nonpositive": -702, + "residual": 8.57e-10, + "singular": -704 + }, + "genhex": { + "inverse": [ + 68.274402001, + 63.00792855, + 63.783820692, + 65.475127133, + 60.456723205, + 68.231500501 + ], + "iterations": 14, + "pose": [ + 10.0, + -5.0, + 60.0, + 4.999999999, + -3.000000001, + 10.0 + ], + "residual": 8.57e-10, + "state_hash": 11890997469032613683 + } + }, + "state_hash_identical": true, + "wasm": { + "boundaries": { + "alternate_branch": 1, + "alternate_pose": [ + 10.0, + -5.0, + -60.0 + ], + "alternate_status": 0, + "branch": 0, + "iteration_limit": -702, + "iterations": 14, + "limit_error": -702, + "max_error": -702, + "nonpositive": -702, + "residual": 8.57e-10, + "singular": -704 + }, + "genhex": { + "inverse": [ + 68.274402001, + 63.00792855, + 63.783820692, + 65.475127133, + 60.456723205, + 68.231500501 + ], + "iterations": 14, + "pose": [ + 10.0, + -5.0, + 60.0, + 4.999999999, + -3.000000001, + 10.0 + ], + "residual": 8.57e-10, + "state_hash": 11890997469032613683 + } + } + }, + "schema": "genhex-kinematics-report.v1", + "solver": { + "alternate_seed_flag": "SIM_KIN_GENHEX_ALTERNATE_SEED bit 1", + "default_convergence_tolerance": 1e-09, + "default_iteration_limit": 120, + "default_max_error": 500.0, + "forward": "Newton-Raphson 6x6 Jacobian", + "inverse": "closed-form six strut lengths", + "seed": [ + 0.0, + 0.0, + 50.0, + 0.0, + 0.0, + 0.0 + ] + }, + "source_records": { + "config": { + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "sha256": "362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea" + }, + "hal": { + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal", + "sha256": "6dd6d63e0403dcc0c82b43790eaa5b4a4d639c5a02391ac1dcd5673969c4ec39" + }, + "header": { + "path": "linuxcnc/src/emc/kinematics/genhexkins.h", + "sha256": "580a2e1703a5c0efb683b4a26f805af434edcfe9d1ade7890e44307f8b0b236c" + }, + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "6abae835c16feb27ec1dc28a9ea5384f0bc5190217ba04a4997048d83066b905" + }, + "kinematics_header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "939d4088d9e7120e4a405be154eb3d98cd4e5925fc27d47641c115624c1bd994" + }, + "source": { + "path": "linuxcnc/src/emc/kinematics/genhexkins.c", + "sha256": "8df3d8bd812e040a06bc29ea91625fd143bacf26903b106ae6700430aca7f6b9" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "c9e4d20973c6a487787504bd5de9a73829f53d8bbfd35f91e72c6c62c76f191e" + } + }, + "status": "partial", + "workspace_and_boundaries": { + "alternate_seed": [ + 10.0, + -5.0, + -60.0 + ], + "iteration_limit_error": -702, + "iterations": 14, + "joint_limit_error": -702, + "max_error_boundary": -702, + "nominal": { + "inverse": [ + 68.274402001, + 63.00792855, + 63.783820692, + 65.475127133, + 60.456723205, + 68.231500501 + ], + "iterations": 14, + "pose": [ + 10.0, + -5.0, + 60.0, + 4.999999999, + -3.000000001, + 10.0 + ], + "residual": 8.57e-10, + "state_hash": 11890997469032613683 + }, + "nonpositive_joint_error": -702, + "residual": 8.57e-10, + "singular_jacobian_error": -704 + } +} diff --git a/coverage/genser-kinematics.report.json b/coverage/genser-kinematics.report.json new file mode 100644 index 0000000..ec932ab --- /dev/null +++ b/coverage/genser-kinematics.report.json @@ -0,0 +1,132 @@ +{ + "boundaries": { + "fixed_iteration_limit": "verified", + "invalid_DH_nonfinite": "SIM_KIN_ERR_NONFINITE verified", + "state_hash": "native/WASM identical after 1e-9 quantization" + }, + "configuration_candidates": { + "melfa": { + "dh_source": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal", + "kinematics": "genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "scan": true + }, + "puma560": { + "dh_source": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", + "kinematics": "genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "scan": true + } + }, + "dh_contract": { + "alpha_units": "radians from HAL pins", + "joint_count": 6, + "joint_units": "degrees at public ABI, radians internally", + "melfa_has_alpha_and_d": true, + "parameters": [ + "A-0..5", + "ALPHA-0..5", + "D-0..5" + ], + "puma_has_alpha_and_d": true + }, + "implementation_status": "verified", + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "fc6c23f67b2a14b58735fa60ed884a5a73815c3efb26f1b4d0de427e882d67b8", + "samples": { + "byte_identical_json": true, + "native": { + "inverse": [ + 0.0, + 10.0, + -20.0, + 29.999999999, + 15.0, + -9.999999999 + ], + "iterations": 0, + "pose": [ + 619.051467462, + 30.4112378, + -349.855537721 + ], + "residual": 0.0, + "state_hash": 13985782206955965200 + }, + "wasm": { + "inverse": [ + 0.0, + 10.0, + -20.0, + 29.999999999, + 15.0, + -9.999999999 + ], + "iterations": 0, + "pose": [ + 619.051467462, + 30.4112378, + -349.855537721 + ], + "residual": 0.0, + "state_hash": 13985782206955965200 + } + }, + "schema": "genser-kinematics-report.v1", + "solver": { + "convergence_tolerance": 1e-07, + "forward": "Craig DH homogeneous product", + "inverse": "fixed-zero seed damped numerical Jacobian with 1e-4 degree finite difference", + "iterations": 0, + "max_iterations": 200, + "nonconvergence": "SIM_KIN_ERR_SINGULAR after fixed iteration limit", + "residual": 0.0 + }, + "source_records": { + "functions": { + "path": "linuxcnc/src/emc/kinematics/genserfuncs.c", + "sha256": "e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781" + }, + "header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "5fd01043d705486b0d365e36109c3b0e0d39f220c2cec313b5b747dca06148bc" + }, + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "41fc146ab88a623b5bc6afbba1fc0d12434689c737426da12fcd297162672749" + }, + "melfa_config": { + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "sha256": "7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7" + }, + "melfa_dh": { + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal", + "sha256": "0d943182e37da99ae99db53f3dd464cb9b62b17d4cabe56c35c0c27b43bf68c6" + }, + "puma_config": { + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "sha256": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c" + }, + "puma_dh": { + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", + "sha256": "23758eb7a6a4abe116e1de88140d04e6c9a910d1c378f019d76843a5a3fb6141" + }, + "source": { + "path": "linuxcnc/src/emc/kinematics/genserkins.c", + "sha256": "cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "6c803de9aeb91499cef391620f17c7da69ee78a873b43b0ba9fa508fd096f31a" + } + }, + "status": "partial" +} diff --git a/coverage/hal-runtime.report.json b/coverage/hal-runtime.report.json index c92b4bb..25602e6 100644 --- a/coverage/hal-runtime.report.json +++ b/coverage/hal-runtime.report.json @@ -5,5 +5,8 @@ "fixed_tick_scheduler": true, "max_period_ticks": 1000000, "native_tests": ["sim_hal_test"], + "wasm_tests": ["sim_hal_wasm_test"], + "static_components": ["corexy_by_hal"], + "corexy_transform": "coverage/corexy-hal.report.json", "real_excluded": ["hardware_driver", "linux_realtime_kernel", "host_device_access"] } diff --git a/coverage/interpreter-runtime.report.json b/coverage/interpreter-runtime.report.json new file mode 100644 index 0000000..b37c368 --- /dev/null +++ b/coverage/interpreter-runtime.report.json @@ -0,0 +1,361 @@ +{ + "canonical": { + "block_hash": "fnv1a64 over input bytes", + "byte_identical": true, + "deterministic_runs": 2, + "format": "fixed-order JSON with IEEE-754 binary64 %.17g values", + "state_hash": "fnv1a64 over explicit state fields", + "state_hash_identical": true + }, + "error_boundaries": [ + "argument", + "nonfinite", + "syntax", + "range", + "unknown_code", + "state", + "buffer" + ], + "golden_tolerance": "exact_for_supported_words", + "implementation": "linuxcnc/src/emc/rs274ngc", + "inputs": { + "bytes": 1133481, + "file_count": 55, + "files": [ + { + "bytes": 2058, + "path": "linuxcnc/src/emc/rs274ngc/Submakefile", + "sha256": "9a684add8b229eab90fe047ff3b5c7c18cfdbe96c7a2926a9c94518d12bcfbbc" + }, + { + "bytes": 5174, + "path": "linuxcnc/src/emc/rs274ngc/array1.hh", + "sha256": "352f170d36ba34c57efb4a7b5739de29740234821b47b02fc6bdf9261b9e45b9" + }, + { + "bytes": 619, + "path": "linuxcnc/src/emc/rs274ngc/boost_pyenum_macros.hh", + "sha256": "ae537267442894365ba483c66da60d86e28d39f31a493fd698650d9e7765b14e" + }, + { + "bytes": 13230, + "path": "linuxcnc/src/emc/rs274ngc/canonmodule.cc", + "sha256": "7b47e3f67c8f4a4370b2957cc3bf6e17ae0820a2853f4febc9ec9598627c6acd" + }, + { + "bytes": 44952, + "path": "linuxcnc/src/emc/rs274ngc/gcodemodule.cc", + "sha256": "de4fed54839271a850898123958acafddab17995a102597814a90452e24441a9" + }, + { + "bytes": 17113, + "path": "linuxcnc/src/emc/rs274ngc/interp_arc.cc", + "sha256": "86a31b1110506a992c846c0333a5443da88ed82800e94df879688d6493664c42" + }, + { + "bytes": 13874, + "path": "linuxcnc/src/emc/rs274ngc/interp_array.cc", + "sha256": "590f39ac0344aa2d3f4344565f5a73328ae305432a6c0f2d48557ef298bb6715" + }, + { + "bytes": 2181, + "path": "linuxcnc/src/emc/rs274ngc/interp_array_types.hh", + "sha256": "1898b92511dbe3052fd765100b9ef95b65c62903cba9188b3f918f8725b16155" + }, + { + "bytes": 2270, + "path": "linuxcnc/src/emc/rs274ngc/interp_base.cc", + "sha256": "1b6dc7c836bcb2bcfdb66975320458894ed6a1a1a90d9d4f6b4af938408e0366" + }, + { + "bytes": 2945, + "path": "linuxcnc/src/emc/rs274ngc/interp_base.hh", + "sha256": "cf57996a4549a8d001b346892e4fa88de0008e83681e429040a21635aa06337b" + }, + { + "bytes": 16098, + "path": "linuxcnc/src/emc/rs274ngc/interp_check.cc", + "sha256": "241b4778d5ab0939d695ad07e0b4b177750731e17e29d2406e8781ad7adfc2e2" + }, + { + "bytes": 243966, + "path": "linuxcnc/src/emc/rs274ngc/interp_convert.cc", + "sha256": "50cff00c7760e51ebdd1afc8bafb863fe3f0559976313a21fccdc0a002a321f6" + }, + { + "bytes": 89996, + "path": "linuxcnc/src/emc/rs274ngc/interp_cycles.cc", + "sha256": "eaced8d8f33fb7840b6b345fcb1ad9ea3ba46003599ba4ee98aebc1e98d8ccc2" + }, + { + "bytes": 13102, + "path": "linuxcnc/src/emc/rs274ngc/interp_execute.cc", + "sha256": "a7787d0ae340184f1fe5055ec52dee054a0e67626db6ecfe55418e3e4c99b53c" + }, + { + "bytes": 27920, + "path": "linuxcnc/src/emc/rs274ngc/interp_find.cc", + "sha256": "35ec59cca1711f5ae1b99e7effe5cde18fcad998e3180324ee87a5a0815ffcfb" + }, + { + "bytes": 1016, + "path": "linuxcnc/src/emc/rs274ngc/interp_fwd.hh", + "sha256": "2fe42f0fed1247b400dd946cd976d2ca83707d33e05cdbe223ebcca6a862e9e9" + }, + { + "bytes": 33574, + "path": "linuxcnc/src/emc/rs274ngc/interp_g7x.cc", + "sha256": "27648c21410e3a85d26b684ad2bd6604fcd6317a429bf799744fb718fa0760da" + }, + { + "bytes": 1382, + "path": "linuxcnc/src/emc/rs274ngc/interp_inspection.cc", + "sha256": "1d3417b4e420f89b7d09dd719e976b68ff39860df8ba374724c1a821cf0df354" + }, + { + "bytes": 1224, + "path": "linuxcnc/src/emc/rs274ngc/interp_inspection.hh", + "sha256": "d6add770b4cf94c8cb05578b349ce9928c57c55476e8f2b551f10e0ba018e81e" + }, + { + "bytes": 15598, + "path": "linuxcnc/src/emc/rs274ngc/interp_internal.cc", + "sha256": "6276d990a7ebaec6a5a793f5d0f49364a32e69db4f770d11627b9ea6dc45e809" + }, + { + "bytes": 33425, + "path": "linuxcnc/src/emc/rs274ngc/interp_internal.hh", + "sha256": "619832fceccf05aba18e84a4bf9b15b47f2ce80ef1cb5f1a3fe737fcd1d05781" + }, + { + "bytes": 5015, + "path": "linuxcnc/src/emc/rs274ngc/interp_inverse.cc", + "sha256": "c3d02097143a11b2d27b84c05da906250e8b8f42c3ce6b6b3eb9c7f7514344d7" + }, + { + "bytes": 28616, + "path": "linuxcnc/src/emc/rs274ngc/interp_namedparams.cc", + "sha256": "35e1a40ec555052d6895fa53ba4fc013c835456771f01522218dc006e67396ca" + }, + { + "bytes": 39144, + "path": "linuxcnc/src/emc/rs274ngc/interp_o_word.cc", + "sha256": "32f3722cb7bb90eb7db4cf5c82d3781c6880a1e7810107c2365edec7e9520d8c" + }, + { + "bytes": 5304, + "path": "linuxcnc/src/emc/rs274ngc/interp_parameter_def.hh", + "sha256": "95979af5cd58188d01fd02c33ac3b85472c8fd4a31041e531e785d9d6d2594da" + }, + { + "bytes": 10063, + "path": "linuxcnc/src/emc/rs274ngc/interp_python.cc", + "sha256": "4872d5d58902e370f856c1b516f2f0c6d4693544f4493d62dd247422aeb2a26e" + }, + { + "bytes": 609, + "path": "linuxcnc/src/emc/rs274ngc/interp_python.hh", + "sha256": "d8aa266335990d1c3a29549a00c99f195526ceee6190d869c17c64b11596fdda" + }, + { + "bytes": 25017, + "path": "linuxcnc/src/emc/rs274ngc/interp_queue.cc", + "sha256": "71bb7350c6933fa7b6f6c964e5cb4fa88e4f56444142f87381e611a77eec77ba" + }, + { + "bytes": 4513, + "path": "linuxcnc/src/emc/rs274ngc/interp_queue.hh", + "sha256": "c78f0e9ddb5fcbccf168c92d58fbf2a8600d62dee515af7f68347bcb0dafa64d" + }, + { + "bytes": 123494, + "path": "linuxcnc/src/emc/rs274ngc/interp_read.cc", + "sha256": "72473355a0a1cef08bf922ee4d8b89f46210397957f9b1336254223eae66e116" + }, + { + "bytes": 17533, + "path": "linuxcnc/src/emc/rs274ngc/interp_remap.cc", + "sha256": "e0891ff3133f7e2a3fc6ff76542f102bc8f46887e27fc8aa8117208fc8cd066b" + }, + { + "bytes": 5616, + "path": "linuxcnc/src/emc/rs274ngc/interp_setup.cc", + "sha256": "f80e7793e21d62db33cd45cb0c7b9d242a74aac07dc8171a1102734e9c40e23f" + }, + { + "bytes": 11421, + "path": "linuxcnc/src/emc/rs274ngc/interp_write.cc", + "sha256": "03e6a28345f714af9656355c5c6cbb6e132db431f0c6ca9568d5be8c3081eea0" + }, + { + "bytes": 39664, + "path": "linuxcnc/src/emc/rs274ngc/interpmodule.cc", + "sha256": "96e11690c472e679525c911b350db603b7869f41a3dd79b984b99fd134561fb1" + }, + { + "bytes": 684, + "path": "linuxcnc/src/emc/rs274ngc/meson.build", + "sha256": "98c1f76f3e1f9d4a0a0d78362a7aa85eb15e528bf1b79a0d7b4e7306a933a4d9" + }, + { + "bytes": 1891, + "path": "linuxcnc/src/emc/rs274ngc/modal_state.cc", + "sha256": "2d28d76c8ca636594f4e83d25ae53365bfe733bd3b3af5673343f41e9a7130c8" + }, + { + "bytes": 1962, + "path": "linuxcnc/src/emc/rs274ngc/modal_state.hh", + "sha256": "14459b9fab3d5818682f948b1411cff27bd36a7dbbf2cc9144ee1f365e5fbe0e" + }, + { + "bytes": 33231, + "path": "linuxcnc/src/emc/rs274ngc/nurbs_additional_functions.cc", + "sha256": "64225f521e4067420cfa773dc93061fea198e3c8a9fc5937b62a6bcc76e80e30" + }, + { + "bytes": 1436, + "path": "linuxcnc/src/emc/rs274ngc/paramclass.hh", + "sha256": "24d3d283359a9dc063dfeaf37b8a3105079df7ea4d89adb7553cabcba708d34d" + }, + { + "bytes": 2544, + "path": "linuxcnc/src/emc/rs274ngc/pyarrays.cc", + "sha256": "00f6fc2eadb0426f2fb54443b097d13a79c1899e8cdcc98b6d873f35f9688a55" + }, + { + "bytes": 5418, + "path": "linuxcnc/src/emc/rs274ngc/pyblock.cc", + "sha256": "e1861749e7eb4e2d6e9b5c212f48f5ec452be3a76af1fe66ea6b47b410aafbd2" + }, + { + "bytes": 4067, + "path": "linuxcnc/src/emc/rs274ngc/pyemctypes.cc", + "sha256": "855ec693fb86f75b3d420808ce29691d01d09d9a664315def5cf79ed2b24d4af" + }, + { + "bytes": 4550, + "path": "linuxcnc/src/emc/rs274ngc/pyinterp1.cc", + "sha256": "c1db7bae54730c987a466c81f23307ec33a5cd65fd07623fa5f473f2f455e4c2" + }, + { + "bytes": 4338, + "path": "linuxcnc/src/emc/rs274ngc/pyparamclass.cc", + "sha256": "e685ca3ba693bd8f329bcc4dedd7b36d05db2556fc51a09e6549f4d9dbeebb88" + }, + { + "bytes": 2392, + "path": "linuxcnc/src/emc/rs274ngc/rs274ngc.hh", + "sha256": "00c303490e8c44133603eeb1d661b16678468818b8e25f75adda981b3a757e57" + }, + { + "bytes": 31741, + "path": "linuxcnc/src/emc/rs274ngc/rs274ngc_interp.hh", + "sha256": "c8bbcaa7a9545aa80055459dd3217a0b91bbc3ec034791752b5b25dea0c46fe0" + }, + { + "bytes": 94199, + "path": "linuxcnc/src/emc/rs274ngc/rs274ngc_pre.cc", + "sha256": "73935d127557c0e8f9da6267f629351ec5198fbce05c665c678819383901d61b" + }, + { + "bytes": 16799, + "path": "linuxcnc/src/emc/rs274ngc/rs274ngc_return.hh", + "sha256": "183974f6b7a15bf7e1578cf07d2a2ede1b188427d52368105ba7e9d28af96b7c" + }, + { + "bytes": 1582, + "path": "linuxcnc/src/emc/rs274ngc/units.h", + "sha256": "a2d9148bab60dbb6f2ea41bd7b13ccd44986568b805711e0a12a6aff23c39a08" + }, + { + "bytes": 1282, + "path": "linuxcnc/unit_tests/interp/interp_testing_util.hh", + "sha256": "18cb2d6075d163fff58e2892f84455f3cc3491e653e76c6531601eac39362d56" + }, + { + "bytes": 179, + "path": "linuxcnc/unit_tests/interp/meson.build", + "sha256": "534b25743c0259e3757cc2b60fbe0edad23473a5262bc988992d576fb364385e" + }, + { + "bytes": 23093, + "path": "linuxcnc/unit_tests/interp/test_interp_basics.cc", + "sha256": "0929d736e50c854624102d70d673d0eb15ce93a05af7993429b6f19deff57e74" + }, + { + "bytes": 3135, + "path": "linuxcnc/unit_tests/interp/test_interp_block.cc", + "sha256": "c2c063b7255bb3b1a15ce2be34d5998a877235b18eca5435df487c8c87dfb81d" + }, + { + "bytes": 637, + "path": "linuxcnc/unit_tests/interp/test_string_conversion.cc", + "sha256": "d6b056f762826da85385d0e235de4dc4d8f96a2b8ef64abe140c7baed09f6754" + }, + { + "bytes": 595, + "path": "linuxcnc/unit_tests/interp/tests_main.cc", + "sha256": "f7ac2692b082bd9309535d2bebe11ace840395b00b63b64180b2857501956a4f" + } + ], + "fingerprint_sha256": "ddf2667de41902ecdabb6c2466fe43236dafe4d17fa2c3b8ca37c398920eac02", + "roots": [ + "linuxcnc/src/emc/rs274ngc", + "linuxcnc/unit_tests/interp" + ] + }, + "native_and_wasm": true, + "outputs": { + "bytes": 15523, + "file_count": 3, + "files": [ + { + "bytes": 1872, + "path": "wasm-core/include/sim_interpreter.h", + "sha256": "7bf24098340e3da2272061acf7a43376c6c40fe9dffc55d012e3af65ceffedbb" + }, + { + "bytes": 11585, + "path": "wasm-core/src/sim_interpreter.c", + "sha256": "9f9f45f7c123be774dcf55a752a29e6cc1f873a1605cf89c4caa4f4ab125e6a4" + }, + { + "bytes": 2066, + "path": "wasm-core/tests/sim_interpreter_test.c", + "sha256": "c4fc3ba11b751ed9f3f770ff1ff164ce18aa19986003cf85d17a26de7aecd3ce" + } + ], + "fingerprint_sha256": "440a472b1f24c6bc092e0181f58389a2fd7fab2fdb632583f1c650ec8db86d6e" + }, + "schema": "interpreter-runtime-report.v1", + "status": "passed", + "supported_words": [ + "G0", + "G1", + "G2", + "G3", + "G17", + "G18", + "G19", + "G20", + "G21", + "G90", + "G91", + "M2", + "M3", + "M4", + "M5", + "M30", + "X", + "Y", + "Z", + "A", + "B", + "C", + "U", + "V", + "W", + "F", + "S" + ] +} diff --git a/coverage/kinematics-abi-contract.json b/coverage/kinematics-abi-contract.json new file mode 100644 index 0000000..a99a68c --- /dev/null +++ b/coverage/kinematics-abi-contract.json @@ -0,0 +1,231 @@ +{ + "abi_version": 1, + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "contract_sha256": "3c338760a86122d25b76e5a27e26b9c79d8579e1ca96638ed932b8ca8e41283a", + "declared_functions": [ + "sim_kinematics_forward", + "sim_kinematics_forward_ex", + "sim_kinematics_home", + "sim_kinematics_init", + "sim_kinematics_inverse", + "sim_kinematics_inverse_ex", + "sim_kinematics_state_hash", + "sim_kinematics_validate_pose" + ], + "enums": { + "sim_kinematics_mode": [ + { + "name": "SIM_KIN_MODE_DEFAULT", + "value": 0 + }, + { + "name": "SIM_KIN_MODE_IDENTITY", + "value": 1 + }, + { + "name": "SIM_KIN_MODE_FORWARD_ONLY", + "value": 2 + }, + { + "name": "SIM_KIN_MODE_INVERSE_ONLY", + "value": 3 + }, + { + "name": "SIM_KIN_MODE_BOTH", + "value": 4 + } + ], + "sim_kinematics_result": [ + { + "name": "SIM_KIN_OK", + "value": 0 + }, + { + "name": "SIM_KIN_ERR_ARGUMENT", + "value": -700 + }, + { + "name": "SIM_KIN_ERR_NONFINITE", + "value": -701 + }, + { + "name": "SIM_KIN_ERR_RANGE", + "value": -702 + }, + { + "name": "SIM_KIN_ERR_CONFIGURATION", + "value": -703 + }, + { + "name": "SIM_KIN_ERR_SINGULAR", + "value": -704 + }, + { + "name": "SIM_KIN_ERR_UNKNOWN_TYPE", + "value": -705 + }, + { + "name": "SIM_KIN_ERR_UNSUPPORTED", + "value": -706 + } + ], + "sim_kinematics_type": [ + { + "name": "SIM_KIN_TRIVKINS", + "value": 1 + }, + { + "name": "SIM_KIN_XYZAC_TRT", + "value": 2 + }, + { + "name": "SIM_KIN_XYZBC_TRT", + "value": 3 + }, + { + "name": "SIM_KIN_XYZBCW", + "value": 4 + }, + { + "name": "SIM_KIN_COREXY", + "value": 5 + }, + { + "name": "SIM_KIN_ROSE", + "value": 6 + }, + { + "name": "SIM_KIN_MAXKINS", + "value": 7 + }, + { + "name": "SIM_KIN_ROTATEKINS", + "value": 8 + }, + { + "name": "SIM_KIN_5AXISKINS", + "value": 9 + }, + { + "name": "SIM_KIN_SCARA", + "value": 10 + }, + { + "name": "SIM_KIN_PUMA", + "value": 11 + }, + { + "name": "SIM_KIN_SCORBOT", + "value": 12 + }, + { + "name": "SIM_KIN_GENSER", + "value": 13 + } + ] + }, + "errors": { + "SIM_KIN_ERR_ARGUMENT": -700, + "SIM_KIN_ERR_CONFIGURATION": -703, + "SIM_KIN_ERR_NONFINITE": -701, + "SIM_KIN_ERR_RANGE": -702, + "SIM_KIN_ERR_SINGULAR": -704, + "SIM_KIN_ERR_UNKNOWN_TYPE": -705, + "SIM_KIN_ERR_UNSUPPORTED": -706, + "SIM_KIN_OK": 0 + }, + "exported_functions": [ + "sim_kinematics_forward", + "sim_kinematics_forward_ex", + "sim_kinematics_home", + "sim_kinematics_init", + "sim_kinematics_inverse", + "sim_kinematics_inverse_ex", + "sim_kinematics_state_hash", + "sim_kinematics_validate_pose" + ], + "inputs": { + "cmake": "wasm-core/CMakeLists.txt", + "cmake_sha256": "e9296a3983a531e4e6864d05e2e97c8dbf29e0dc9e45942ecc1a0a7222b3a660", + "header": "wasm-core/include/sim_kinematics.h", + "header_sha256": "5fd01043d705486b0d365e36109c3b0e0d39f220c2cec313b5b747dca06148bc" + }, + "missing_required_exports": [], + "numeric_policy": { + "fast_math": false, + "fp_contract": "off", + "iteration_limit": 100000, + "nonfinite": "SIM_KIN_ERR_NONFINITE", + "state_hash": "FNV-1a-64" + }, + "required_functions": [ + "sim_kinematics_init", + "sim_kinematics_forward", + "sim_kinematics_forward_ex", + "sim_kinematics_inverse", + "sim_kinematics_inverse_ex", + "sim_kinematics_home", + "sim_kinematics_validate_pose", + "sim_kinematics_state_hash" + ], + "schema": "kinematics-abi-contract.v1", + "status": "verified", + "structs": { + "sim_kinematics": [ + "sim_kinematics_config config;", + "int axis_joint[SIM_KIN_MAX_JOINTS];", + "uint32_t configured;", + "uint64_t forward_flags;", + "uint64_t inverse_flags;", + "sim_posemath_pose last_pose;", + "double last_residual;", + "uint32_t last_iterations;", + "uint32_t branch_id;", + "int32_t revolution_count;", + "uint32_t previous_quadrant;" + ], + "sim_kinematics_config": [ + "int type;", + "int mode;", + "uint32_t joint_count;", + "uint32_t kinematics_joint_count;", + "uint32_t extra_joint_count;", + "char coordinates[16];", + "double x_rot_point;", + "double y_rot_point;", + "double z_rot_point;", + "double x_offset;", + "double y_offset;", + "double z_offset;", + "double tool_offset;", + "double pivot_length;", + "double scara_d1;", + "double scara_d2;", + "double scara_d3;", + "double scara_d4;", + "double scara_d5;", + "double scara_d6;", + "double puma_a2;", + "double puma_a3;", + "double puma_d3;", + "double puma_d4;", + "double puma_d6;", + "uint32_t dh_joint_count;", + "double dh_a[SIM_KIN_MAX_JOINTS];", + "double dh_alpha[SIM_KIN_MAX_JOINTS];", + "double dh_d[SIM_KIN_MAX_JOINTS];", + "uint32_t max_iterations;", + "double convergence_tolerance;", + "uint8_t limit_enabled[SIM_KIN_MAX_JOINTS];", + "double joint_min[SIM_KIN_MAX_JOINTS];", + "double joint_max[SIM_KIN_MAX_JOINTS];" + ], + "sim_kinematics_result_info": [ + "uint64_t forward_flags;", + "uint64_t inverse_flags;", + "double residual;", + "uint32_t iterations;", + "uint32_t branch_id;" + ] + } +} diff --git a/coverage/kinematics-config-graph.report.json b/coverage/kinematics-config-graph.report.json new file mode 100644 index 0000000..4705a46 --- /dev/null +++ b/coverage/kinematics-config-graph.report.json @@ -0,0 +1,27401 @@ +{ + "closure": { + "all_entry_ids_registered": true, + "expected_entry_nodes": 377, + "official_oracle_reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "official_oracle_status": "blocked", + "orphan_entry_ids": [], + "samples_without_configuration": [], + "unowned_template_ids": [] + }, + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "counts": { + "configuration_entries": 264, + "edges": 2784, + "entry_nodes": 377, + "family_nodes": 11, + "hal_entries": 113, + "nodes": 1499, + "samples": 11 + }, + "edges": [ + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/anglejog", + "to": "resource:linuxcnc/configs/sim/axis/anglejog" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:23:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/anglejog/LIB:basic_sim.tcl -no_sim_spindle -no_use_hal_manualtoolchange", + "to": "resource:linuxcnc/configs/sim/axis/anglejog/LIB:basic_sim.tcl -no_sim_spindle -no_use_hal_manualtoolchange" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:35:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/anglejog/anglejog.tbl", + "to": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:15:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/anglejog/anglejog.var", + "to": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:24:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/anglejog/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/anglejog/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/anglejog/anglejog.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:39:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/check_xyz_constraints.hal", + "to": "resource:linuxcnc/configs/sim/axis/check_xyz_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:42:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/cooling.hal", + "to": "resource:linuxcnc/configs/sim/axis/cooling.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:50:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:34:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:27:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/axis/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:40:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/locking_indexer.hal", + "to": "resource:linuxcnc/configs/sim/axis/locking_indexer.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:43:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/position9.txt", + "to": "resource:linuxcnc/configs/sim/axis/position9.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim-9axis.var", + "to": "resource:linuxcnc/configs/sim/axis/sim-9axis.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:29:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_9axis.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/axis_9axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/cooling.hal", + "to": "resource:linuxcnc/configs/sim/axis/cooling.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:45:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/axis/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:30:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/axis_mm.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/axis_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:24:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/canterp.var", + "to": "resource:linuxcnc/configs/sim/axis/canterp.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:82:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/canterp.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/canterp.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:20:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/classicladder/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:21:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:32:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:13:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.var", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/classicladder/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:22:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/classicladder/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal", + "to": "resource:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:6:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "to": "resource:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:5:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal", + "to": "resource:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/db_demo/base.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:4:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_sim_spindle", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_sim_spindle" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:5:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/external_offsets/halscope -i dynamic_offsets.halscope", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/halscope -i dynamic_offsets.halscope" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:17:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/external_offsets/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:20:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/external_offsets", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:4:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:23:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:5:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:6:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/external_offsets/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:1:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/external_offsets/sim_pin --title \"MPG Simulator\" \\", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/sim_pin --title \"MPG Simulator\" \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:2:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:3:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:15:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/external_offsets/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:22:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/external_offsets", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:4:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:25:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:5:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/external_offsets/opa.hal", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:6:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/external_offsets/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/external_offsets/sim_pin ini.x.max_acceleration ini.x.max_velocity", + "to": "resource:linuxcnc/configs/sim/axis/external_offsets/sim_pin ini.x.max_acceleration ini.x.max_velocity" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/external_offsets/opa.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/extrajoints", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:10:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/extrajoints/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:11:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:3:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/extrajoints/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:4:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/extrajoints", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:9:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:3:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:16:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/extrajoints/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:4:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/extrajoints", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:11:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:10:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/extrajoints/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:3:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/extrajoints/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:4:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:5:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j5 extrajoints\" \\", + "to": "resource:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j5 extrajoints\" \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/foam/axis_foam.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/foam/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/foam/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/foam/axis_foam.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/foam/foam.var", + "to": "resource:linuxcnc/configs/sim/axis/foam/foam.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/foam/axis_foam.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/foam/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/foam/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/foam/axis_foam.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/foam/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/foam/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/foam/axis_foam.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/foam/axis_foam.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:20:ini:filter_command:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:21:ini:filter_command:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:22:ini:filter_command:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/gantry/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/gantry/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gantry/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gantry/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:23:ini:filter_command:linuxcnc/configs/sim/axis/gantry/toolpaths.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/toolpaths.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gantry/gantry.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:35:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/gantry/gantry_panel.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/gantry_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:1:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/gantry/halscope -i gantry_jjog.halscope", + "to": "resource:linuxcnc/configs/sim/axis/gantry/halscope -i gantry_jjog.halscope" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:21:ini:filter_command:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:22:ini:filter_command:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:23:ini:filter_command:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/gantry/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/gantry/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gantry/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gantry/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:24:ini:filter_command:linuxcnc/configs/sim/axis/gantry/toolpaths.py", + "to": "resource:linuxcnc/configs/sim/axis/gantry/toolpaths.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:26:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal", + "to": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:40:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl", + "to": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gantry/gantry_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/geometry/xyzc.ini:14:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/geometry/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/geometry/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/geometry/xyzc.ini:8:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/geometry/xyzc.var", + "to": "resource:linuxcnc/configs/sim/axis/geometry/xyzc.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/geometry/xyzc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:14:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/geometry/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/geometry/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:8:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/geometry/xyzc.var", + "to": "resource:linuxcnc/configs/sim/axis/geometry/xyzc.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/gladevcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/manual-example.hal", + "to": "resource:linuxcnc/configs/sim/manual-example.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gladevcp_lib", + "to": "resource:linuxcnc/nc_files/gladevcp_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:39:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/gladevcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gladevcp_lib", + "to": "resource:linuxcnc/nc_files/gladevcp_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/gladevcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:5:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/hitcounter.py", + "to": "resource:linuxcnc/configs/sim/hitcounter.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:35:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/manual-example.hal", + "to": "resource:linuxcnc/configs/sim/manual-example.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:5:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/manual-example.ui", + "to": "resource:linuxcnc/configs/sim/manual-example.ui" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gladevcp_lib", + "to": "resource:linuxcnc/nc_files/gladevcp_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/gladevcp", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:39:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/gladevcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:96:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gladevcp_lib", + "to": "resource:linuxcnc/nc_files/gladevcp_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gladevcp/probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:38:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/gladevcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:95:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:25:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gladevcp_lib", + "to": "resource:linuxcnc/nc_files/gladevcp_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:21:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/halui_pyvcp/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/halui_pyvcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:22:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:36:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:14:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/halui_pyvcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:23:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/halui_pyvcp/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:91:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/hal-histogram -geometry +10+10\\", + "to": "resource:linuxcnc/configs/sim/axis/hal-histogram -geometry +10+10\\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:90:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/hal-histogram -geometry +50+50\\", + "to": "resource:linuxcnc/configs/sim/axis/hal-histogram -geometry +50+50\\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/histogram_demo.ini:4:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/histogram_demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/cooling.hal", + "to": "resource:linuxcnc/configs/sim/axis/cooling.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/lathe.hal", + "to": "resource:linuxcnc/configs/sim/axis/lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim-lathe.var", + "to": "resource:linuxcnc/configs/sim/axis/sim-lathe.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/lathe_postgui.hal", + "to": "resource:linuxcnc/configs/sim/lathe_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/historical_lathe.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/historical_lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/postgui_calib_helper.hal", + "to": "resource:linuxcnc/configs/sim/axis/postgui_calib_helper.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:93:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/sim_pin \\", + "to": "resource:linuxcnc/configs/sim/axis/sim_pin \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:93:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/sim_pin \\", + "to": "resource:linuxcnc/configs/sim/axis/sim_pin \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ini_hal_demo.ini:4:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ini_hal_demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:44:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:36:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/v2_gladevcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/v2_gladevcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:47:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:29:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:39:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:51:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/nstools.tbl", + "to": "resource:linuxcnc/configs/sim/nstools.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:47:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:29:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:39:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:51:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm_test.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm_test.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:47:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:29:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:39:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:51:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm_test.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm_test.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:45:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:28:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:7:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:8:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:wheeljogpins.tcl 0.1", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:wheeljogpins.tcl 0.1" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:3:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/halshow xyzb.halshow", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/halshow xyzb.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:1:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.joint/mode=Pulse \\", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.joint/mode=Pulse \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.teleop/mode=Pulse \\", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.teleop/mode=Pulse \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.var", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:6:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:7:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:wheeljogpins.tcl 0.1", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:wheeljogpins.tcl 0.1" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/halshow xyzb.halshow", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/halshow xyzb.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:1:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin \\", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.var", + "to": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/laser/laser.ini:9:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/laser/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/laser/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/laser/laser.ini:10:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/laser/laser.hal", + "to": "resource:linuxcnc/configs/sim/axis/laser/laser.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/laser/laser.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/laser/laser.var", + "to": "resource:linuxcnc/configs/sim/axis/laser/laser.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/laser/laser.ini:11:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/laser/postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/laser/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/laser/laser.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:20:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis", + "to": "resource:linuxcnc/configs/sim/axis" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:20:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/lathe-fanucy", + "to": "resource:linuxcnc/configs/sim/axis/lathe-fanucy" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/lathe-fanucy/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:39:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl", + "to": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/lathe-fanucy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/lathe-fanucy/sim-lathe.var", + "to": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/sim-lathe.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim-lathe.var", + "to": "resource:linuxcnc/configs/sim/axis/sim-lathe.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:40:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:30:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/lathe_postgui.hal", + "to": "resource:linuxcnc/configs/sim/lathe_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/lathe_multispindle/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:36:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/lathe_multispindle/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/lathe_multispindle/sim-lathe.var", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/sim-lathe.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/lathe_multispindle/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:95:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/sim_ldelta.hal", + "to": "resource:linuxcnc/configs/sim/axis/sim_ldelta.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ldelta.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "implements_family", + "to": "family:parallel_delta" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:125:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/sim_ldelta.hal", + "to": "resource:linuxcnc/configs/sim/axis/sim_ldelta.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:52:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/sim_pin >/dev/null \\", + "to": "resource:linuxcnc/configs/sim/axis/sim_pin >/dev/null \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:52:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/sim_pin >/dev/null \\", + "to": "resource:linuxcnc/configs/sim/axis/sim_pin >/dev/null \\" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ldelta_demo.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ldelta_demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "kind": "implements_family", + "to": "family:parallel_delta" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/minimal_xyz.ini:11:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/minimal_xyz.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/minimal_xyz.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/minimal_xyz.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/minimal_xyz.ini:6:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/minimal_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:51:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:30:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:41:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:59:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:4:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:42:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:42:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:52:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:31:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:42:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:61:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:4:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:43:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gcmc_lib", + "to": "resource:linuxcnc/nc_files/gcmc_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:43:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:43:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:40:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:22:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:30:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ngcgui/sim-lathe.var", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/sim-lathe.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:3:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:31:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/lathe", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:31:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:20:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:31:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:4:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:32:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:32:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:52:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:31:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:42:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:9:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gremlin_view.ui", + "to": "resource:linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:60:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:4:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:43:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:43:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/acc_test.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/orphans/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/orphans/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/acc_test.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/acc_test.ini:37:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/orphans/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/orphans/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/acc_test.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/orphans/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/orphans/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/acc_test.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/orphans/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/orphans/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/acc_test.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/acc_test.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal", + "to": "resource:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/orphans/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/orphans/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/orphans/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/orphans/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/orphans/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/orphans/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:21:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/axis_noio.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/orphans/acc_test.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/orphans/axis_noio.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/orphans/medium.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/orphans/axis_noio.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "inactive_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/orphans/py.ini.notworking" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "inactive_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/orphans/pyiocontrol.ini.notworking" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:40:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal", + "to": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:49:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:29:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:25:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/orphans/rack-toolchange/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/orphans/rack-toolchange/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:126:ini:TOOL:TOOL_TABLE:linuxcnc/configs/sim/axis/orphans/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/orphans/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:16:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:25:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/orphans/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/orphans/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/orphans/check_xyz_constraints.hal", + "to": "resource:linuxcnc/configs/sim/axis/orphans/check_xyz_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:37:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/orphans/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/orphans/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/orphans/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/orphans/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/orphans/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/orphans/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/orphans/medium.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/orphans/medium.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/panelui-demo/custom.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/custom.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:37:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:17:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:28:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.var", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/panelui-demo/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:19:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/pentapod", + "to": "resource:linuxcnc/configs/sim/axis/pentapod" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/pentapod/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/pentapod/kinematics.hal", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/kinematics.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/pentapod/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/pentapod/pentapod.var", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:50:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/pentapod/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:54:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/pentapod/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/pentapod/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/pentapod/pentapod.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "kind": "implements_family", + "to": "family:parallel_pentapod" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:9:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/plasma", + "to": "resource:linuxcnc/configs/sim/axis/plasma" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:15:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/plasma/custom.hal", + "to": "resource:linuxcnc/configs/sim/axis/plasma/custom.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:26:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/axis/plasma/imperial_mdi_history.txt", + "to": "resource:linuxcnc/configs/sim/axis/plasma/imperial_mdi_history.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:8:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/plasma/imperial_parameters.txt", + "to": "resource:linuxcnc/configs/sim/axis/plasma/imperial_parameters.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:49:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/plasma/imperial_position.txt", + "to": "resource:linuxcnc/configs/sim/axis/plasma/imperial_position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:36:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:22:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/plasma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/plasma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_panel.py", + "to": "resource:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_panel.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:13:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_stepgen.tcl", + "to": "resource:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_stepgen.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:14:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/plasma/qtplasmac_comp.hal", + "to": "resource:linuxcnc/configs/sim/axis/plasma/qtplasmac_comp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:21:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial.ini:9:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/plasma/imperial.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:9:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/plasma", + "to": "resource:linuxcnc/configs/sim/axis/plasma" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:15:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/plasma/custom.hal", + "to": "resource:linuxcnc/configs/sim/axis/plasma/custom.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:22:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/plasma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/plasma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:26:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/axis/plasma/metric_mdi_history.txt", + "to": "resource:linuxcnc/configs/sim/axis/plasma/metric_mdi_history.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:8:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/plasma/metric_parameters.txt", + "to": "resource:linuxcnc/configs/sim/axis/plasma/metric_parameters.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:49:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/plasma/metric_position.txt", + "to": "resource:linuxcnc/configs/sim/axis/plasma/metric_position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:36:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/plasma/metric_tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/plasma/metric_tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:2:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_panel.py", + "to": "resource:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_panel.py" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:13:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_stepgen.tcl", + "to": "resource:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_stepgen.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:14:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/plasma/qtplasmac_comp.hal", + "to": "resource:linuxcnc/configs/sim/axis/plasma/qtplasmac_comp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:21:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/plasma/metric.ini:9:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/plasma/metric.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:37:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/profile_axis.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/profile_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/qtvcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/qtvcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/qtvcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:28:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/qtvcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/qtvcp/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/qtvcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/qtvcp/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:28:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/qtvcp/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/qtvcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:37:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/simpockets.tbl", + "to": "resource:linuxcnc/configs/sim/simpockets.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/random_tc.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/random_tc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:22:hal:loadusr:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "to": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:1:hal:loadusr:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "to": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:27:hal:source:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:111:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/sim.tbl", + "to": "resource:linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/sim_rdelta.hal", + "to": "resource:linuxcnc/configs/sim/axis/sim_rdelta.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rdelta.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/rdelta.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "kind": "implements_family", + "to": "family:parallel_delta" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/cycle/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/remap/cycle/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/cycle/locking_indexer.hal", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/locking_indexer.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/remap/cycle/position9.txt", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/position9.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/remap/cycle/sim-9axis.var", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/sim-9axis.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:47:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/remap/cycle/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/remap/cycle/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:44:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/extend-builtins/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:45:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/remap/extend-builtins/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:50:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/remap/extend-builtins/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/remap/extend-builtins/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:55:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/getting-started/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/remap/getting-started/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/remap/getting-started/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/remap/getting-started/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:46:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/remap/getting-started/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/remap/getting-started/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/remap/getting-started/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/remap/getting-started/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:51:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/remap/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/remap/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:36:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:44:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/rack-toolchange/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:37:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/remap/rack-toolchange/gladevcp.hal", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/gladevcp.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/remap/rack-toolchange/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/remap/rack-toolchange/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:45:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/remap/rack-toolchange/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/remap/rack-toolchange/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/remap/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/remap/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/remap/stop-lookahead/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/remap/stop-lookahead/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_subroutines", + "to": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/remap/stop-lookahead/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/remap/stop-lookahead/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/remap/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/remap/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:26:ini:RS274NGC:PARAMETER_FILE:/tmp/rose.var", + "to": "resource:/tmp/rose.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/rose_engine", + "to": "resource:linuxcnc/configs/sim/axis/rose_engine" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:3:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/rose_engine/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/rose_engine/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:1:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/rose_engine/halshow rose_engine.halshow", + "to": "resource:linuxcnc/configs/sim/axis/rose_engine/halshow rose_engine.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:33:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/rose_engine/rose.tbl", + "to": "resource:linuxcnc/configs/sim/axis/rose_engine/rose.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/rotate/rotatekins.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/rotate/rotatekins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/rotate/rotatekins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/spindle_orient/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/spindle_orient/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:37:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/spindle_orient/orient.hal", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:42:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/spindle_orient/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/spindle_orient/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/spindle_orient/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/spindle_orient/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:47:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib/common_nc_subs", + "to": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/spindle_orient/orient.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/twopass/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/twopass/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/twopass/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/twopass/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:44:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/twopass/position.txt", + "to": "resource:linuxcnc/configs/sim/axis/twopass/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:39:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/twopass/postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/twopass/sim.var", + "to": "resource:linuxcnc/configs/sim/axis/twopass/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/twopass/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/twopass/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal", + "to": "resource:linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/twopass/twopass.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:11:ini:DISPLAY:PROGRAM_PREFIX:/home/rolf/linuxcnc/nc_files", + "to": "resource:/home/rolf/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:39:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:45:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:45:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:19:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/vismach/nc_files", + "to": "resource:linuxcnc/configs/sim/axis/vismach/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "kind": "implements_family", + "to": "family:five_axis" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:3:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:3:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:23:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/emc2.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/emc2.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:16:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:24:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:63:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:19:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/vismach/nc_files", + "to": "resource:linuxcnc/configs/sim/axis/vismach/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:40:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:40:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/emc2.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/emc2.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:21:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:31:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:65:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/vismach/nc_files", + "to": "resource:linuxcnc/configs/sim/axis/vismach/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:52:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:52:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal:35:loadrt:xyzac-trt-kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal:35:loadrt:xyzac-trt-kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/emc2.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/emc2.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:21:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:31:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:65:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/vismach/nc_files", + "to": "resource:linuxcnc/configs/sim/axis/vismach/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:52:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:52:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:7:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:7:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:13:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/VMC_toolchange", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:10:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:22:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/sim_vmc.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/sim_vmc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:23:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/spindle.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/spindle.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:24:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:21:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:34:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:12:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:9:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:13:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/VMC_toolchange", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:10:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:22:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/sim_vmc.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/sim_vmc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:23:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/spindle.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/spindle.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:24:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:21:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:34:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:12:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:9:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:19:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:29:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:12:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/hbm/hbm.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:10:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/hbm/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hbm/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:9:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:3:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:3:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:43:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:43:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/hexapod-sim/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:32:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/hexapod-sim/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:15:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/hexapod-sim/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "kind": "implements_family", + "to": "family:parallel_hexapod" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:15:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:15:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:30:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/vismach/melfa-sim", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/melfa-sim/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:31:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/melfa-sim/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:11:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:52:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:12:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:8:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:13:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/melfa-sim/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:31:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/axis/vismach/millturn", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:8:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/millturn/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:1:ini:APPLICATIONS:APP:linuxcnc/configs/sim/axis/vismach/millturn/halshow ./millturn.halshow", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/halshow ./millturn.halshow" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:32:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/millturn/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:11:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:9:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:53:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:13:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/millturn/millturn.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:14:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/millturn/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/millturn/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/millturn.comp" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:17:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:17:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:15:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:15:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:3:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:3:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:34:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:54:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/puma/puma.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:8:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:11:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:13:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/puma/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:33:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:8:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:32:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:19:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/puma/puma560.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:9:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:11:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:13:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/puma/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:31:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:19:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:19:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:6:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:6:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:8:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:31:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/puma/puma560.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:9:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:11:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:13:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/puma/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:30:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:19:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:19:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:6:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:6:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:106:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:106:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:44:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:83:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:55:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/puma/puma.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:63:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/puma/puma_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:50:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/puma/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/puma/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:43:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:3:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:3:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/vismach/scara/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/scara/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/vismach/scara/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/vismach/scara/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:12:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/axis/vismach/scara/remap_subs", + "to": "resource:linuxcnc/configs/sim/axis/vismach/scara/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/vismach/scara/scara.tbl", + "to": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:18:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/vismach/scara/scara.var", + "to": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:31:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal", + "to": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:62:switchkins:motion.switchkins-type", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:62:switchkins:motion.switchkins-type", + "kind": "selects_switchkins", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal:2:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal:2:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal:2:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:40:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/axis/wrapped_rotary/gantry_mm.tbl", + "to": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/gantry_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/axis/wrapped_rotary/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:26:ini:HAL:HALFILE:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal", + "to": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.var", + "to": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.var" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini" + }, + { + "from": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc" + }, + { + "from": "config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/axis_manualtoolchange.hal:0:missing_resource:hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/axis_manualtoolchange.hal:0:missing_resource:hal", + "kind": "retains_missing_resource", + "to": "diagnostic:missing-resource" + }, + { + "from": "config:linuxcnc/configs/sim/core_sim9.hal:0:missing_resource:hal", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/core_sim9.hal" + }, + { + "from": "config:linuxcnc/configs/sim/core_sim9.hal:0:missing_resource:hal", + "kind": "retains_missing_resource", + "to": "diagnostic:missing-resource" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/craftsman/craftsmancnc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "inactive_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/craftsman/craftsmancnc-axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/craftsman/craftsman_spindle.hal", + "to": "resource:linuxcnc/configs/sim/craftsman/craftsman_spindle.hal" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/craftsman/craftsman_toolchange.hal", + "to": "resource:linuxcnc/configs/sim/craftsman/craftsman_toolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/craftsman/craftsmancnc.var", + "to": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.var" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:10:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/craftsman/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/craftsman/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/configs/sim/craftsman/linuxcnc/nc_files", + "to": "resource:linuxcnc/configs/sim/craftsman/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/craftsman/macros", + "to": "resource:linuxcnc/configs/sim/craftsman/macros" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:14:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/craftsman/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/craftsman/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/craftsman/sim_core.hal", + "to": "resource:linuxcnc/configs/sim/craftsman/sim_core.hal" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:47:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/craftsman/tool.tbl", + "to": "resource:linuxcnc/configs/sim/craftsman/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/craftsman/craftsmancnc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/craftsman/sim_core.hal" + }, + { + "from": "config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:33:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/6_axis.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/6_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:33:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/7_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:33:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:33:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/8_axis.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/8_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:33:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/9_axis.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/9_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim4.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:35:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:25:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:42:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim4.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim4.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:31:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:10:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:21:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:38:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:20:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:9:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:36:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:44:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:37:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/pendant_5_axis.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/pendant_5_axis.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/pendant_5_axis.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/pendant_5_axis.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:45:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:42:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/v_buttonlist.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/v_buttonlist.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/v_buttonlist.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/v_buttonlist.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:40:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:43:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:33:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:50:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:32:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:42:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:53:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:12:ini:DISPLAY:PROGRAM_PREFIX:/home/emcmesa/linuxcnc/nc_files", + "to": "resource:/home/emcmesa/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/pendant.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/pendant.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/pendant.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/pendant.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:40:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:42:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:22:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:49:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.py", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.py" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:32:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:52:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:33:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:21:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:51:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:54:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:32:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:42:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:61:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:6:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/pyngcgui.ui", + "to": "resource:linuxcnc/configs/sim/gmoccapy/pyngcgui.ui" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:44:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:53:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:52:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:64:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:31:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:42:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:42:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:34:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/vcp_box.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/vcp_box.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/vcp_box.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/vcp_box.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:37:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:27:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:44:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:47:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/v_buttonlist.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/v_buttonlist.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/v_buttonlist.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/v_buttonlist.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:44:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:10:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:20:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:31:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:51:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:30:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:43:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:42:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:54:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:13:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/tool_sensor.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool_sensor.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:13:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/tool_sensor.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool_sensor.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:19:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/button.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/button.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/dro.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/dro.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:40:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:19:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:30:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:47:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:29:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:39:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:13:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/vcp_box.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/vcp_box.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:13:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/vcp_box.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/vcp_box.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:18:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:23:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:22:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:17:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:17:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:26:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:42:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:25:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:32:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:6:hal:source:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:15:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:15:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal:4:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:19:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/emc2.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/emc2.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:16:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:32:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:17:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "kind": "implements_family", + "to": "family:five_axis_trt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:30:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gmoccapy/macros", + "to": "resource:linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/plasma_config/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:39:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:19:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gmoccapy/plasma_config/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.py", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.py" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:46:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gmoccapy/plasma_config/position.txt", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.glade", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.glade" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.py", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.py" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:29:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gmoccapy/plasma_config/sim.var", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/gmoccapy/plasma_config/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gmoccapy/plasma_config/torches.tbl", + "to": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/torches.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:18:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:42:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:40:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:50:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:33:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:43:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:10:hal:source:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:53:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen.ini:24:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/locking_indexer.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/locking_indexer.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:37:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/position9.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position9.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim-9gscreen.var", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim-9gscreen.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:31:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:38:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:20:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:31:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:38:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:20:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:41:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:32:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:39:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:24:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:22:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:7:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:33:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:15:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:23:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:25:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:26:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:36:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:6:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:32:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/gscreen/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:33:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/lathe_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/lathe_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:39:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:10:hal:source:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:40:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/gscreen/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:10:hal:source:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/gscreen_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gscreen", + "to": "resource:linuxcnc/configs/sim/gscreen" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gscreen/industrial_lathe_wear", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:35:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:41:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:14:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gremlin_view.ui", + "to": "resource:linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:42:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:67:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/ngcgui/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:53:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/pyngcgui.ui", + "to": "resource:linuxcnc/configs/sim/pyngcgui.ui" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:70:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:41:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:51:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:51:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:10:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gremlin_view.ui", + "to": "resource:linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:42:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:67:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/ngcgui/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:53:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/pyngcgui_popupkeyboard.ui", + "to": "resource:linuxcnc/configs/sim/pyngcgui_popupkeyboard.ui" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:70:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:41:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:51:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:51:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:16:ini:DISPLAY:PROGRAM_PREFIX:/home/jim/linuxcnc/nc_files", + "to": "resource:/home/jim/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/silverdragon/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:17:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/silverdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:28:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/gscreen/silverdragon/macros", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/macros" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:57:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/gscreen/silverdragon/position.txt", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:27:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/silverdragon/sim.var", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/silverdragon/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:60:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gscreen/silverdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gscreen/silverdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/spartan/spartan.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/gscreen/spartan/spartan.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/spartan/custom.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/custom.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:35:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:15:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/gscreen/spartan/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/gscreen/spartan/linuxcnc.var", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/linuxcnc.var" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:10:hal:source:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/gscreen/spartan/spartan.hal", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.hal" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/gscreen/spartan/tool.tbl", + "to": "resource:linuxcnc/configs/sim/gscreen/spartan/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:17:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/gscreen/spartan/spartan.ini" + }, + { + "from": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:13:ini:DISPLAY:PROGRAM_PREFIX:/media/imac/linuxcnc/nc_files", + "to": "resource:/media/imac/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:45:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:36:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:48:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:12:ini:DISPLAY:PROGRAM_PREFIX:/root/emc2/ngc/", + "to": "resource:/root/emc2/ngc/" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:35:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/pyvcp_demo/custom.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/custom.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:44:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:25:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:47:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:15:ini:DISPLAY:PROGRAM_PREFIX:/media/imac/linuxcnc/nc_files", + "to": "resource:/media/imac/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:47:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:38:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:6:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:8:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:28:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtaxis/gantry/WORKINGFOLDER/qtaxis_gantry.pref", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/WORKINGFOLDER/qtaxis_gantry.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/gantry/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:18:ini:filter_command:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:19:ini:filter_command:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:20:ini:filter_command:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtaxis/gantry/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:40:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtaxis/gantry/sim.tbl", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtaxis/gantry/sim.var", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/gantry/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/gantry/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:21:ini:filter_command:linuxcnc/configs/sim/qtaxis/gantry/toolpaths.py", + "to": "resource:linuxcnc/configs/sim/qtaxis/gantry/toolpaths.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:60:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/non-trivial/scara/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtaxis/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:24:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtaxis/non-trivial/scara/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:25:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtaxis/non-trivial/scara/qtdragon_scara.log", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/qtdragon_scara.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:33:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:66:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:39:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.var", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:19:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtaxis/non-trivial/scara/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtaxis/xyz/WORKINGFOLDER/qtaxis.pref", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/WORKINGFOLDER/qtaxis.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/xyz/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtaxis/xyz/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:74:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtaxis/xyz/position.txt", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:65:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:78:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtaxis/xyz/sim.tbl", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:52:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtaxis/xyz/sim.var", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/xyz/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:63:ini:HAL:HALFILE:linuxcnc/configs/sim/qtaxis/xyz/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtaxis/xyz/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:24:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:53:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:43:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:63:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-xyyz-home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-xyyz-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:45:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:43:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:63:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:45:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:67:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:45:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/\\", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/\\" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:43:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:82:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:64:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:84:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:83:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:63:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:66:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:66:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:66:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:82:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:64:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:84:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:83:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:63:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:66:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:66:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:66:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:31:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:32:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:47:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:67:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:66:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:49:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:27:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:49:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:49:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon_hd.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon_hd.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:43:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd.log", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:63:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:45:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon_hd.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon_hd.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:30:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:46:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:45:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:48:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/WORKINGFOLDER/qtdragon_hd.pref", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/WORKINGFOLDER/qtdragon_hd.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:43:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd.log", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:63:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:45:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:23:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc" + }, + { + "from": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc" + }, + { + "from": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qttouchy/WORKINGFOLDER/qttouchy.pref", + "to": "resource:linuxcnc/configs/sim/qttouchy/WORKINGFOLDER/qttouchy.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:54:ini:HAL:HALFILE:linuxcnc/configs/sim/qttouchy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qttouchy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:17:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qttouchy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qttouchy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:66:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qttouchy/position.txt", + "to": "resource:linuxcnc/configs/sim/qttouchy/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:57:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:70:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qttouchy/sim.tbl", + "to": "resource:linuxcnc/configs/sim/qttouchy/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:45:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qttouchy/sim.var", + "to": "resource:linuxcnc/configs/sim/qttouchy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:16:hal:loadusr:linuxcnc/configs/sim/qttouchy/sim_panel.ui", + "to": "resource:linuxcnc/configs/sim/qttouchy/sim_panel.ui" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:55:ini:HAL:HALFILE:linuxcnc/configs/sim/qttouchy/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qttouchy/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:56:ini:HAL:HALFILE:linuxcnc/configs/sim/qttouchy/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qttouchy/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:16:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qttouchy/qttouchy.ini:46:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qttouchy/qttouchy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/blender.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/blender.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:56:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:53:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:17:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:66:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:57:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:44:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:54:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:55:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:70:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:16:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/blender.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/blender.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:30:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/qtvcp_screens", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:30:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:45:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/WORKINGFOLDER/qtlathe.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/WORKINGFOLDER/qtlathe.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:55:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:21:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:52:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:46:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:33:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:20:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:30:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/examples/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:30:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:61:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:25:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:26:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/qtdragon_scara.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/qtdragon_scara.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:34:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:67:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:40:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:20:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/silver_dragon.png", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/silver_dragon.png" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "kind": "implements_family", + "to": "family:serial_robot" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "kind": "implements_family", + "to": "family:switchable" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_800x600.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_800x600.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:48:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:4:ini:DISPLAY:DISPLAY:linuxcnc/configs/sim/qtvcp_screens/qt_cnc_800x600.ui", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_cnc_800x600.ui" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:39:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:52:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis_gantry.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis_gantry.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:29:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:18:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:19:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:20:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:30:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:31:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:21:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/toolpaths.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/toolpaths.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:40:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:75:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:66:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:53:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:63:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:79:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:24:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:54:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:58:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/WORKINGFOLDER/qtaxis_lathe.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/WORKINGFOLDER/qtaxis_lathe.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:73:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:18:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:69:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:60:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:60:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:44:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:17:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:45:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:60:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:57:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:20:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:73:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:62:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:48:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:58:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:59:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:77:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:19:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:49:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "empty", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:48:ini:RS274NGC:SUBROUTINE_PATH:", + "to": "resource:" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:59:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:56:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:20:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:69:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:60:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:47:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:57:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:58:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:73:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:19:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/macros/mill", + "to": "resource:~/linuxcnc/nc_files/examples/macros/mill" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:48:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/probe", + "to": "resource:~/linuxcnc/nc_files/macros/probe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:41:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_9axis.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_9axis.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:12:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:42:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/locking_indexer.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/locking_indexer.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:46:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position9.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position9.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:31:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:38:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:11:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:32:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_gantry.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_gantry.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:32:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:21:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:22:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:23:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:14:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:24:ini:filter_command:linuxcnc/configs/sim/qtvcp_screens/toolpaths.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/toolpaths.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:13:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_mm.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_mm.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:45:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position_mm.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position_mm.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:36:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:31:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:24:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim_mm.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_mm.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:87:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:29:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:30:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:68:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:89:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:88:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:67:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:70:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:27:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:70:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:66:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:29:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:30:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:45:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:68:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:67:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:44:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:47:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:47:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap-subroutines", + "to": "resource:linuxcnc/nc_files/remap-subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:47:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/remap_lib", + "to": "resource:linuxcnc/nc_files/remap_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:27:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:69:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:28:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:33:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:50:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:71:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:70:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:52:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:30:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:52:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:84:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:29:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:30:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:65:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:86:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:85:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:64:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:67:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:27:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:70:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:27:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:34:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:51:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:72:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:71:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-xyyz-home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-xyyz-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:53:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:29:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:71:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:27:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:34:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:51:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:73:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:72:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:53:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:29:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:72:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:29:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:34:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:36:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:53:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:74:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:73:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:52:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:55:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:31:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:70:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:27:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:34:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:51:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:72:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:71:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:50:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:53:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:29:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:7:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:72:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:29:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:34:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:36:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:53:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:74:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:73:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:52:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:55:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:31:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:67:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:77:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:68:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:54:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:66:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:81:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:55:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:55:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:71:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:68:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:19:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:81:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:72:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:58:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:69:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:70:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:85:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:18:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:59:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:59:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:71:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:68:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:19:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:81:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:72:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:58:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:69:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:70:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:85:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:18:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:59:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:59:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:67:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:64:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:77:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:68:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:54:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:66:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:81:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:55:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:55:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtx11mill.pref", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtx11mill.pref" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:55:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:52:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:17:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:65:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:56:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:43:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:53:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:54:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:69:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:16:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:44:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/probe", + "to": "resource:~/linuxcnc/nc_files/macros/probe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:38:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:16:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:47:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:36:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:37:ini:HAL:HALFILE:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:4:ini:DISPLAY:DISPLAY:linuxcnc/configs/sim/qtvcp_screens/tester.ui", + "to": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ui" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:51:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:15:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ini:27:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/macros/lathe", + "to": "resource:~/linuxcnc/nc_files/macros/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/qtvcp_screens/tester.ini" + }, + { + "from": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:95:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:28:ini:HAL:HALFILE:linuxcnc/configs/sim/tklinuxcnc/axis_manualtoolchange.hal", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/axis_manualtoolchange.hal" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:9:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:23:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/tklinuxcnc/sim.var", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/tklinuxcnc/sim_ldelta.hal", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/sim_ldelta.hal" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:8:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "kind": "implements_family", + "to": "family:parallel_delta" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:30:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:20:ini:HAL:HALFILE:linuxcnc/configs/sim/tklinuxcnc/servo_sim.hal", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:13:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/tklinuxcnc/sim.var", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:22:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/tklinuxcnc/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:13:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:15:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/tklinuxcnc/sim.var", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:12:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:37:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:16:ini:filter_command:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:17:ini:filter_command:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:18:ini:filter_command:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:11:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:21:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/tklinuxcnc/sim.var", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:19:ini:filter_command:linuxcnc/configs/sim/tklinuxcnc/toolpaths.py", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/toolpaths.py" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:27:ini:HAL:HALFILE:linuxcnc/configs/sim/tklinuxcnc/tripodsim.hal", + "to": "resource:linuxcnc/configs/sim/tklinuxcnc/tripodsim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:10:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/tklinuxcnc/tripod.ini" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "kind": "implements_family", + "to": "family:parallel_tripod" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini" + }, + { + "from": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:6:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/hitcounter.py", + "to": "resource:linuxcnc/configs/sim/hitcounter.py" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:6:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/manual-example.ui", + "to": "resource:linuxcnc/configs/sim/manual-example.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:26:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/simpockets.tbl", + "to": "resource:linuxcnc/configs/sim/simpockets.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:18:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/gladevcp/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:6:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:8:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/touchy/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:10:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/touchy/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:7:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:11:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/gladevcp_lib", + "to": "resource:linuxcnc/nc_files/gladevcp_lib" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:27:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/simpockets.tbl", + "to": "resource:linuxcnc/configs/sim/simpockets.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:19:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/gladevcp/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:6:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/touchy/gladevcp/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:12:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/touchy/gladevcp/sim.var", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:9:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:11:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:11:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui", + "to": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:5:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gremlin_view.ui", + "to": "resource:linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:42:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:33:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:112:ini:APPLICATIONS:APP:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:22:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:5:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/touchy/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:21:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gremlin_view.ui", + "to": "resource:linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:53:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/lathe.tbl", + "to": "resource:linuxcnc/configs/sim/lathe.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:43:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:106:ini:APPLICATIONS:APP:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:25:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:5:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:33:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/touchy/ngcgui/sim-lathe.var", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/sim-lathe.var" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:3:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:34:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/lathe", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/lathe" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:34:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:7:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/gremlin_view.ui", + "to": "resource:linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/sim.tbl", + "to": "resource:linuxcnc/configs/sim/sim.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:34:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:35:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/ngcgui/LIB:hookup_moveoff.tcl", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/LIB:hookup_moveoff.tcl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:113:ini:APPLICATIONS:APP:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:22:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:114:ini:APPLICATIONS:APP:linuxcnc/configs/sim/touchy/ngcgui/moveoff_gui \\", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/moveoff_gui \\" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:5:ini:DISPLAY:EMBED_TAB_COMMAND:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:26:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/touchy/ngcgui/sim.var", + "to": "resource:linuxcnc/configs/sim/touchy/ngcgui/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:21:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib", + "to": "resource:linuxcnc/nc_files/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:24:ini:RS274NGC:SUBROUTINE_PATH:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "to": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:92:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/simpockets.tbl", + "to": "resource:linuxcnc/configs/sim/simpockets.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:17:ini:HAL:HALFILE:linuxcnc/configs/sim/touchy/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/touchy/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:8:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/touchy/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/touchy/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:12:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/touchy/sim.var", + "to": "resource:linuxcnc/configs/sim/touchy/sim.var" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:19:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/touchy/touchy_postgui.hal", + "to": "resource:linuxcnc/configs/sim/touchy/touchy_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:18:ini:HAL:HALCMD:linuxcnc/configs/sim/touchy/touchy_test_panel.glade", + "to": "resource:linuxcnc/configs/sim/touchy/touchy_test_panel.glade" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_directory", + "resource_source_id": "resource:linuxcnc/configs/sim/touchy/touchy.ini:7:ini:DISPLAY:PROGRAM_PREFIX:linuxcnc/nc_files", + "to": "resource:linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/touchy/touchy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "directory_owner", + "resource_source_id": null, + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "directory_owner", + "to": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:62:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:28:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:63:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:43:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:29:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:44:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:64:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:46:ini:RS274NGC:SUBROUTINE_PATH:nc_files/probe/basic_probe/macros", + "to": "resource:nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:54:ini:RS274NGC:SUBROUTINE_PATH:/home/.../linuxcnc/nc_files/examples/remap-subroutines", + "to": "resource:/home/.../linuxcnc/nc_files/examples/remap-subroutines" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:54:ini:RS274NGC:SUBROUTINE_PATH:/home/.../linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:/home/.../linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:54:ini:RS274NGC:SUBROUTINE_PATH:/home/.../linuxcnc/nc_files/remap_lib", + "to": "resource:/home/.../linuxcnc/nc_files/remap_lib" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:6:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:73:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:23:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:27:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:74:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:51:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:28:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:52:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:75:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:25:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:66:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/core_sim.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:29:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:67:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated_home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated_home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:47:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:68:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:49:ini:RS274NGC:SUBROUTINE_PATH:nc_files/probe/basic_probe/macros", + "to": "resource:nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:91:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:27:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:89:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/woodpecker/position.txt", + "to": "resource:linuxcnc/configs/sim/woodpecker/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:92:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:71:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:34:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:72:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:93:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:74:ini:RS274NGC:SUBROUTINE_PATH:nc_files/probe/basic_probe/macros", + "to": "resource:nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:29:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "outside_repo", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:63:ini:RS274NGC:SUBROUTINE_PATH:/home/.../linuxcnc/nc_files/probe/basic_probe/macros", + "to": "resource:/home/.../linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:80:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:27:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:64:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/metric_parameters.txt", + "to": "resource:linuxcnc/configs/sim/woodpecker/metric_parameters.txt" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:77:ini:TRAJ:POSITION_FILE:linuxcnc/configs/sim/woodpecker/position.txt", + "to": "resource:linuxcnc/configs/sim/woodpecker/position.txt" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:81:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated-gantry-xyzab-home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated-gantry-xyzab-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:60:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:34:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:61:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:82:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:29:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:63:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:63:ini:RS274NGC:SUBROUTINE_PATH:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "to": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:65:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:24:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:29:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:66:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:46:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:31:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:47:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:67:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:49:ini:RS274NGC:SUBROUTINE_PATH:nc_files/probe/basic_probe/macros", + "to": "resource:nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:26:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:5:ini:DISPLAY:PREFERENCE_FILE_PATH:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "to": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:68:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/gantrysim.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:27:ini:DISPLAY:INTRO_GRAPHIC:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "to": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:32:ini:DISPLAY:MDI_HISTORY_FILE:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "to": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:69:ini:HAL:HALFILE:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:49:ini:EMCIO:TOOL_TABLE:linuxcnc/configs/sim/woodpecker/tool.tbl", + "to": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:34:ini:DISPLAY:LOG_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:50:ini:RS274NGC:PARAMETER_FILE:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "resolved_file", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:70:ini:HAL:POSTGUI_HALFILE:linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal", + "to": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "missing", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:52:ini:RS274NGC:SUBROUTINE_PATH:nc_files/probe/basic_probe/macros", + "to": "resource:nc_files/probe/basic_probe/macros" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "configuration_resource", + "parse_status": "host_or_variable_path", + "resource_source_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:29:ini:DISPLAY:PROGRAM_PREFIX:~/linuxcnc/nc_files", + "to": "resource:~/linuxcnc/nc_files" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini" + }, + { + "from": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/abort/feed-rate/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/abort/feed-rate/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/abort/feed-rate/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/abort/feed-rate/test.ini" + }, + { + "from": "config:linuxcnc/tests/abort/feed-rate/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/abort/feed-rate/test.ini" + }, + { + "from": "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/abort/g64/test.ini" + }, + { + "from": "config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini" + }, + { + "from": "config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/abort/stop-button-crazy-move/test.ini" + }, + { + "from": "config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/ccomp/early-exit/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/ccomp/early-exit/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/ccomp/early-exit/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/ccomp/early-exit/test.ini" + }, + { + "from": "config:linuxcnc/tests/ccomp/early-exit/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/ccomp/early-exit/test.ini" + }, + { + "from": "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/classicladder/estop/classicladder-estop.ini" + }, + { + "from": "config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/halui/jogging/halui.ini" + }, + { + "from": "config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/halui/mdi/halui.ini" + }, + { + "from": "config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/hard-limits/hard-limits.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/hard-limits/hard-limits.hal" + }, + { + "from": "config:linuxcnc/tests/hard-limits/hard-limits.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/hard-limits/hard-limits.ini" + }, + { + "from": "config:linuxcnc/tests/hard-limits/hard-limits.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/hard-limits/hard-limits.ini" + }, + { + "from": "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini" + }, + { + "from": "config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/interp/mdi-oword-m66/interp.ini" + }, + { + "from": "config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini" + }, + { + "from": "config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/interp/subroutine-return/interp.ini" + }, + { + "from": "config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/io-startup/nonrandom/test.ini" + }, + { + "from": "config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/io-startup/random/test.ini" + }, + { + "from": "config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/lathe/lathe.ini" + }, + { + "from": "config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini" + }, + { + "from": "config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini" + }, + { + "from": "config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/matrixkins/core_sim.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/matrixkins/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/matrixkins/core_sim.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/matrixkins/test.ini" + }, + { + "from": "config:linuxcnc/tests/matrixkins/core_sim.hal:3:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins" + }, + { + "from": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/matrixkins/test.ini" + }, + { + "from": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins", + "kind": "implemented_by_component", + "to": "source:linuxcnc/src/hal/components/matrixkins.comp" + }, + { + "from": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins", + "kind": "implements_family", + "to": "family:coupled_linear" + }, + { + "from": "config:linuxcnc/tests/mdi-queue-length/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mdi-queue-length/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/mdi-queue-length/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/mdi-queue-length/test.ini" + }, + { + "from": "config:linuxcnc/tests/mdi-queue-length/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mdi-queue-length/test.ini" + }, + { + "from": "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini" + }, + { + "from": "config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini" + }, + { + "from": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini" + }, + { + "from": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/motion-logger/basic/test.ini" + }, + { + "from": "config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini" + }, + { + "from": "config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini" + }, + { + "from": "config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/motion/g0/motion-test.ini" + }, + { + "from": "config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini" + }, + { + "from": "config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini" + }, + { + "from": "config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/mqtt/simulator.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mqtt/simulator.hal" + }, + { + "from": "config:linuxcnc/tests/mqtt/simulator.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/mqtt/simulator.ini" + }, + { + "from": "config:linuxcnc/tests/mqtt/simulator.hal:1:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/mqtt/simulator.ini" + }, + { + "from": "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/remap/remap-io/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/remap/remap-io/test-ngc.ini" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/remap/remap-io/test-py.ini" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/remap/remap-io/test-ngc.ini" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/remap/remap-io/test-py.ini" + }, + { + "from": "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/remap/remap-reentry/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/remap/remap-reentry/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/remap/remap-reentry/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/remap/remap-reentry/test.ini" + }, + { + "from": "config:linuxcnc/tests/remap/remap-reentry/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/remap/remap-reentry/test.ini" + }, + { + "from": "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/rs274ngc-startup/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/rs274ngc-startup/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/rs274ngc-startup/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/rs274ngc-startup/test.ini" + }, + { + "from": "config:linuxcnc/tests/rs274ngc-startup/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/rs274ngc-startup/test.ini" + }, + { + "from": "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/single-step/test.ini" + }, + { + "from": "config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/startup-state/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/startup-state/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/startup-state/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/startup-state/test.ini" + }, + { + "from": "config:linuxcnc/tests/startup-state/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/startup-state/test.ini" + }, + { + "from": "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/statbuffer-g5x-abort/test.ini" + }, + { + "from": "config:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/statbuffer-g5x-abort/test.ini" + }, + { + "from": "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/t0/nonrandom/sim.ini" + }, + { + "from": "config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/t0/random-with-t0/sim.ini" + }, + { + "from": "config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/t0/random-without-t0/sim.ini" + }, + { + "from": "config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/tlo/g43-test.ini" + }, + { + "from": "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/tlo/mod_core_sim.hal:7:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/tlo/mod_core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/tlo/mod_core_sim.hal:7:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/tlo/g43-test.ini" + }, + { + "from": "config:linuxcnc/tests/tlo/mod_core_sim.hal:7:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/tool-info/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/tool-info/non-random/test.ini" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/tool-info/non-random/test.ini" + }, + { + "from": "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini" + }, + { + "from": "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini" + }, + { + "from": "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/m61/m61-test.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_owner", + "resolution_status": "explicit_reference", + "resource_source_id": null, + "to": "file:linuxcnc/tests/toolchanger/reload-tool/random/test.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "kind": "template_resolves_to", + "resolution_status": "explicit_reference", + "to": "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/reload-tool/random/test.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini" + }, + { + "from": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + }, + { + "from": "config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins", + "kind": "declared_in", + "to": "file:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal" + }, + { + "from": "config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins", + "kind": "implements_family", + "to": "family:cartesian" + } + ], + "graph_fingerprint_sha256": "6215e9cd4fe75dced1faee39b45924ba4fea6bfda9a0cbadb13ae55765e9b9a3", + "inputs": { + "closure_report": "coverage/kinematics-source-closure.report.json", + "closure_sha256": "d3af5e19e38d8dc2640323dcf755d0323e871815087b9eece9d76544b0b0cfa6", + "config_resources": "coverage/config-resources.jsonl" + }, + "nodes": [ + { + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 144, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/axis_9axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 136, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/axis_mm.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 47, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/canterp.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 52, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 15, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 25, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "loadrt", + "line": 25, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 26, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 29, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 33, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 36, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 39, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 43, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 46, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 50, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 53, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 18, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "family": "coupled_linear", + "kind": "hal_transform", + "line": 5, + "module": "corexy_by_hal", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "family": "coupled_linear", + "kind": "kinematics", + "line": 10, + "module": "corexykins", + "node_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 38, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/db_demo/base.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 46, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 52, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 56, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/opa.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 19, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal:3:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 22, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 25, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/foam/axis_foam.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gantry/gantry.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 6, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 33, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 34, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 69, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 69, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 69, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/probe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/histogram_demo.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/historical_lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 71, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ini_hal_demo.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 2, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ini_with_includes/kins.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 135, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 116, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 118, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 98, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 20, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 13, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 7, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 11, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini" + }, + { + "family": "coupled_linear", + "kind": "kinematics", + "line": 8, + "module": "corexykins", + "node_id": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "path": "linuxcnc/configs/sim/axis/laser/laser.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 62, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/lathe.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 142, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini" + }, + { + "family": "parallel_delta", + "kind": "kinematics", + "line": 59, + "module": "lineardeltakins", + "node_id": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "path": "linuxcnc/configs/sim/axis/ldelta.ini" + }, + { + "family": "parallel_delta", + "kind": "kinematics", + "line": 107, + "module": "lineardeltakins", + "node_id": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "path": "linuxcnc/configs/sim/axis/ldelta_demo.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 39, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/minimal_xyz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 40, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 101, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 106, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 90, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 89, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 102, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 66, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/acc_test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 117, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/axis_noio.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_test.hal" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 212, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/medium.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini" + }, + { + "family": "parallel_pentapod", + "kind": "kinematics", + "line": 113, + "module": "pentakins", + "node_id": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/plasma/imperial.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/plasma/metric.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/profile_axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 74, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/random_tc.ini" + }, + { + "family": "parallel_delta", + "kind": "kinematics", + "line": 59, + "module": "rotarydeltakins", + "node_id": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "path": "linuxcnc/configs/sim/axis/rdelta.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 75, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/remap/cycle/cycle.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 105, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 156, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/demo.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 92, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 92, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini" + }, + { + "family": "coupled_linear", + "kind": "kinematics", + "line": 15, + "module": "rosekins", + "node_id": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "path": "linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal:3:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 11, + "module": "rotatekins", + "node_id": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 51, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/simtcl/twopass_base.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/spindle_orient/orient.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 74, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/twopass/twopass.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 159, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 45, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:45:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" + }, + { + "family": "five_axis", + "kind": "kinematics", + "line": 98, + "module": "5axiskins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 4, + "module": "maxkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 4, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini" + }, + { + "family": "five_axis_trt", + "kind": "kinematics", + "line": 31, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 40, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:40:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 65, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 66, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 67, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 68, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 69, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 70, + "module": "xyzab_tdr_kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "family": "five_axis_trt", + "kind": "loadrt", + "line": 35, + "module": "xyzac-trt-kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 11, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 28, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "five_axis_trt", + "kind": "kinematics", + "line": 43, + "module": "xyzac-trt-kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 49, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 52, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:52:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 7, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "five_axis_trt", + "kind": "loadrt", + "line": 35, + "module": "xyzac-trt-kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal:35:loadrt:xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 11, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 28, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "family": "five_axis_trt", + "kind": "kinematics", + "line": 43, + "module": "xyzbc-trt-kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 49, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 52, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:52:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 7, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:7:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 4, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:3:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 43, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:43:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "family": "parallel_hexapod", + "kind": "kinematics", + "line": 76, + "module": "genhexkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 15, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:15:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 7, + "module": "genserkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini" + }, + { + "family": "switchable", + "kind": "kinematics", + "line": 10, + "module": "millturn", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 17, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:17:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 15, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:15:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:3:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 7, + "module": "pumakins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 12, + "module": "genserkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 19, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:19:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 6, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:6:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 12, + "module": "genserkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 19, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:19:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 6, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:6:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 106, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:106:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 139, + "module": "pumakins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:3:switchkins:switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 56, + "module": "scarakins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "family": "switch_control", + "kind": "switchkins", + "line": 62, + "module": "motion.switchkins-type", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:62:switchkins:motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 2, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal:2:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 10, + "module": "scorbot-kins", + "node_id": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal:3:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 13, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 13, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc" + }, + { + "family": "missing_resource", + "kind": "missing_resource", + "line": 0, + "module": "", + "node_id": "config:linuxcnc/configs/sim/axis_manualtoolchange.hal:0:missing_resource:hal", + "path": "linuxcnc/configs/sim/axis_manualtoolchange.hal" + }, + { + "family": "missing_resource", + "kind": "missing_resource", + "line": 0, + "module": "", + "node_id": "config:linuxcnc/configs/sim/core_sim9.hal:0:missing_resource:hal", + "path": "linuxcnc/configs/sim/core_sim9.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 4, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal:4:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 82, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.ini" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/craftsman/sim_core.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/6_axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/7_axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 71, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/8_axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/9_axis.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim4.hal" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_6.hal" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_7.hal" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_8.hal" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_9.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 101, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 89, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 121, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 111, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 107, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 98, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 131, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 99, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 113, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 134, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 94, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 102, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 128, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 119, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 95, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 96, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 96, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 96, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 95, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 101, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 70, + "module": "scarakins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 4, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal:4:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal" + }, + { + "family": "five_axis_trt", + "kind": "kinematics", + "line": 46, + "module": "xyzac-trt-kins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 109, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 166, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 135, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 133, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 133, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 135, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 124, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 137, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 138, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_mm.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 79, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 114, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 111, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 128, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 153, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 150, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 154, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 120, + "module": "scarakins", + "node_id": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 217, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 114, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 111, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 89, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 198, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qttouchy/qttouchy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 207, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/blender.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini" + }, + { + "family": "serial_robot", + "kind": "kinematics", + "line": 121, + "module": "scarakins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini" + }, + { + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 164, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 220, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 191, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 224, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 210, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 134, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 80, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 75, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 62, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 63, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 63, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 229, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 232, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 232, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 229, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 214, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 184, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/tester.ini" + }, + { + "family": "parallel_delta", + "kind": "kinematics", + "line": 59, + "module": "lineardeltakins", + "node_id": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "path": "linuxcnc/configs/sim/tklinuxcnc/ldelta.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 79, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini" + }, + { + "family": "parallel_tripod", + "kind": "kinematics", + "line": 59, + "module": "tripodkins", + "node_id": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 11, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 90, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "path": "linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "path": "linuxcnc/configs/sim/touchy/gladevcp/touchy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 75, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "path": "linuxcnc/configs/sim/touchy/touchy.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 6, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 63, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 56, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 74, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "node_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/abort/feed-rate/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/abort/feed-rate/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 59, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins", + "path": "linuxcnc/tests/abort/feed-rate/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 60, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins", + "path": "linuxcnc/tests/abort/g64/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins", + "path": "linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins", + "path": "linuxcnc/tests/abort/stop-button-crazy-move/test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/ccomp/early-exit/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/ccomp/early-exit/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins", + "path": "linuxcnc/tests/ccomp/early-exit/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 38, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins", + "path": "linuxcnc/tests/classicladder/estop/classicladder-estop.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 60, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins", + "path": "linuxcnc/tests/halui/jogging/halui.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins", + "path": "linuxcnc/tests/halui/mdi/halui.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/hard-limits/hard-limits.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/hard-limits/hard-limits.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 37, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins", + "path": "linuxcnc/tests/hard-limits/hard-limits.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins", + "path": "linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 47, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins", + "path": "linuxcnc/tests/interp/mdi-oword-m66/interp.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 41, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins", + "path": "linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 41, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins", + "path": "linuxcnc/tests/interp/subroutine-return/interp.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins", + "path": "linuxcnc/tests/io-startup/nonrandom/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 43, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins", + "path": "linuxcnc/tests/io-startup/random/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 47, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins", + "path": "linuxcnc/tests/lathe/lathe.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins", + "path": "linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins", + "path": "linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/matrixkins/core_sim.hal:3:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/matrixkins/core_sim.hal" + }, + { + "family": "coupled_linear", + "kind": "kinematics", + "line": 53, + "module": "matrixkins", + "node_id": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins", + "path": "linuxcnc/tests/matrixkins/test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/mdi-queue-length/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/mdi-queue-length/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins", + "path": "linuxcnc/tests/mdi-queue-length/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 60, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins", + "path": "linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 46, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins", + "path": "linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins", + "path": "linuxcnc/tests/motion-logger/basic/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins", + "path": "linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins", + "path": "linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins", + "path": "linuxcnc/tests/motion/g0/motion-test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins", + "path": "linuxcnc/tests/motion/jogwheel-axis/motion-test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins", + "path": "linuxcnc/tests/motion/jogwheel-joint/motion-test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/mqtt/simulator.hal:1:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/mqtt/simulator.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 52, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins", + "path": "linuxcnc/tests/mqtt/simulator.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/remap/remap-io/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins", + "path": "linuxcnc/tests/remap/remap-io/test-ngc.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins", + "path": "linuxcnc/tests/remap/remap-io/test-py.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/remap/remap-reentry/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/remap/remap-reentry/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins", + "path": "linuxcnc/tests/remap/remap-reentry/test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/rs274ngc-startup/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/rs274ngc-startup/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins", + "path": "linuxcnc/tests/rs274ngc-startup/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 43, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins", + "path": "linuxcnc/tests/single-step/test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/startup-state/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/startup-state/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins", + "path": "linuxcnc/tests/startup-state/test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 56, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins", + "path": "linuxcnc/tests/statbuffer-g5x-abort/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins", + "path": "linuxcnc/tests/t0/nonrandom/sim.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins", + "path": "linuxcnc/tests/t0/random-with-t0/sim.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins", + "path": "linuxcnc/tests/t0/random-without-t0/sim.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 46, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins", + "path": "linuxcnc/tests/tlo/g43-test.ini" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 7, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/tlo/mod_core_sim.hal:7:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/tlo/mod_core_sim.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/tool-info/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins", + "path": "linuxcnc/tests/tool-info/non-random/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins", + "path": "linuxcnc/tests/tool-info/random-no-startup-tool/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins", + "path": "linuxcnc/tests/tool-info/random-with-startup-tool/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 39, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins", + "path": "linuxcnc/tests/toolchanger/m61/m61-test.ini" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins", + "path": "linuxcnc/tests/toolchanger/m61/mod_core_sim.hal" + }, + { + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "node_id": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "path": "linuxcnc/tests/toolchanger/reload-tool/core_sim.hal" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins", + "path": "linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins", + "path": "linuxcnc/tests/toolchanger/reload-tool/random/test.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins", + "path": "linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini" + }, + { + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins", + "path": "linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini" + }, + { + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "node_id": "config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins", + "path": "linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal" + }, + { + "kind": "diagnostic", + "node_id": "diagnostic:missing-resource" + }, + { + "family": "cartesian", + "kind": "family", + "node_id": "family:cartesian" + }, + { + "family": "coupled_linear", + "kind": "family", + "node_id": "family:coupled_linear" + }, + { + "family": "five_axis", + "kind": "family", + "node_id": "family:five_axis" + }, + { + "family": "five_axis_trt", + "kind": "family", + "node_id": "family:five_axis_trt" + }, + { + "family": "parallel_delta", + "kind": "family", + "node_id": "family:parallel_delta" + }, + { + "family": "parallel_hexapod", + "kind": "family", + "node_id": "family:parallel_hexapod" + }, + { + "family": "parallel_pentapod", + "kind": "family", + "node_id": "family:parallel_pentapod" + }, + { + "family": "parallel_tripod", + "kind": "family", + "node_id": "family:parallel_tripod" + }, + { + "family": "serial_robot", + "kind": "family", + "node_id": "family:serial_robot" + }, + { + "family": "switchable", + "kind": "family", + "node_id": "family:switchable" + }, + { + "family": "user_static", + "kind": "family", + "node_id": "family:user_static" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/anglejog/anglejog.ini", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/axis.ini", + "path": "linuxcnc/configs/sim/axis/axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/axis_9axis.ini", + "path": "linuxcnc/configs/sim/axis/axis_9axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/axis_mm.ini", + "path": "linuxcnc/configs/sim/axis/axis_mm.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/canterp.ini", + "path": "linuxcnc/configs/sim/axis/canterp.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal", + "path": "linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/db_demo/base.inc", + "path": "linuxcnc/configs/sim/axis/db_demo/base.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini", + "path": "linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini", + "path": "linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/external_offsets/opa.ini", + "path": "linuxcnc/configs/sim/axis/external_offsets/opa.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini", + "path": "linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini", + "path": "linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/foam/axis_foam.ini", + "path": "linuxcnc/configs/sim/axis/foam/axis_foam.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gantry/gantry.ini", + "path": "linuxcnc/configs/sim/axis/gantry/gantry.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/geometry/xyzc.ini", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gladevcp/probe.ini", + "path": "linuxcnc/configs/sim/axis/gladevcp/probe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini", + "path": "linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/histogram_demo.ini", + "path": "linuxcnc/configs/sim/axis/histogram_demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/historical_lathe.ini", + "path": "linuxcnc/configs/sim/axis/historical_lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ini_hal_demo.ini", + "path": "linuxcnc/configs/sim/axis/ini_hal_demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc", + "path": "linuxcnc/configs/sim/axis/ini_with_includes/kins.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/laser/laser.ini", + "path": "linuxcnc/configs/sim/axis/laser/laser.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/lathe.ini", + "path": "linuxcnc/configs/sim/axis/lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ldelta.ini", + "path": "linuxcnc/configs/sim/axis/ldelta.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ldelta_demo.ini", + "path": "linuxcnc/configs/sim/axis/ldelta_demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/minimal_xyz.ini", + "path": "linuxcnc/configs/sim/axis/minimal_xyz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc", + "path": "linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini", + "path": "linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/acc_test.ini", + "path": "linuxcnc/configs/sim/axis/orphans/acc_test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/axis_noio.ini", + "path": "linuxcnc/configs/sim/axis/orphans/axis_noio.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_test.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/medium.ini", + "path": "linuxcnc/configs/sim/axis/orphans/medium.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/py.ini.notworking", + "path": "linuxcnc/configs/sim/axis/orphans/py.ini.notworking" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/orphans/pyiocontrol.ini.notworking", + "path": "linuxcnc/configs/sim/axis/orphans/pyiocontrol.ini.notworking" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/pentapod/pentapod.ini", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/plasma/imperial.ini", + "path": "linuxcnc/configs/sim/axis/plasma/imperial.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/plasma/metric.ini", + "path": "linuxcnc/configs/sim/axis/plasma/metric.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/profile_axis.ini", + "path": "linuxcnc/configs/sim/axis/profile_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/random_tc.ini", + "path": "linuxcnc/configs/sim/axis/random_tc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/rdelta.ini", + "path": "linuxcnc/configs/sim/axis/rdelta.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini", + "path": "linuxcnc/configs/sim/axis/remap/cycle/cycle.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini", + "path": "linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/rotate/rotatekins.hal", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/rotate/rotatekins.ini", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc", + "path": "linuxcnc/configs/sim/axis/simtcl/twopass_base.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/spindle_orient/orient.ini", + "path": "linuxcnc/configs/sim/axis/spindle_orient/orient.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/twopass/twopass.ini", + "path": "linuxcnc/configs/sim/axis/twopass/twopass.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal", + "path": "linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/axis_manualtoolchange.hal", + "path": "linuxcnc/configs/sim/axis_manualtoolchange.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/core_sim9.hal", + "path": "linuxcnc/configs/sim/core_sim9.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/craftsman/craftsmancnc-axis.ini", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc-axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/craftsman/craftsmancnc.hal", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/craftsman/craftsmancnc.ini", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/craftsman/sim_core.hal", + "path": "linuxcnc/configs/sim/craftsman/sim_core.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/6_axis.ini", + "path": "linuxcnc/configs/sim/gmoccapy/6_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/7_axis.ini", + "path": "linuxcnc/configs/sim/gmoccapy/7_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini", + "path": "linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/8_axis.ini", + "path": "linuxcnc/configs/sim/gmoccapy/8_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/9_axis.ini", + "path": "linuxcnc/configs/sim/gmoccapy/9_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim4.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim4.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_6.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_7.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_8.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_9.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/gscreen_mm.ini", + "path": "linuxcnc/configs/sim/gscreen/gscreen_mm.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/spartan/spartan.hal", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/gscreen/spartan/spartan.ini", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini", + "path": "linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini", + "path": "linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc", + "path": "linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc", + "path": "linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qttouchy/qttouchy.ini", + "path": "linuxcnc/configs/sim/qttouchy/qttouchy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/blender.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/blender.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/qtvcp_screens/tester.ini", + "path": "linuxcnc/configs/sim/qtvcp_screens/tester.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini", + "path": "linuxcnc/configs/sim/tklinuxcnc/ldelta.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini", + "path": "linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini", + "path": "linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/tklinuxcnc/tripod.ini", + "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini", + "path": "linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini", + "path": "linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini", + "path": "linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini", + "path": "linuxcnc/configs/sim/touchy/gladevcp/touchy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/touchy/touchy.ini", + "path": "linuxcnc/configs/sim/touchy/touchy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/core_sim.hal", + "path": "linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/gantrysim.hal", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker.hal", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/abort/feed-rate/core_sim.hal", + "path": "linuxcnc/tests/abort/feed-rate/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/abort/feed-rate/test.ini", + "path": "linuxcnc/tests/abort/feed-rate/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/abort/g64/test.ini", + "path": "linuxcnc/tests/abort/g64/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini", + "path": "linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/abort/stop-button-crazy-move/test.ini", + "path": "linuxcnc/tests/abort/stop-button-crazy-move/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/ccomp/early-exit/core_sim.hal", + "path": "linuxcnc/tests/ccomp/early-exit/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/ccomp/early-exit/test.ini", + "path": "linuxcnc/tests/ccomp/early-exit/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/classicladder/estop/classicladder-estop.ini", + "path": "linuxcnc/tests/classicladder/estop/classicladder-estop.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/halui/jogging/halui.ini", + "path": "linuxcnc/tests/halui/jogging/halui.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/halui/mdi/halui.ini", + "path": "linuxcnc/tests/halui/mdi/halui.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/hard-limits/hard-limits.hal", + "path": "linuxcnc/tests/hard-limits/hard-limits.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/hard-limits/hard-limits.ini", + "path": "linuxcnc/tests/hard-limits/hard-limits.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini", + "path": "linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/interp/mdi-oword-m66/interp.ini", + "path": "linuxcnc/tests/interp/mdi-oword-m66/interp.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini", + "path": "linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/interp/subroutine-return/interp.ini", + "path": "linuxcnc/tests/interp/subroutine-return/interp.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/io-startup/nonrandom/test.ini", + "path": "linuxcnc/tests/io-startup/nonrandom/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/io-startup/random/test.ini", + "path": "linuxcnc/tests/io-startup/random/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/lathe/lathe.ini", + "path": "linuxcnc/tests/lathe/lathe.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini", + "path": "linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini", + "path": "linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/matrixkins/core_sim.hal", + "path": "linuxcnc/tests/matrixkins/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/matrixkins/test.ini", + "path": "linuxcnc/tests/matrixkins/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mdi-queue-length/core_sim.hal", + "path": "linuxcnc/tests/mdi-queue-length/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mdi-queue-length/test.ini", + "path": "linuxcnc/tests/mdi-queue-length/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini", + "path": "linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal", + "path": "linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini", + "path": "linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/motion-logger/basic/test.ini", + "path": "linuxcnc/tests/motion-logger/basic/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini", + "path": "linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini", + "path": "linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/motion/g0/motion-test.ini", + "path": "linuxcnc/tests/motion/g0/motion-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini", + "path": "linuxcnc/tests/motion/jogwheel-axis/motion-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini", + "path": "linuxcnc/tests/motion/jogwheel-joint/motion-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mqtt/simulator.hal", + "path": "linuxcnc/tests/mqtt/simulator.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/mqtt/simulator.ini", + "path": "linuxcnc/tests/mqtt/simulator.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/remap/remap-io/core_sim.hal", + "path": "linuxcnc/tests/remap/remap-io/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/remap/remap-io/test-ngc.ini", + "path": "linuxcnc/tests/remap/remap-io/test-ngc.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/remap/remap-io/test-py.ini", + "path": "linuxcnc/tests/remap/remap-io/test-py.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/remap/remap-reentry/core_sim.hal", + "path": "linuxcnc/tests/remap/remap-reentry/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/remap/remap-reentry/test.ini", + "path": "linuxcnc/tests/remap/remap-reentry/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/rs274ngc-startup/core_sim.hal", + "path": "linuxcnc/tests/rs274ngc-startup/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/rs274ngc-startup/test.ini", + "path": "linuxcnc/tests/rs274ngc-startup/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/single-step/test.ini", + "path": "linuxcnc/tests/single-step/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/startup-state/core_sim.hal", + "path": "linuxcnc/tests/startup-state/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/startup-state/test.ini", + "path": "linuxcnc/tests/startup-state/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal", + "path": "linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/statbuffer-g5x-abort/test.ini", + "path": "linuxcnc/tests/statbuffer-g5x-abort/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/t0/nonrandom/sim.ini", + "path": "linuxcnc/tests/t0/nonrandom/sim.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/t0/random-with-t0/sim.ini", + "path": "linuxcnc/tests/t0/random-with-t0/sim.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/t0/random-without-t0/sim.ini", + "path": "linuxcnc/tests/t0/random-without-t0/sim.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/tlo/g43-test.ini", + "path": "linuxcnc/tests/tlo/g43-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/tlo/mod_core_sim.hal", + "path": "linuxcnc/tests/tlo/mod_core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/tool-info/core_sim.hal", + "path": "linuxcnc/tests/tool-info/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/tool-info/non-random/test.ini", + "path": "linuxcnc/tests/tool-info/non-random/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini", + "path": "linuxcnc/tests/tool-info/random-no-startup-tool/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini", + "path": "linuxcnc/tests/tool-info/random-with-startup-tool/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/m61/m61-test.ini", + "path": "linuxcnc/tests/toolchanger/m61/m61-test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal", + "path": "linuxcnc/tests/toolchanger/m61/mod_core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal", + "path": "linuxcnc/tests/toolchanger/reload-tool/core_sim.hal" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini", + "path": "linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/reload-tool/random/test.ini", + "path": "linuxcnc/tests/toolchanger/reload-tool/random/test.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini", + "path": "linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini", + "path": "linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini" + }, + { + "kind": "file", + "node_id": "file:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal", + "path": "linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal" + }, + { + "kind": "resource", + "node_id": "resource:", + "parse_status": "empty", + "path": "" + }, + { + "kind": "resource", + "node_id": "resource:/home/.../linuxcnc/nc_files/examples/remap-subroutines", + "parse_status": "outside_repo", + "path": "/home/.../linuxcnc/nc_files/examples/remap-subroutines" + }, + { + "kind": "resource", + "node_id": "resource:/home/.../linuxcnc/nc_files/probe/basic_probe/macros", + "parse_status": "outside_repo", + "path": "/home/.../linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "kind": "resource", + "node_id": "resource:/home/.../linuxcnc/nc_files/remap_lib", + "parse_status": "outside_repo", + "path": "/home/.../linuxcnc/nc_files/remap_lib" + }, + { + "kind": "resource", + "node_id": "resource:/home/emcmesa/linuxcnc/nc_files", + "parse_status": "outside_repo", + "path": "/home/emcmesa/linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:/home/jim/linuxcnc/nc_files", + "parse_status": "outside_repo", + "path": "/home/jim/linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:/home/rolf/linuxcnc/nc_files", + "parse_status": "outside_repo", + "path": "/home/rolf/linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:/media/imac/linuxcnc/nc_files", + "parse_status": "outside_repo", + "path": "/media/imac/linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:/root/emc2/ngc/", + "parse_status": "outside_repo", + "path": "/root/emc2/ngc/" + }, + { + "kind": "resource", + "node_id": "resource:/tmp/rose.var", + "parse_status": "outside_repo", + "path": "/tmp/rose.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/anglejog", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/anglejog" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/anglejog/LIB:basic_sim.tcl -no_sim_spindle -no_use_hal_manualtoolchange", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/anglejog/LIB:basic_sim.tcl -no_sim_spindle -no_use_hal_manualtoolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/anglejog/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/anglejog/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/canterp.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/canterp.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/check_xyz_constraints.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/check_xyz_constraints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/classicladder/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/classicladder/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/classicladder/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/classicladder/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/cooling.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/cooling.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/external_offsets" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_sim_spindle", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_sim_spindle" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/halscope -i dynamic_offsets.halscope", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/halscope -i dynamic_offsets.halscope" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/opa.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/sim_pin --title \"MPG Simulator\" \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/sim_pin --title \"MPG Simulator\" \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/external_offsets/sim_pin ini.x.max_acceleration ini.x.max_velocity", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/external_offsets/sim_pin ini.x.max_acceleration ini.x.max_velocity" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/extrajoints" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/extrajoints/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/extrajoints/halshow --fformat %.6f extrajoints.halshow" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/extrajoints/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j4 extrajoint\" \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j5 extrajoints\" \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/extrajoints/sim_pin --title \"j5 extrajoints\" \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/foam/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/foam/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/foam/foam.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/foam/foam.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/foam/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/foam/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/foam/sim.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/foam/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/gantry_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/halscope -i gantry_jjog.halscope", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/halscope -i gantry_jjog.halscope" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/image-to-gcode.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/image-to-gcode.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/sim.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gantry/toolpaths.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gantry/toolpaths.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/geometry/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/geometry/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/geometry/xyzc.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/gladevcp" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gladevcp/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gladevcp/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gladevcp/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/gladevcp/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/gladevcp/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/hal-histogram -geometry +10+10\\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/hal-histogram -geometry +10+10\\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/hal-histogram -geometry +50+50\\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/hal-histogram -geometry +50+50\\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/v2_gladevcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/v2_gladevcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:wheeljogpins.tcl 0.1", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/LIB:wheeljogpins.tcl 0.1" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/halshow xyzb.halshow", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/halshow xyzb.halshow" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.joint/mode=Pulse \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.joint/mode=Pulse \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.teleop/mode=Pulse \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/sim_pin halui.mode.teleop/mode=Pulse \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/laser/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/laser/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/laser/laser.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/laser/laser.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/laser/laser.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/laser/laser.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/laser/postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/laser/postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe-fanucy/sim-lathe.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/sim-lathe.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/sim-lathe.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/sim-lathe.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/lathe_multispindle/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/locking_indexer.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/locking_indexer.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ngcgui/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ngcgui/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ngcgui/sim-lathe.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ngcgui/sim-lathe.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/ngcgui/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/ngcgui/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/check_xyz_constraints.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/check_xyz_constraints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/rack-toolchange/nc_subroutines", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/rack-toolchange/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/sim.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/orphans/tool.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/orphans/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/custom.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/panelui-demo/custom.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/panelui-demo/linuxcnc.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/panelui-demo/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/panelui-demo/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/pentapod" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/pentapod/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/kinematics.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/pentapod/kinematics.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/pentapod/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/pentapod/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/pentapod/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/pentapod/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/plasma" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/custom.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/plasma/custom.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial_mdi_history.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/imperial_mdi_history.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial_parameters.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/imperial_parameters.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial_position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/imperial_position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/metric_mdi_history.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/metric_mdi_history.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/metric_parameters.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/metric_parameters.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/metric_position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/metric_position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/metric_tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/plasma/metric_tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_panel.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_panel.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_stepgen.tcl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/plasma/plasmac2/lib/sim/sim_stepgen.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/plasma/qtplasmac_comp.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/plasma/qtplasmac_comp.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/position9.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/position9.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/postgui_calib_helper.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/postgui_calib_helper.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/qtvcp/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/qtvcp/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/qtvcp/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/qtvcp/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/qtvcp/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/qtvcp/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/qtvcp/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/qtvcp/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/cycle/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/cycle/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/locking_indexer.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/cycle/locking_indexer.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/position9.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/cycle/position9.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/sim-9axis.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/cycle/sim-9axis.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/cycle/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/cycle/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/getting-started/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/gladevcp.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/gladevcp.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/nc_subroutines", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/rack-toolchange/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_subroutines", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/stop-lookahead/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/remap/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/remap/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/rose_engine", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/rose_engine" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/rose_engine/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/rose_engine/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/rose_engine/halshow rose_engine.halshow", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/rose_engine/halshow rose_engine.halshow" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/rose_engine/rose.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/rose_engine/rose.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim-9axis.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim-9axis.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim-lathe.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim-lathe.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim_ldelta.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim_ldelta.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim_pin >/dev/null \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim_pin >/dev/null \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim_pin \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim_pin \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim_rdelta.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim_rdelta.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/spindle_orient/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/spindle_orient/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/spindle_orient/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/orient.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/spindle_orient/orient.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/spindle_orient/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/spindle_orient/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/spindle_orient/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/spindle_orient/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/twopass/postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/twopass/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/emc2.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/emc2.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/emc2.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/emc2.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/sim_vmc.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/sim_vmc.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/spindle.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/spindle.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/hbm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hbm/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/hexapod-sim/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/melfa-sim/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/millturn" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/halshow ./millturn.halshow", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/halshow ./millturn.halshow" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/millturn.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/millturn/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/nc_files", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/puma/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/puma/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/puma_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/puma/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/puma/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/scara/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/scara/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/axis/vismach/scara/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/gantry_mm.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/gantry_mm.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/craftsman_spindle.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/craftsman/craftsman_spindle.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/craftsman_toolchange.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/craftsman/craftsman_toolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/craftsmancnc.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/craftsman/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/linuxcnc/nc_files", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/craftsman/linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/macros", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/craftsman/macros" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/mdi_history.dat", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/craftsman/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/sim_core.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/craftsman/sim_core.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/craftsman/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/craftsman/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/button.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/button.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim4.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim4.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_6.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_7.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_8.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_9.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/dro.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/dro.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/signals.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/macros", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/macros" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/simulated_home_lathe.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/spindle_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/macros", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/gmoccapy/macros" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/emc2.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/emc2.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/pendant.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/pendant.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/pendant.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/pendant.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/pendant_5_axis.glade", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/pendant_5_axis.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/pendant_5_axis.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/pendant_5_axis.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/signals.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/signals.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/signals.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/signals.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/plasma_config/torches.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/torches.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/pyngcgui.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/pyngcgui.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gmoccapy/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/simulated_home.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/spindle_sim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/spindle_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/tool_sensor.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/tool_sensor.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/tool_sensor.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/tool_sensor.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/v_buttonlist.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/v_buttonlist.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/v_buttonlist.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/v_buttonlist.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/vcp_box.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/vcp_box.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gmoccapy/vcp_box.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gmoccapy/vcp_box.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gremlin_view.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gremlin_view.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/gscreen" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/locking_indexer.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/locking_indexer.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position9.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/position9.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim-9gscreen.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/sim-9gscreen.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/lathe_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/lathe_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/ngcgui/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/macros", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/macros" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/silverdragon/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/custom.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/spartan/custom.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/spartan/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/linuxcnc.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/gscreen/spartan/linuxcnc.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/spartan.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/gscreen/spartan/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/gscreen/spartan/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/hitcounter.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/hitcounter.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/lathe.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/lathe.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/lathe_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/lathe_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/manual-example.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/manual-example.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/manual-example.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/manual-example.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/nstools.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/nstools.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyngcgui.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyngcgui.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyngcgui_popupkeyboard.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyngcgui_popupkeyboard.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/pyvcp_demo/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/pyvcp_demo/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/custom.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyvcp_demo/custom.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/pyvcp_demo/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/pyvcp_demo/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/pyvcp_demo/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/pyvcp_demo/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/WORKINGFOLDER/qtaxis_gantry.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/WORKINGFOLDER/qtaxis_gantry.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/image-to-gcode.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/sim.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtaxis/gantry/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/gantry/toolpaths.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/gantry/toolpaths.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/qtdragon_scara.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/qtdragon_scara.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/non-trivial/scara/silver_dragon.png", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/WORKINGFOLDER/qtaxis.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/WORKINGFOLDER/qtaxis.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/sim.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtaxis/xyz/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtaxis/xyz/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtaxis/xyz/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/WORKINGFOLDER/qtdragon.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-xyyz-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/simulated-xyyz-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/WORKINGFOLDER/qtdragon.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/WORKINGFOLDER/qtdragon.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/\\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/\\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/WORKINGFOLDER/qtdragon.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon_hd.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/WORKINGFOLDER/qtdragon_hd.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/WORKINGFOLDER/qtdragon_hd.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/WORKINGFOLDER/qtdragon_hd.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/WORKINGFOLDER/qttouchy.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/WORKINGFOLDER/qttouchy.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/sim.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qttouchy/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/sim_panel.ui", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/sim_panel.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qttouchy/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qttouchy/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/qtvcp_screens" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/blender.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/blender.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_800x600.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_800x600.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_9axis.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_9axis.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_gantry.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_gantry.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_mm.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qt_cnc_mm.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis_gantry.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtaxis_gantry.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtx11mill.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/WORKINGFOLDER/qtx11mill.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/gantrysim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/image-to-gcode.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/WORKINGFOLDER/qtlathe.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/WORKINGFOLDER/qtlathe.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/locking_indexer.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/locking_indexer.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/WORKINGFOLDER/qtdragon_scara.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/qtdragon_scara.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/qtdragon_scara.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.tbl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/silver_dragon.png", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/silver_dragon.png" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/position9.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/position9.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/position_mm.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/position_mm.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qt_cnc_800x600.ui", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_cnc_800x600.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/LIB:basic_sim.tcl -no_use_hal_manualtoolchange", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/LIB:basic_sim.tcl -no_use_hal_manualtoolchange" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/WORKINGFOLDER/qtaxis_lathe.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/WORKINGFOLDER/qtaxis_lathe.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/WORKINGFOLDER/qtdragon.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-xyyz-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated-xyyz-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_mm.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/sim_mm.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/sim_spindle_encoder.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated-gantry-home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/tester.ui", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/tester.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/qtvcp_screens/toolpaths.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/qtvcp_screens/toolpaths.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/sim.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/sim.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/sim_mm.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/sim_mm.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/sim_mm_test.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/sim_mm_test.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/simpockets.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/simpockets.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/axis_manualtoolchange.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/axis_manualtoolchange.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/image-to-gcode.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/servo_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/servo_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/sim_ldelta.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/sim_ldelta.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/toolpaths.py", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/toolpaths.py" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/tklinuxcnc/tripodsim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/tklinuxcnc/tripodsim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/core_sim.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/gladevcp/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/gladevcp/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/gladevcp/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/ngcgui/LIB:basic_sim.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/LIB:hookup_moveoff.tcl", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/ngcgui/LIB:hookup_moveoff.tcl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/ngcgui/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/moveoff_gui \\", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/ngcgui/moveoff_gui \\" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/sim-lathe.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/ngcgui/sim-lathe.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/ngcgui/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/ngcgui/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/sim.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/touchy/sim.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/touchy_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/touchy_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/touchy/touchy_test_panel.glade", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/touchy/touchy_test_panel.glade" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/WORKINGFOLDER/woodpecker.pref" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/core_sim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/core_sim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/gantrysim.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/linuxcnc.gif", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/linuxcnc.gif" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/mdi_history.dat", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/mdi_history.dat" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/metric_parameters.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/metric_parameters.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/position.txt", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/position.txt" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/simulated-gantry-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/simulated-gantry-xyzab-home.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/simulated-gantry-xyzab-home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/simulated_home.hal", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/simulated_home.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/tool.tbl", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/tool.tbl" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.log", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.log" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker.var", + "parse_status": "missing", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.var" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal", + "parse_status": "resolved_file", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/gcmc_lib", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/gcmc_lib" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/gladevcp_lib", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/gladevcp_lib" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/ngcgui_lib", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/ngcgui_lib" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/ngcgui_lib/lathe", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/ngcgui_lib/lathe" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/ngcgui_lib/utilitysubs", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/ngcgui_lib/utilitysubs" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/probe/basic_probe/macros", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/probe/basic_probe/macros" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/remap-subroutines", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/remap-subroutines" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/remap_lib", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/remap_lib" + }, + { + "kind": "resource", + "node_id": "resource:linuxcnc/nc_files/remap_lib/common_nc_subs", + "parse_status": "resolved_directory", + "path": "linuxcnc/nc_files/remap_lib/common_nc_subs" + }, + { + "kind": "resource", + "node_id": "resource:nc_files/probe/basic_probe/macros", + "parse_status": "missing", + "path": "nc_files/probe/basic_probe/macros" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files/examples/macros/lathe", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files/examples/macros/lathe" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files/examples/macros/mill", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files/examples/macros/mill" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files/examples/ngcgui_lib" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files/macros/lathe", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files/macros/lathe" + }, + { + "kind": "resource", + "node_id": "resource:~/linuxcnc/nc_files/macros/probe", + "parse_status": "host_or_variable_path", + "path": "~/linuxcnc/nc_files/macros/probe" + }, + { + "kind": "component_source", + "node_id": "source:linuxcnc/src/hal/components/corexy_by_hal.comp", + "path": "linuxcnc/src/hal/components/corexy_by_hal.comp" + }, + { + "kind": "component_source", + "node_id": "source:linuxcnc/src/hal/components/matrixkins.comp", + "path": "linuxcnc/src/hal/components/matrixkins.comp" + }, + { + "kind": "component_source", + "node_id": "source:linuxcnc/src/hal/components/millturn.comp", + "path": "linuxcnc/src/hal/components/millturn.comp" + }, + { + "kind": "component_source", + "node_id": "source:linuxcnc/src/hal/components/xyzab_tdr_kins.comp", + "path": "linuxcnc/src/hal/components/xyzab_tdr_kins.comp" + } + ], + "samples": { + "path": "coverage/kinematics-oracle-samples.jsonl", + "sample_ids": [ + "kinematics-sample:cartesian:nominal-roundtrip", + "kinematics-sample:coupled_linear:nominal-roundtrip", + "kinematics-sample:five_axis:nominal-roundtrip", + "kinematics-sample:five_axis_trt:nominal-roundtrip", + "kinematics-sample:parallel_delta:nominal-roundtrip", + "kinematics-sample:parallel_hexapod:nominal-roundtrip", + "kinematics-sample:parallel_pentapod:nominal-roundtrip", + "kinematics-sample:parallel_tripod:nominal-roundtrip", + "kinematics-sample:serial_robot:nominal-roundtrip", + "kinematics-sample:switchable:nominal-roundtrip", + "kinematics-sample:user_static:nominal-roundtrip" + ], + "sha256": "df32ade49e3c3beb49e52d26200e37766dd04c5bee5dba4b1c87695439bf87bd" + }, + "schema": "kinematics-config-graph-report.v1" +} diff --git a/coverage/kinematics-golden-schema.json b/coverage/kinematics-golden-schema.json new file mode 100644 index 0000000..1e74ece --- /dev/null +++ b/coverage/kinematics-golden-schema.json @@ -0,0 +1,53 @@ +{ + "$id": "linuxcnc-web-wasm/kinematics-golden.v1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "context_id": { + "type": "string" + }, + "input": { + "type": "object" + }, + "operation": { + "const": "fk_ik_fk_roundtrip" + }, + "result": { + "additionalProperties": true, + "required": [ + "status", + "error_code", + "kinematics_type", + "branch_id", + "flags", + "current_tick", + "config_hash", + "axis_joint_mapping" + ], + "type": "object" + }, + "sample_id": { + "type": "string" + }, + "schema": { + "const": "kinematics-golden.v1" + }, + "tolerances": { + "additionalProperties": { + "minimum": 0, + "type": "number" + }, + "type": "object" + } + }, + "required": [ + "schema", + "context_id", + "sample_id", + "operation", + "input", + "result" + ], + "title": "LinuxCNC Web/WASM kinematics FK/IK golden", + "type": "object" +} diff --git a/coverage/kinematics-mapping-contract.json b/coverage/kinematics-mapping-contract.json new file mode 100644 index 0000000..42fbced --- /dev/null +++ b/coverage/kinematics-mapping-contract.json @@ -0,0 +1,92 @@ +{ + "axis_order": { + "A": 3, + "B": 4, + "C": 5, + "U": 6, + "V": 7, + "W": 8, + "X": 0, + "Y": 1, + "Z": 2 + }, + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "contract_sha256": "f79ad4af7f460b0d544d835fa63fe331d7c39907d7394edba1c7a3cbef612874", + "error_cases": [ + "null_config", + "null_pose", + "nonfinite_joint", + "nonfinite_pose", + "joint_count_mismatch", + "enabled_limit_violation", + "invalid_coordinate", + "inverse_only_forward", + "forward_only_inverse" + ], + "inputs": { + "header": "/home/mes006/linuxcncWebWASM/wasm-core/include/sim_kinematics.h", + "header_sha256": "db16293ec3645559a0be71a40963693f3d1e3f5fdedc92902be19b47f653dfa8", + "source": "/home/mes006/linuxcncWebWASM/wasm-core/src/sim_kinematics.c", + "source_sha256": "7a77915c59f190bcbe5c93d8f53498745bfcf978c167ba8878a21b914f9401fd" + }, + "sample_mappings": [ + { + "axis_joint": { + "X": 0, + "Y": 1, + "Z": 2 + }, + "coordinates": "XYZ" + }, + { + "axis_joint": { + "X": 0, + "Y": 1, + "Z": 3 + }, + "coordinates": "XYYZ", + "duplicate": { + "axis": "Y", + "copies": [ + 2 + ], + "owner": 1 + } + }, + { + "axis_joint": { + "X": 0, + "Y": 1, + "Z": 3 + }, + "case_fold": true, + "coordinates": "xyyz" + }, + { + "axis_joint": { + "A": 3, + "B": 4, + "C": 5, + "U": 6, + "V": 7, + "W": 8, + "X": 0, + "Y": 1, + "Z": 2 + }, + "coordinates": "XYZABCUVW" + } + ], + "schema": "kinematics-mapping-contract.v1", + "semantics": { + "coordinate_case": "ASCII case-fold to uppercase", + "duplicate_axis": "first occurrence owns axis; later duplicates copy the first joint during inverse", + "extra_joints": "coordinates may repeat and joint_count remains authoritative", + "forward": "joint-to-pose uses mapped first joint for each axis", + "home": "zeroes all configured joints, then computes forward pose", + "inverse": "pose-to-joint initializes all joints then fills duplicates deterministically", + "limits": "enabled inclusive min/max; violation returns SIM_KIN_ERR_RANGE", + "state_hash": "includes config bytes, configured joint prefix and pose bytes" + }, + "status": "verified" +} diff --git a/coverage/kinematics-numeric-policy.json b/coverage/kinematics-numeric-policy.json new file mode 100644 index 0000000..8a96037 --- /dev/null +++ b/coverage/kinematics-numeric-policy.json @@ -0,0 +1,74 @@ +{ + "angles": { + "constants": "full-precision DEG_TO_RAD/RAD_TO_DEG literals", + "input_units": "degrees for rotary joints", + "internal_units": "radians" + }, + "boundary_matrix": [ + { + "case": "NaN joint", + "expected": "SIM_KIN_ERR_NONFINITE" + }, + { + "case": "+Inf pose", + "expected": "SIM_KIN_ERR_NONFINITE" + }, + { + "case": "negative tolerance", + "expected": "SIM_KIN_ERR_CONFIGURATION" + }, + { + "case": "iteration > 100000", + "expected": "SIM_KIN_ERR_CONFIGURATION" + }, + { + "case": "XYZBC B=90 singular", + "expected": "SIM_KIN_ERR_SINGULAR" + }, + { + "case": "enabled limit violation", + "expected": "SIM_KIN_ERR_RANGE" + } + ], + "compiler": { + "denormals": "host-independent finite checks before arithmetic", + "fast_math": false, + "fenv_access": "default", + "fp_contract": "off" + }, + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "exact_fields": [ + "status", + "error_code", + "kinematics_type", + "branch_id", + "flags", + "current_tick", + "config_hash", + "axis_joint_mapping", + "event_order" + ], + "inputs": { + "abi_contract_sha256": "3177c4d28200c5136981d28489ac4578a84360f9688ee8614e23af8d7526b50b", + "mapping_contract_sha256": "49bd93c716bd5b5eb6064f75ea2b8ba26dfa819c6166c22c5375ebeba927dd91" + }, + "iterations": { + "default": 0, + "maximum": 100000, + "nonconvergence": "stable error; never repaired by tolerance widening", + "zero_means": "algorithm default" + }, + "policy_sha256": "dcf2fdb6bf488f81ec55f43ebc3180f52665b54ba9cd9b4c6bbfb8dbd2a39560", + "schema": "kinematics-numeric-policy.v1", + "status": "verified", + "tolerances": { + "configuration_nonnegative": true, + "golden_absolute_default": 1e-09, + "golden_relative_default": 1e-09, + "singularity_threshold": 1e-12, + "state_hash_float_quantization": 1e-09, + "tolerance_applies_only_to": [ + "finite numeric pose/joint fields" + ] + } +} diff --git a/coverage/kinematics-oracle-samples.jsonl b/coverage/kinematics-oracle-samples.jsonl new file mode 100644 index 0000000..c6f3413 --- /dev/null +++ b/coverage/kinematics-oracle-samples.jsonl @@ -0,0 +1,11 @@ +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins","config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins","config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins","config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins","config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins","config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins","config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins","config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins","config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins","config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins","config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins","config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins","config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins","config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins","config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins","config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins","config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins","config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins","config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins","config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins","config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins","config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins","config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins","config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins","config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins","config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins","config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins","config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins","config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins","config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins","config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins","config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins","config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins","config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins","config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins","config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins","config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins","config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins","config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins","config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins","config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins","config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins","config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins","config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins","config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins","config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins","config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins","config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins","config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins","config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins","config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins","config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins","config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins","config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins","config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins","config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins","config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins","config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins","config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins","config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins","config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins","config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins","config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins","config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins","config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins","config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins","config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins","config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins","config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins","config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins","config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins","config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins","config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins","config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins","config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins","config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins","config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins","config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins","config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins","config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins","config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins","config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins","config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins","config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins","config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins","config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins","config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins","config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins","config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins","config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins","config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins","config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins","config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins","config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins","config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins","config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins","config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins","config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins","config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins","config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins","config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins","config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins","config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins","config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins","config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins","config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins","config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins","config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins","config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins","config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins","config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins","config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins","config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins","config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins","config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins","config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins","config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins","config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins","config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins","config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins","config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins","config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins","config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins","config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins","config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins","config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins","config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins","config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins","config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins","config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins","config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins","config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins","config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins","config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins"],"configuration_id":"config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"cartesian","input":{"joint":[10.0,-5.0,2.5]},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:cartesian:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/maxkins.c","source:linuxcnc/src/emc/kinematics/rotatekins.c","source:linuxcnc/src/emc/kinematics/trivkins.c"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal","config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins","config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins","config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins","config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins"],"configuration_id":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"coupled_linear","input":{"joint":[12.0,4.0,3.0]},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:coupled_linear:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/corexykins.c","source:linuxcnc/src/emc/kinematics/rosekins.c"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins"],"configuration_id":"config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"five_axis","input":{"joint":[10.0,20.0,30.0,15.0,-20.0]},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:five_axis:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/5axiskins.c"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal:35:loadrt:xyzac-trt-kins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins","config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins"],"configuration_id":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"five_axis_trt","input":{"joint":[100.0,50.0,200.0,30.0,45.0]},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:five_axis_trt:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/trtfuncs.c","source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c","source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins","config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins","config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins","config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins"],"configuration_id":"config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"parallel_delta","input":{"pose":{"abcuvw":[0.0,0.0,0.0,0.0,0.0,0.0],"tran":[5.0,-3.0,-250.0]}},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:parallel_delta:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h","source:linuxcnc/src/emc/kinematics/lineardeltakins.c","source:linuxcnc/src/emc/kinematics/lineardeltakins.cc","source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h","source:linuxcnc/src/emc/kinematics/rotarydeltakins.c","source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins"],"configuration_id":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"parallel_hexapod","input":{"pose":{"abcuvw":[1.0,-1.0,2.0,0.0,0.0,0.0],"tran":[0.0,0.0,100.0]}},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:parallel_hexapod:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/genhexkins.c","source:linuxcnc/src/emc/kinematics/genhexkins.h"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins"],"configuration_id":"config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"parallel_pentapod","input":{"pose":{"abcuvw":[1.0,2.0,0.0,0.0,0.0,0.0],"tran":[0.0,0.0,75.0]}},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:parallel_pentapod:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/pentakins.c","source:linuxcnc/src/emc/kinematics/pentakins.h"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins"],"configuration_id":"config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"parallel_tripod","input":{"pose":{"abcuvw":[2.0,-1.0,0.0,0.0,0.0,0.0],"tran":[1.0,2.0,100.0]}},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:parallel_tripod:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/tripodkins.c"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins","config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins","config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins","config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins","config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins","config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins","config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins","config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins","config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins","config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins"],"configuration_id":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"serial_robot","input":{"joint":[0.0,-30.0,45.0,10.0,20.0,-15.0]},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:serial_robot:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/genserfuncs.c","source:linuxcnc/src/emc/kinematics/genserkins.c","source:linuxcnc/src/emc/kinematics/genserkins.h","source:linuxcnc/src/emc/kinematics/pumakins.c","source:linuxcnc/src/emc/kinematics/pumakins.h","source:linuxcnc/src/emc/kinematics/scarakins.c","source:linuxcnc/src/emc/kinematics/scorbot-kins.c"]} +{"configuration_candidates":["config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:7:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:3:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn","config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:3:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:6:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:6:switchkins:switchkins","config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:3:switchkins:switchkins","config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:3:switchkins:switchkins","config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:3:switchkins:switchkins"],"configuration_id":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"switchable","input":{"joint":[5.0,6.0,7.0,30.0],"switch_sequence":[0,1,0]},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:switchable:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/switchkins.c","source:linuxcnc/src/emc/kinematics/switchkins.h"]} +{"configuration_candidates":["config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins"],"configuration_id":"config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins","execution":{"command":null,"reason":"linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle","status":"blocked"},"expected":{"absolute_tolerance":1e-09,"exact_fields":["status","flags","branch_id"],"invariant":"pose_roundtrip"},"family":"user_static","input":{"pose":{"abcuvw":[0.0,0.0,0.0,0.0,0.0,0.0],"tran":[10.0,20.0,30.0]}},"operation":"fk_ik_fk_roundtrip","sample_id":"kinematics-sample:user_static:nominal-roundtrip","source_ids":["source:linuxcnc/src/emc/kinematics/cubic.c","source:linuxcnc/src/emc/kinematics/cubic.h","source:linuxcnc/src/emc/kinematics/ugenserkins.c","source:linuxcnc/src/emc/kinematics/userkfuncs.c"]} diff --git a/coverage/kinematics-oracle.report.json b/coverage/kinematics-oracle.report.json new file mode 100644 index 0000000..aa27a00 --- /dev/null +++ b/coverage/kinematics-oracle.report.json @@ -0,0 +1,599 @@ +{ + "blocked_count": 11, + "blocking_reasons": [ + "linuxcnc/unit_tests/kinematics" + ], + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "golden_schema": "coverage/kinematics-golden-schema.json", + "golden_schema_sha256": "8d6abe21ad350bb5a5ddc38d8fd9044ed2fa622f4331804a85cad55eb5a30a63", + "inputs": { + "closure": "coverage/kinematics-source-closure.report.json", + "closure_sha256": "d3af5e19e38d8dc2640323dcf755d0323e871815087b9eece9d76544b0b0cfa6", + "samples": "coverage/kinematics-oracle-samples.jsonl", + "samples_sha256": "df32ade49e3c3beb49e52d26200e37766dd04c5bee5dba4b1c87695439bf87bd" + }, + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "ready_count": 0, + "records": [ + { + "configuration_id": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "cartesian", + "input": { + "joint": [ + 10.0, + -5.0, + 2.5 + ] + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "cartesian", + "status": "blocked" + }, + "sample_id": "kinematics-sample:cartesian:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "coupled_linear", + "input": { + "joint": [ + 12.0, + 4.0, + 3.0 + ] + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "coupled_linear", + "status": "blocked" + }, + "sample_id": "kinematics-sample:coupled_linear:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "five_axis", + "input": { + "joint": [ + 10.0, + 20.0, + 30.0, + 15.0, + -20.0 + ] + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "five_axis", + "status": "blocked" + }, + "sample_id": "kinematics-sample:five_axis:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "five_axis_trt", + "input": { + "joint": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ] + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "five_axis_trt", + "status": "blocked" + }, + "sample_id": "kinematics-sample:five_axis_trt:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "parallel_delta", + "input": { + "pose": { + "abcuvw": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tran": [ + 5.0, + -3.0, + -250.0 + ] + } + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "parallel_delta", + "status": "blocked" + }, + "sample_id": "kinematics-sample:parallel_delta:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "parallel_hexapod", + "input": { + "pose": { + "abcuvw": [ + 1.0, + -1.0, + 2.0, + 0.0, + 0.0, + 0.0 + ], + "tran": [ + 0.0, + 0.0, + 100.0 + ] + } + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "parallel_hexapod", + "status": "blocked" + }, + "sample_id": "kinematics-sample:parallel_hexapod:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "parallel_pentapod", + "input": { + "pose": { + "abcuvw": [ + 1.0, + 2.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tran": [ + 0.0, + 0.0, + 75.0 + ] + } + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "parallel_pentapod", + "status": "blocked" + }, + "sample_id": "kinematics-sample:parallel_pentapod:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "parallel_tripod", + "input": { + "pose": { + "abcuvw": [ + 2.0, + -1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tran": [ + 1.0, + 2.0, + 100.0 + ] + } + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "parallel_tripod", + "status": "blocked" + }, + "sample_id": "kinematics-sample:parallel_tripod:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "serial_robot", + "input": { + "joint": [ + 0.0, + -30.0, + 45.0, + 10.0, + 20.0, + -15.0 + ] + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "serial_robot", + "status": "blocked" + }, + "sample_id": "kinematics-sample:serial_robot:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "switchable", + "input": { + "joint": [ + 5.0, + 6.0, + 7.0, + 30.0 + ], + "switch_sequence": [ + 0, + 1, + 0 + ] + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "switchable", + "status": "blocked" + }, + "sample_id": "kinematics-sample:switchable:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + }, + { + "configuration_id": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins", + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "execution": { + "native_smoke": { + "binary": "build-native/sim_kinematics_test", + "exit_code": 0, + "result_sha256": "96d4ce027200030704ead75b891ead3c3af9b39f60eaccaafa875e0e8d526e3a", + "status": "passed", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_sha256": "4792c9d03a753904bfef11d4b53e680ec1ff00a8b593addd95f4d566aa722140" + }, + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle", + "status": "blocked" + }, + "family": "user_static", + "input": { + "pose": { + "abcuvw": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "tran": [ + 10.0, + 20.0, + 30.0 + ] + } + }, + "operation": "fk_ik_fk_roundtrip", + "result": { + "axis_joint_mapping": null, + "branch_id": null, + "config_hash": null, + "current_tick": 0, + "error_code": "MISSING_OFFICIAL_ORACLE", + "flags": null, + "kinematics_type": "user_static", + "status": "blocked" + }, + "sample_id": "kinematics-sample:user_static:nominal-roundtrip", + "schema": "kinematics-golden.v1", + "tolerances": { + "absolute_tolerance": 1e-09, + "exact_fields": [ + "status", + "flags", + "branch_id" + ], + "invariant": "pose_roundtrip" + } + } + ], + "report_fingerprint_sha256": "a501a60ae74340f05642468dc4911f56b9c5a3e93b0ccdb2e2a11657754cac7e", + "sample_count": 11, + "schema": "kinematics-oracle-report.v1", + "status": "blocked" +} diff --git a/coverage/kinematics-runtime.report.json b/coverage/kinematics-runtime.report.json new file mode 100644 index 0000000..9a8c194 --- /dev/null +++ b/coverage/kinematics-runtime.report.json @@ -0,0 +1,286 @@ +{ + "closure": { + "blocking_reason": "linuxcnc/unit_tests/kinematics is absent; official oracle remains blocked while the deterministic runtime slice is implemented", + "full_linuxcnc_kinematics": false, + "official_unit_tests_present": false, + "oracle_ready": false + }, + "determinism": { + "byte_identical": true, + "native_ctest": "passed", + "runs": 2, + "state_hash_identical": true + }, + "error_boundaries": [ + "argument", + "nonfinite", + "range", + "configuration", + "singular", + "unsupported", + "unknown_type" + ], + "implementation": "wasm-core/src/sim_kinematics.c", + "inputs": { + "bytes": 241271, + "file_count": 38, + "files": [ + { + "bytes": 9705, + "path": "linuxcnc/src/emc/kinematics/5axiskins.c", + "sha256": "2e29fee21936cfbbafbb000290276e4b32eaba4831014e08d3fb833f2b3dac72" + }, + { + "bytes": 1620, + "path": "linuxcnc/src/emc/kinematics/Submakefile", + "sha256": "1c207052f7321b3380891762da32b8985592c3dba3cc894a8fd946229809db69" + }, + { + "bytes": 1202, + "path": "linuxcnc/src/emc/kinematics/blend.fig", + "sha256": "8ccf10df11d69958f286b3c8012fc239a07093d3789e5be9c96a6d487b92a89b" + }, + { + "bytes": 2272, + "path": "linuxcnc/src/emc/kinematics/corexykins.c", + "sha256": "507963e0ed464440fa530db11b1b15c6a663182eb016855d105554ae8125ae5b" + }, + { + "bytes": 9497, + "path": "linuxcnc/src/emc/kinematics/cubic.c", + "sha256": "64f9070d413fa0ebf94668d753e13d17049317899777b59ea100b30db00acda3" + }, + { + "bytes": 1764, + "path": "linuxcnc/src/emc/kinematics/cubic.h", + "sha256": "00a9d34bb44045890221eeb0f44bd93b76b695b6e788405a8b6f78deae338436" + }, + { + "bytes": 26308, + "path": "linuxcnc/src/emc/kinematics/genhexkins.c", + "sha256": "8df3d8bd812e040a06bc29ea91625fd143bacf26903b106ae6700430aca7f6b9" + }, + { + "bytes": 3680, + "path": "linuxcnc/src/emc/kinematics/genhexkins.h", + "sha256": "580a2e1703a5c0efb683b4a26f805af434edcfe9d1ade7890e44307f8b0b236c" + }, + { + "bytes": 22068, + "path": "linuxcnc/src/emc/kinematics/genserfuncs.c", + "sha256": "e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781" + }, + { + "bytes": 2313, + "path": "linuxcnc/src/emc/kinematics/genserkins.c", + "sha256": "cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075" + }, + { + "bytes": 5247, + "path": "linuxcnc/src/emc/kinematics/genserkins.h", + "sha256": "2e40cf061dafe050ad242f197b4acdbd916adcea41885e4edbb2b8c7b5423833" + }, + { + "bytes": 9696, + "path": "linuxcnc/src/emc/kinematics/kinematics.h", + "sha256": "33b3744b9ceeeef3d992e9ca9cda89d93a3357d2d0a2af2023ca728e4be8e428" + }, + { + "bytes": 12821, + "path": "linuxcnc/src/emc/kinematics/kins_util.c", + "sha256": "9a9dfbeb0f5d307b5fe99556b10a1869ccbcabc699be1bcfcfd80864ffb0288e" + }, + { + "bytes": 4416, + "path": "linuxcnc/src/emc/kinematics/lineardeltakins-common.h", + "sha256": "7785bcd7d095b431169cdd0f753c177ece643ee825f7ff4b8cdb6f8cd4706df8" + }, + { + "bytes": 2489, + "path": "linuxcnc/src/emc/kinematics/lineardeltakins.c", + "sha256": "792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748" + }, + { + "bytes": 1808, + "path": "linuxcnc/src/emc/kinematics/lineardeltakins.cc", + "sha256": "77634457a4dd3f5617f91a66651965c5b8326fc0d4dfc916d9cd63b89b0ec0f1" + }, + { + "bytes": 3763, + "path": "linuxcnc/src/emc/kinematics/maxkins.c", + "sha256": "01529e0db1b698af621d63c30bc8ae382757dd367f3e4babc9b959873344b4e7" + }, + { + "bytes": 699, + "path": "linuxcnc/src/emc/kinematics/meson.build", + "sha256": "a5de13a16e378a98c1c3df262881592396818510e835a5f2fe2101ed512072a3" + }, + { + "bytes": 14441, + "path": "linuxcnc/src/emc/kinematics/pentakins.c", + "sha256": "1b385c2ab3a1bcb106d1d22a2dfe14519dba9c4a5df4cb31071a180845cda4c6" + }, + { + "bytes": 1560, + "path": "linuxcnc/src/emc/kinematics/pentakins.h", + "sha256": "af8551454177bbcc85e4e17377e059573ab8c15dc022de2a4be9b70dead74e2d" + }, + { + "bytes": 10870, + "path": "linuxcnc/src/emc/kinematics/pumakins.c", + "sha256": "5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2" + }, + { + "bytes": 1232, + "path": "linuxcnc/src/emc/kinematics/pumakins.h", + "sha256": "a90cafe680533e0a8d43cf72c9f6bea380267d60090ea82ead4e3eb58bcddf58" + }, + { + "bytes": 3839, + "path": "linuxcnc/src/emc/kinematics/rosekins.c", + "sha256": "1de39affa6b99f21c5e902fc67c8b1d8876d44fc8eff920afd816d7f956cfd78" + }, + { + "bytes": 5753, + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins-common.h", + "sha256": "ba3e037fe2ad7eba29aa2b657492ac83f1979a38c9249fef52e598ba0d5c9136" + }, + { + "bytes": 2964, + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins.c", + "sha256": "64c8aeb6998a481f3c26743093dd157d2d22dc6769b258e3e6012b5c1f784773" + }, + { + "bytes": 1835, + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins.cc", + "sha256": "7e2fd63a2a7f5718d706faa21f903b36007226b065ad6d234631d2514f653618" + }, + { + "bytes": 2372, + "path": "linuxcnc/src/emc/kinematics/rotatekins.c", + "sha256": "b104c7e0eb726f48b83daa4d596db5ca8021d803ab17dd123db9b9410ce5f47c" + }, + { + "bytes": 7467, + "path": "linuxcnc/src/emc/kinematics/scarakins.c", + "sha256": "f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9" + }, + { + "bytes": 11893, + "path": "linuxcnc/src/emc/kinematics/scorbot-kins.c", + "sha256": "89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d" + }, + { + "bytes": 11718, + "path": "linuxcnc/src/emc/kinematics/switchkins.c", + "sha256": "4de32a4a147e5ceee5346b9c6bf471dddf5c64ff58afe5044406c50bcd96b7f5" + }, + { + "bytes": 1184, + "path": "linuxcnc/src/emc/kinematics/switchkins.h", + "sha256": "f6e5323aa16daaac8e07bba622d0bf969102ad0d9c00d41621c08af31e0bb9b1" + }, + { + "bytes": 9211, + "path": "linuxcnc/src/emc/kinematics/tripodkins.c", + "sha256": "0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f" + }, + { + "bytes": 2429, + "path": "linuxcnc/src/emc/kinematics/trivkins.c", + "sha256": "a08cd347b8dde7d7e201ddde93a1cdef47e8126e58f355d4270fccf6d48819bc" + }, + { + "bytes": 13363, + "path": "linuxcnc/src/emc/kinematics/trtfuncs.c", + "sha256": "ced2f9d4732681e2e82153b2f6343eccdf6972222d558d1e277bf1ec0bdc87fd" + }, + { + "bytes": 11327, + "path": "linuxcnc/src/emc/kinematics/ugenserkins.c", + "sha256": "dee63aebaa11f2867657bc4b9052f6a8e8bd875e06bd8a9df2d3edac9eb1c31d" + }, + { + "bytes": 2653, + "path": "linuxcnc/src/emc/kinematics/userkfuncs.c", + "sha256": "146238645955f8d4e2cb0cd34ff44db3a9dad01e149f81c08f8a53c19f1609bc" + }, + { + "bytes": 1896, + "path": "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "sha256": "24c633613db9876c2ec246e1519a63d288fd27c68296d89f89f0368105634e69" + }, + { + "bytes": 1896, + "path": "linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c", + "sha256": "d79c06db82930ef685809a87c7207398f7893f56a6a0dfe382df2c81eaeb9562" + } + ], + "fingerprint_sha256": "ffde02b34018456bed7d47117425a239aa7205ccd0cb40ef021e80c42e85d9f2", + "roots": [ + "linuxcnc/src/emc/kinematics", + "linuxcnc/unit_tests/kinematics" + ] + }, + "outputs": { + "bytes": 109761, + "file_count": 4, + "files": [ + { + "bytes": 5446, + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "939d4088d9e7120e4a405be154eb3d98cd4e5925fc27d47641c115624c1bd994" + }, + { + "bytes": 66830, + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "6abae835c16feb27ec1dc28a9ea5384f0bc5190217ba04a4997048d83066b905" + }, + { + "bytes": 37392, + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "c9e4d20973c6a487787504bd5de9a73829f53d8bbfd35f91e72c6c62c76f191e" + }, + { + "bytes": 93, + "path": "wasm-core/tests/sim_kinematics_test_main.c", + "sha256": "e567fe412145d3c9b04afc91d6efc6a53c3af3b3b52b7dda860cc289d42dbfc0" + } + ], + "fingerprint_sha256": "a2c4d27905dd0b153450b195aee62967773733428df8236779ee418b6d15cc13" + }, + "registered_build_targets": { + "native_ctest": true, + "native_sim_core": true, + "wasm_exports": [ + "sim_kinematics_init", + "sim_kinematics_forward", + "sim_kinematics_forward_ex", + "sim_kinematics_inverse", + "sim_kinematics_inverse_ex", + "sim_kinematics_home" + ], + "wasm_module": true + }, + "schema": "kinematics-runtime-report.v1", + "status": "partial", + "supported_types": [ + "trivkins", + "xyzac-trt", + "xyzbc-trt", + "xyzbcw", + "corexy", + "rose", + "maxkins", + "rotatekins", + "5axiskins", + "scara", + "puma", + "scorbot", + "genser", + "linear-delta", + "rotary-delta", + "tripod", + "genhex" + ] +} diff --git a/coverage/kinematics-source-closure.report.json b/coverage/kinematics-source-closure.report.json new file mode 100644 index 0000000..a5001af --- /dev/null +++ b/coverage/kinematics-source-closure.report.json @@ -0,0 +1,5649 @@ +{ + "closure": { + "configuration_entries_registered": true, + "hal_entries_registered": true, + "implementation_families_registered": true, + "missing_symbol_index_files": [], + "oracle_blocked_families": [ + "cartesian", + "coupled_linear", + "five_axis", + "five_axis_trt", + "parallel_delta", + "parallel_hexapod", + "parallel_pentapod", + "parallel_tripod", + "serial_robot", + "switchable", + "user_static" + ], + "oracle_ready": false, + "reason": "official kinematics unit-test root is absent", + "required_test_inputs_present": false, + "source_files_registered": true, + "symbol_entries_linked": true, + "symbol_index_empty_files": [ + "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c" + ] + }, + "configuration": { + "entries": [ + { + "config_id": "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/anglejog/anglejog.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "2a8c89afad09a946eddae548b3bfdc3aa4c1f385e785e24a6a50db722215d035" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 144, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/axis.ini", + "raw": "trivkins", + "source_sha": "a41915c4d0d48f46dd595d5d269e2fc73962f7d19897b220368dbc0e4dc96594" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/axis_9axis.ini", + "raw": "trivkins", + "source_sha": "6e3b7b49ed0ed5d840ff8052c05d9c50dad4baba7c9b0bef43a774056388b403" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 136, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/axis_mm.ini", + "raw": "trivkins", + "source_sha": "233aca0e517d0e6d70fa21da86734f6db80d4bee3761b28af92981bda1450749" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 47, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/canterp.ini", + "raw": "trivkins", + "source_sha": "6d7fa7ff7b5586731297f3c1da653c9266da87cd54a7351f361a9fd9ba1fee36" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 52, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini", + "raw": "trivkins", + "source_sha": "db8d3ac20cfb5cbdb3cc2c888cbadcbdc296b1e0dc171afabcdc167d2442581c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "raw": "trivkins coordinates=XYZ kinstype=b", + "source_sha": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins", + "family": "coupled_linear", + "kind": "kinematics", + "line": 10, + "module": "corexykins", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "raw": "corexykins", + "source_sha": "b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 38, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/db_demo/base.inc", + "raw": "trivkins coordinates=XYZABCUVW", + "source_sha": "b5fec746e03cdb9827cdd877006d50fc583da3772dad6323e7d0483735254b7d" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 46, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "4889a5b4227148c706ec527dda91ae4229161f23d942f62aec122492ee8138c7" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "d6002e2682da417caf66fcae6d6bee9df4c44f1f3355ef70a7f759ed57ad74f7" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 52, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "0e48f593dc6412e59d41844b58f2b3e1ff1e1c3659d38d64f06e4bb893a0f5e5" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 56, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/external_offsets/opa.ini", + "raw": "trivkins coordinates=XZC", + "source_sha": "b965264ad6d7a50a5332f8dd2f29928598fce155ec7954511cbdce549b9ff002" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 19, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini", + "raw": "trivkins coordinates=XYYZ kinstype=both", + "source_sha": "7b869a94e99c728403cb5fd38b949a1a95ab93a793e3d2b803dd85902595a0af" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 22, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini", + "raw": "trivkins coordinates=XYYZ kinstype=both", + "source_sha": "2c3bec6dcab552b34c84e1cfba25270afe1720f7a2ebf34a9d76cba800d0d538" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 25, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini", + "raw": "trivkins coordinates=XYYZ kinstype=both", + "source_sha": "cc254899d06dcd870a978cf22ec832b7b6c6603022749a1602e81a8d92afa950" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/foam/axis_foam.ini", + "raw": "trivkins coordinates=xyuv", + "source_sha": "a176d322e607957f554a954e2cf5e4241ff4ef1181b609990044dcc3432ff958" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gantry/gantry.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "acc7db8d6a38a64598ef277dfea3480f0e7400d461784a0fa0139bded93d5a68" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 6, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "da911359e075e5dbf9f129bafc389e059aa0f754bb4c0ce67b410ac63e5f91ab" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.ini", + "raw": "trivkins coordinates=xyyz kinstype=BOTH", + "source_sha": "0692df9758234ff4cb29b22ee58688fe2bf450d93cc386ae096e0a943ef475e3" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 33, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc.ini", + "raw": "trivkins coordinates=XYZC kinstype=both", + "source_sha": "cafbb5d4c275be232cadb1c4b11d84b2791e8c5544c20f84a7eed3b5ed8bab1e" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 34, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini", + "raw": "trivkins coordinates=XYZC kinstype=both", + "source_sha": "77aba40722c7a481aad66e3bf05b3fe283965b01d6444c1abc78841c6154363a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 69, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini", + "raw": "trivkins", + "source_sha": "c216752c2f032d47fe3910f6b66ac6375c8cb1201b6393b2f01b9c978f0708e6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 69, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini", + "raw": "trivkins", + "source_sha": "e8e88a97002d008d234d664d6f14e866b39c89fc09d2d392fffb80367cb6ed68" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini", + "raw": "trivkins", + "source_sha": "bdbad54582ad4f4cb304bf5c33ea3d45dc7b88a21445cc12737d5fc245624890" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 69, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/probe.ini", + "raw": "trivkins", + "source_sha": "66b8ba2d3c6c21409a6686923540058c85fcd5632ffb9827315a5b0f518c5ec9" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini", + "raw": "trivkins", + "source_sha": "651f25fd7656f739c2ae57f033183ba82fecb07b29c0b8b908608ce4d21ab6f5" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini", + "raw": "trivkins", + "source_sha": "b74f150915d006fe9ecd14ea0bcb231b7e04d1d44649020de7e0324f1782d3f5" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/histogram_demo.ini", + "raw": "trivkins", + "source_sha": "3eabc315db8e9e21951438ebd95fc5f30cf9b0d5ecb5277e66138f3ccdbdc7f8" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/historical_lathe.ini", + "raw": "trivkins", + "source_sha": "62809856093198b7a584553d71633a5b40210a059223277d2d3e640563e2de68" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 71, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ini_hal_demo.ini", + "raw": "trivkins coordinates=xyz kinstype=both", + "source_sha": "9abb6d63c35d14d440366d822283521c9169a89fc36d4685c4597fa77fab2879" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 2, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ini_with_includes/kins.inc", + "raw": "trivkins", + "source_sha": "53ad06617ca4627149891a60dac4a7fcddceab9138345ffa6f322e295aad87c9" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini", + "raw": "trivkins", + "source_sha": "9e23e1329c3dcd721f6b65f001b77dbd90e88d19b374545c250c49a88442deff" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 135, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini", + "raw": "trivkins", + "source_sha": "334ca534c3eafac4022c5895431515f8f05bbd2a1f150ae09e53b88938b2fd1a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 116, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini", + "raw": "trivkins", + "source_sha": "c91c56594fb99934a677786e7f8b6b90299cb29f4d8b3be3e85fe9a957579a69" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 118, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini", + "raw": "trivkins", + "source_sha": "1b4cdcba969b9494cc5137d602a9a9c216d158f89e3279cff6a41a035b0f9961" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 98, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini", + "raw": "trivkins", + "source_sha": "b8de1b4257ef8b8eded585e02e36e3ee6caedad53b3f18f45f94bc9cc0b12b2b" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 20, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini", + "raw": "trivkins coordinates=xyyzb kinstype=both", + "source_sha": "466833eb371da18428abeac86d759fe36ed5bff73b60a51c10e5303e39c86316" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 13, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini", + "raw": "trivkins coordinates=xyzb", + "source_sha": "796eacff0e56b2a65d9367836f8c9a17c7f967ae467bc1077503c18f57d362db" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 7, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc", + "raw": "trivkins coordinates=xyzx kinstype=BOTH", + "source_sha": "cdf8d4f7701db245b1e532c3815b35cdf2cb0629bf34e46ddb731613f3d972dd" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 11, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini", + "raw": "trivkins coordinates=xz kinstype=BOTH", + "source_sha": "d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini", + "raw": "trivkins coordinates=xz kinstype=BOTH", + "source_sha": "d94eae8d51a00027f75ff45b84f14e2721de466c4be1af3a5e15d7beeec58ac3" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "family": "coupled_linear", + "kind": "kinematics", + "line": 8, + "module": "corexykins", + "path": "linuxcnc/configs/sim/axis/laser/laser.ini", + "raw": "corexykins", + "source_sha": "343fcbd64cde1f191b3f9835b56bc8ad4ee244cf1eca824b7c7ec07305a260bd" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 62, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "be3724c6093b9d507e40d41ef1f5047c3244e8a95acba3aaa72176e15752675c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/lathe.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "e1ce3667979cf2ea4813aa492c2061727d3f02a4d9592db0e4889f4fa53a6447" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 142, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini", + "raw": "trivkins", + "source_sha": "fb2dbd47226cf39cc2149850e44d22324c6d6af886e1a2a0d43fa8d9ff36efe6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "family": "parallel_delta", + "kind": "kinematics", + "line": 59, + "module": "lineardeltakins", + "path": "linuxcnc/configs/sim/axis/ldelta.ini", + "raw": "lineardeltakins", + "source_sha": "1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "family": "parallel_delta", + "kind": "kinematics", + "line": 107, + "module": "lineardeltakins", + "path": "linuxcnc/configs/sim/axis/ldelta_demo.ini", + "raw": "lineardeltakins", + "source_sha": "ab0645308abe903bf66f36a328b43303aa0e8ad2d19e69a45e2703d665956439" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 39, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/minimal_xyz.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "63923bfb90f4aba843cb89f8dccc34732d803e2bfd5598ed23a2ba22f360d00a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 40, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc", + "raw": "trivkins", + "source_sha": "167fec587e59ae5503db74dfca9b71b3a78700bc77fbaef097fda81cc8cde87e" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 101, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini", + "raw": "trivkins", + "source_sha": "a461d37954c2e621505a4f8b6387c00a37489236ccf8522370e3076ddca33b00" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 106, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini", + "raw": "trivkins", + "source_sha": "a4cb71679b44afeb5734f8f07d1e2f63332faff54bfd7f9bfd4abfe706a651fe" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 90, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "ec11d67522375c3cd1afbb76b5f12cbe6e5e9e51b430697f54b0e7088639db5a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 89, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini", + "raw": "trivkins", + "source_sha": "ec42c49461f66a395154b09e18d94674a17e8a7249791c5adf33b85ea6a19640" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 102, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini", + "raw": "trivkins", + "source_sha": "71f8ed201b46c4642e3f7d787065940e5d29b31452a5802056ede460cecd9f52" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 66, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/acc_test.ini", + "raw": "trivkins", + "source_sha": "8a47360f16911553f9d1a046486ae507e1ee26f314f7ff37b250d5dca420c24a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 117, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/axis_noio.ini", + "raw": "trivkins", + "source_sha": "1358837965ce189bb445b1d75d7d4688fb9353ec02a9f3dae53fd3601a9943cc" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 212, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini", + "raw": "trivkins", + "source_sha": "6777d316581462ba253cec0f5e72ff148d7539bdd21b5e268c3e8da2455a7f31" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/medium.ini", + "raw": "trivkins", + "source_sha": "258bcd736539fa2d47af1d2c99dd748a2803f8b065c1ef0171e5a98cdbbbb0a6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "9b47416920a284322363e47771e612fca7415a0a0a594f9f7cbdf4a502c4757e" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins", + "family": "parallel_pentapod", + "kind": "kinematics", + "line": 113, + "module": "pentakins", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", + "raw": "pentakins", + "source_sha": "0fb210122ab482087d3a95e5e7487baecb84c3260dca1769970f4c19b2ad0618" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/plasma/imperial.ini", + "raw": "trivkins coordinates=xyyz", + "source_sha": "c531ab622b904085f05e9fa6fdf791c0a5ec15153f2e22acd5273676a35a9a25" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/plasma/metric.ini", + "raw": "trivkins coordinates=xyyz", + "source_sha": "7dab2e05a237c1a8ec472e9c09b03ac8a4a016786207d83aa17fa142a5d4defe" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/profile_axis.ini", + "raw": "trivkins", + "source_sha": "f3e7bed9eeecea860ab15d9eef4319715eedcb13315b25f9e62ac9797baed7bb" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 74, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini", + "raw": "trivkins", + "source_sha": "29d36b3435bc7b410d8dd57f794c9254a91c11ad06d1b26ad3be39489c4d51ee" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini", + "raw": "trivkins", + "source_sha": "5e610fd07b44d291422378996f098fa27e4dc075e3f3fb49ad6267471b426206" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/random_tc.ini", + "raw": "trivkins", + "source_sha": "d0b1614f287c10ad0d6dabf81aac69f78e187dddae30225ccaf501c8fdef0f29" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "family": "parallel_delta", + "kind": "kinematics", + "line": 59, + "module": "rotarydeltakins", + "path": "linuxcnc/configs/sim/axis/rdelta.ini", + "raw": "rotarydeltakins", + "source_sha": "53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 75, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/remap/cycle/cycle.ini", + "raw": "trivkins", + "source_sha": "ee64fa142ddf5a5288cae36a39445a32488250755f72ea5a1d3df436c2694e8c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 105, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini", + "raw": "trivkins", + "source_sha": "432ff320ac6d3518a73ae69e924c343c0740d04475a09f99391304f5f7e8cc76" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 156, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/remap/getting-started/demo.ini", + "raw": "trivkins", + "source_sha": "763dd31e6eb32047eb35eecb933f822db3a65e87b1a214f982517369eecdd976" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 92, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini", + "raw": "trivkins", + "source_sha": "6d52f5596d0f0f90c9a2da5a0802d6dfe35c4fbfe1c9cd4e9e6f34a3ab52e064" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 92, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini", + "raw": "trivkins", + "source_sha": "742f1ca34ffc95b1781673ca6ebed5cc23376cc7d94c520d4f8d4036699109e5" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini", + "raw": "trivkins", + "source_sha": "aea088d4bb017ac0474dca3f696c76533d374cac5a40b71944d76a1c89e9dafc" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "family": "coupled_linear", + "kind": "kinematics", + "line": 15, + "module": "rosekins", + "path": "linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini", + "raw": "rosekins", + "source_sha": "0685e9ca8c05c903b715e9fed6ecd23cbac13911ed335b6d14e24eb235de25d3" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins", + "family": "cartesian", + "kind": "kinematics", + "line": 11, + "module": "rotatekins", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.ini", + "raw": "rotatekins", + "source_sha": "324af9a73d21b5f0c9adaf3c97e698422790d403586901f9e161b6020b1fb4fa" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 51, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/simtcl/twopass_base.inc", + "raw": "trivkins", + "source_sha": "61bb7cabc2c70d8de648bf633ab8d4569995f3d98427bdb843557a704de953a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/spindle_orient/orient.ini", + "raw": "trivkins", + "source_sha": "98d9ca88da31ae88a2ae51b80027939a6ebc6e700326ee7f3a108506aa908b04" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 74, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/twopass/twopass.ini", + "raw": "trivkins", + "source_sha": "9b88396ab9461605c378ba933faf6cf17bfc7c960220e6fb4573d17c81f24526" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 159, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini", + "raw": "trivkins", + "source_sha": "b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins", + "family": "five_axis", + "kind": "kinematics", + "line": 98, + "module": "5axiskins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "raw": "5axiskins coordinates=xyzbcwy", + "source_sha": "789ba656f8ee3e97feba07b58eb242305898e745795891b1a7e536289bffe6bf" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "family": "cartesian", + "kind": "kinematics", + "line": 4, + "module": "maxkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", + "raw": "maxkins", + "source_sha": "ea7d453127122b7831e74de2204b446c514f3c999961a4be412b36880bacb8b6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 4, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini", + "raw": "trivkins coordinates=xyzabc", + "source_sha": "92afb2043a559d8eb9e638bfb9862c8ec917deb49987c788989fe538e8ddeefb" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "kinematics", + "line": 31, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "xyzab_tdr_kins", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "family": "five_axis_trt", + "kind": "kinematics", + "line": 43, + "module": "xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "raw": "xyzac-trt-kins sparm=identityfirst", + "source_sha": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "family": "five_axis_trt", + "kind": "kinematics", + "line": 43, + "module": "xyzbc-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "raw": "xyzbc-trt-kins sparm=identityfirst", + "source_sha": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini", + "raw": "trivkins", + "source_sha": "5825522880add3a8614e1fd5c168b16533f7b7b898b00a640b6e74f281270d2b" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini", + "raw": "trivkins", + "source_sha": "0f6e02c370c529d080bf913c1771169652bf8fe1b67cdda86cb93e2c8f933abe" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini", + "raw": "trivkins coordinates=xyzw", + "source_sha": "63eafce3b9ee34cc0ff489dd754e1657a4cfd08d16147f28be38687e19604b4d" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins", + "family": "parallel_hexapod", + "kind": "kinematics", + "line": 76, + "module": "genhexkins", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "raw": "genhexkins", + "source_sha": "362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "family": "serial_robot", + "kind": "kinematics", + "line": 7, + "module": "genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "raw": "genserkins", + "source_sha": "7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "family": "switchable", + "kind": "kinematics", + "line": 10, + "module": "millturn", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini", + "raw": "millturn", + "source_sha": "dfdb6e6c295c4ca9ebf9ff11f31c1b5d6fed4079b8e48b7b59cf7fee6b8b1547" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "family": "serial_robot", + "kind": "kinematics", + "line": 7, + "module": "pumakins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "raw": "pumakins", + "source_sha": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "family": "serial_robot", + "kind": "kinematics", + "line": 12, + "module": "genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "raw": "genserkins", + "source_sha": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "family": "serial_robot", + "kind": "kinematics", + "line": 12, + "module": "genserkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini", + "raw": "genserkins", + "source_sha": "50bf5dbc4cf70b0c18afea3dcbc577fbb6166152300cd16e27819de1fafe41b0" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "family": "serial_robot", + "kind": "kinematics", + "line": 139, + "module": "pumakins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini", + "raw": "pumakins", + "source_sha": "0204289788840e0dcaaeb55a2a85cf44a3754845636a897df6efeb165db0de15" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "family": "serial_robot", + "kind": "kinematics", + "line": 56, + "module": "scarakins", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "raw": "scarakins coordinates=xyzcab", + "source_sha": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins", + "family": "serial_robot", + "kind": "kinematics", + "line": 10, + "module": "scorbot-kins", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", + "raw": "scorbot-kins", + "source_sha": "4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini", + "raw": "trivkins coordinates=xyza kinstype=BOTH", + "source_sha": "a9d1ffd13139631bba4b4eec761e99b3245ad18be951d076eb3a949e3e6c3798" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 13, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc", + "raw": "trivkins coordinates=xyzc", + "source_sha": "333e7f1ce9adbefc48619dc33b8be4e7f9fbfb5def18f92f01b2082a8a497e3a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 13, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc", + "raw": "trivkins", + "source_sha": "39532fae2101b3348e38dee856a7af9df20ea4cc56e994d0f053c599de842b83" + }, + { + "config_id": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 82, + "module": "trivkins", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.ini", + "raw": "trivkins coordinates=XYZA", + "source_sha": "c9390a47578b640dfde32e50475a2ae386dd657dc5130ce2fe34564bf90bfc70" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/6_axis.ini", + "raw": "trivkins coordinates=XYZABC", + "source_sha": "1a47c6b666af1ca2f78f95022c27bb9f94626ffce26da23556fea15f767b7cba" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/7_axis.ini", + "raw": "trivkins coordinates=XYZABCU", + "source_sha": "10db48db4e53a03fe04c2e3dc849c84c9f3f2b77d51c233f64b92b375942a14f" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini", + "raw": "trivkins coordinates=XYZABCU", + "source_sha": "6f48447e4576d82a57742dc94babcecf2e813a2afbe398acfcfd87d05c99f229" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 71, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/8_axis.ini", + "raw": "trivkins coordinates=XYZABCUV", + "source_sha": "ad9e2a848a1d1cde6c4fbcf82adaae70d52af6f283d3e785a053c2a560ab8f84" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 72, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/9_axis.ini", + "raw": "trivkins coordinates=XYZABCUVW", + "source_sha": "72252c1eb8238facb30b8b3fc08d012b22c70bf1c7c151c2e50946a5eeadc5ef" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 101, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "627537d0a342075ecd45765b4d8b256b065f2568902a585cfe5161efec53a126" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 89, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini", + "raw": "trivkins coordinates=xyzc", + "source_sha": "33b4ad6792d9037f2a0bb9eb179aff7b3d8ecac64bfa0b1cc71633a88cf868d9" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 121, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini", + "raw": "trivkins coordinates=xyzab", + "source_sha": "c8047ee290a94944481545a78104e9ead1036ca04f965a729ad4a870e7fe69a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 111, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini", + "raw": "trivkins coordinates=xyzac", + "source_sha": "daf2ffcab7fb3af60f5dd38256c8e9bb3347d885771ba414da2b4277c8ebce4a" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 107, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini", + "raw": "trivkins coordinates=xyzcw", + "source_sha": "8a860f885f6afc18b0d1ff8081d356d56897456298cfd58fc7394ec519f71e83" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 98, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "3e458b639557d33bc2b637fb2f63b88e1cade3dd7543306b96e166c5b50bb08e" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 131, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "7b8a607c978ad1758a51d60b04d3bed46a9597661060a6a906b4411abe02e857" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 99, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "ea336e14be5b1b62a6b540070624b6c35cd076b16d170725fc4dacb9754e6790" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 113, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini", + "raw": "trivkins", + "source_sha": "b006d05ea125442e3258a76b9e95d28a3488d25f1f652828c470de82aaa9d077" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 134, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "2f62b1a0e2bcdf2b587e142ea8c4212c28b8024161c38b13e5cb39e15c984ce7" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 94, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "c155ba8047c3011c6ec023dd911fa571ec52b5352b789b7c88542c8d418e15bc" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 102, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "7469a0e05ea85c83d99f11ef552482c29d93313a358d8a7801a2eabbae1f9af0" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 128, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "4caf0e746fd09bceafa4f2bdced6a9be063b7ee51334fbb75d4c6914d94db7b9" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 119, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "a080a9008bef88d61fee5473f8531df64bfe3fd365540e1055e3377ce59f99d9" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 95, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini", + "raw": "trivkins coordinates=XZ", + "source_sha": "b6971dfdf96fb2d502378d143da6c7a2f404fe796f41f96f629b9db15a44bb66" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 96, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini", + "raw": "trivkins coordinates=XZC", + "source_sha": "c2f67186fc6c84f266d2ad1d6fcf487249182a2385f8d3099f51f9fab1cc8bb4" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 96, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini", + "raw": "trivkins coordinates=XZCW", + "source_sha": "df718eefdbd91308b9182f6858150abb8fa4a2d030105db954702c280cddac70" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 96, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini", + "raw": "trivkins coordinates=XZ", + "source_sha": "5d7e04fd075e28534afe817e64259a2e7df809d5fdf893f39c9cc5ffcd35ed71" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 95, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini", + "raw": "trivkins coordinates=XZ", + "source_sha": "503bf2241ed1c1f70410015a7f3aab5a922dc571b1ded36f5431c538d5d4e628" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 101, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini", + "raw": "trivkins coordinates=XZ", + "source_sha": "b3d9c8451a9281e9863e30f7d0138d5779028a06d981c2f1bd30bf6c7bded0e0" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini", + "raw": "trivkins coordinates=xyyz", + "source_sha": "303f0fb1b9a70ba3cc6dbc11003bed2c59579ddfe2e4d9a300a5fcd4da570e65" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "family": "serial_robot", + "kind": "kinematics", + "line": 70, + "module": "scarakins", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini", + "raw": "scarakins", + "source_sha": "3c5a9c56f4c50a987f7b2a21b6968ab77eeb586a894f8ffff73dec74eb680092" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins", + "family": "five_axis_trt", + "kind": "kinematics", + "line": 46, + "module": "xyzac-trt-kins", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini", + "raw": "xyzac-trt-kins", + "source_sha": "af315891e9e561812f267f9c44c752c265ad00c862adbcd7dd42c2b07e60cd38" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 109, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini", + "raw": "trivkins", + "source_sha": "7d53c570ccb85f086e67eb511c28bb9cec47e02cf42395e71bb2ff89e9d0d671" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 166, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen.ini", + "raw": "trivkins", + "source_sha": "5501604c0c6d0288cea28720da271fd44900ea50ddcccf6acf0743e7e2daf016" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 135, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini", + "raw": "trivkins", + "source_sha": "2ffde65bf13a116a14d2b75a841f197cd67f6281c6b5c2c548487e779a166ef0" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 133, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini", + "raw": "trivkins", + "source_sha": "93faa3f0a5727d1468381add40a7b35ac5e80b44d8c9c17bfb1e18754daa5498" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 133, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini", + "raw": "trivkins", + "source_sha": "8b37aef313551ab9dcd3a414d582b399669dfb4375d08fe5ee709bf327c53d43" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 135, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini", + "raw": "trivkins", + "source_sha": "ceab463ee55d534c84a5abf5b98d0caee56f9ef71ed67e5ceabea84cf998b725" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 124, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini", + "raw": "trivkins", + "source_sha": "94c5bb5c621e8074f96004b1abbe5bc66ee5df6aa672f2cf3542c3d38047ac70" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 137, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini", + "raw": "trivkins", + "source_sha": "bc459d4d659a562f22da247a2734116000e4c8fa71ea13014ca61885dc5bf2ea" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_lathe.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "bf9e089a8d61194462bb418efe1176eaf624faee8e42f0cfd791b62b9b906e24" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 138, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/gscreen_mm.ini", + "raw": "trivkins", + "source_sha": "f4e86efc8aea695f7c931742a41b48851a29fced4aff1dab67b001934245e297" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 79, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "4c807ff8b3faa4e97574c4c7add99fe6b7654e980bb73737e46f563b5170b422" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 114, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini", + "raw": "trivkins", + "source_sha": "01ea7f117f038a59dccb25a01c4d693222e807474e2e6aec338975aa6bed5841" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 111, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini", + "raw": "trivkins", + "source_sha": "d6fd8d018be34826fb7bccdad4987a8968dbfdf7a2b5794b75c809c56a18ad63" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 128, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "d1ed1b802162281fc742b0146be7bb3b5daba2fc944d4b4c8f8ccdb096cffc77" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.ini", + "raw": "trivkins", + "source_sha": "eddaf2a70b2e1147f8e4cb781abbb56a87243fdfad4932fc8ddecbeb5f5d42e1" + }, + { + "config_id": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 153, + "module": "trivkins", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini", + "raw": "trivkins", + "source_sha": "75dc8d6f9dc89d6725aabdb7c59cb0965d2d054b2e1e4baa71de3538b4f77c85" + }, + { + "config_id": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 150, + "module": "trivkins", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini", + "raw": "trivkins", + "source_sha": "5ec9203047e509b1e633dadcebba91909c3aee8ad65465ea2c0bd8bc409bb9a0" + }, + { + "config_id": "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 154, + "module": "trivkins", + "path": "linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini", + "raw": "trivkins", + "source_sha": "4da521d1e8bc2fdb0155f86afc1b1c0dffdd31402ade0ab7519bbfd30145cfbe" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "0b06ae360b37859343763adb960e6304a812ebc658a2056fc4df280ccd793c37" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "family": "serial_robot", + "kind": "kinematics", + "line": 120, + "module": "scarakins", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini", + "raw": "scarakins coordinates=xyzcab", + "source_sha": "1f4fa4d1a1ccd5cf299948b824101430bd1a41cb8ea74a3311373ce9ef17a7c1" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 217, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini", + "raw": "trivkins coordinates=xyz kinstype=B", + "source_sha": "c764f544082a217a19a9fc26d0552f209dcb4548e80d2f544b1e00489472819a" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini", + "raw": "trivkins coordinates=XYYZ kinstype=BOTH", + "source_sha": "6e37414ca98a0a0551b8b54980fbc77417b618aeba039e3c38ac4c4b9b1b6b68" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "f657495b776ab5f371bf59106bbbfa230f1cbc72061caaf036bc6b38fbb79421" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini", + "raw": "trivkins coordinates=XYZYA kinstype=BOTH", + "source_sha": "7835bceebe51c9881328896c9f4a6fe4fc91e49a025a26a95e6b7c1716e2edf2" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "3000ec032956226a8281fe0e76304c56d3d6d4d0fbef6b7b2c226a15f2eb9674" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 114, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "e36b608260f3eca2f2439d83b0e32786a2d1bd5f395c3705ee3fe3a1fa0ad94c" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 111, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "3565f4863be6f1dc25ef216c8a6f96e69f133681676131ab883007c80aef7c66" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 89, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini", + "raw": "trivkins coordinates=XYZA", + "source_sha": "592aaee3190a65fab8b200b45f5ec221ab58edf0b754e2db227352cebea0dae2" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini", + "raw": "trivkins coordinates=XYZA", + "source_sha": "d5597a9bc8ef786bebd2dbc79300253117e814e214e17d067eddc1049ac1cf95" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini", + "raw": "trivkins coordinates=XYZAB", + "source_sha": "c8ec9fc577cee73a46981d2a7c5eaebc596bddba19b395b87eb0e4eba2a0c3ba" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini", + "raw": "trivkins coordinates=XYZAC", + "source_sha": "b25b195fd6d211053b3eb091a513c01ea83550969a29c6b446fdbb2577c1c7a2" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "6cfb7b2c847368e117d28ecd99027c4158ed2e02a08bbba787bee73bd1f3ad7d" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini", + "raw": "trivkins coordinates=XYZA", + "source_sha": "da745eb5892bbda71c4555b11c50bc8ff9f32a28f97a51951a892b4de5604fcc" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini", + "raw": "trivkins coordinates=XYZAB", + "source_sha": "9f9f7b2a62ebd1cf0fffa4d97af9dca42bc25d9678ee52978b4f24d10df7daa7" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini", + "raw": "trivkins coordinates=XYZAC", + "source_sha": "c836bd0309d143fa80a70fa37c1e92714437d5b3931ad50f47aad820bf597253" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 84, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "7285f86b7a2d30318c529985c0f34851e017ce69a23ca06ffb456d9d422f7503" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc", + "raw": "trivkins coordinates=xyyz", + "source_sha": "adff77feb496f8c9c97763b1f7ecff79f8c9d8c81c12c68326dae5124c0bbf4a" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc", + "raw": "trivkins coordinates=xyyz", + "source_sha": "b44c3c811992f6fc531b07e0ee1ce6504868d42e91a9778231a565c520193b11" + }, + { + "config_id": "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 198, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qttouchy/qttouchy.ini", + "raw": "trivkins", + "source_sha": "1398796a9ef4d41bf2d9841656b588dd12818cfac9e390a8fd9d6aa6e2185acc" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 207, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/blender.ini", + "raw": "trivkins", + "source_sha": "15fc1681185d59a5f9d8ae14c2d9773bf749373bd6c71b6c614607ce7f35393d" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "378d5e9e04608240a6884a011ec32caf8de0e3d67bae6b568f33e9e292e94ce5" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins", + "family": "serial_robot", + "kind": "kinematics", + "line": 121, + "module": "scarakins", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", + "raw": "scarakins coordinates=xyzcab", + "source_sha": "1e6a080a7718813d9946acdd7cf7c033e896a318702a5dc5f86f8d45012b2aea" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 164, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini", + "raw": "trivkins", + "source_sha": "7235c5081d278551bff8b2b30bd577175251f5dbc81c9dcd4d64c4cb3c832858" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "0c97b43e267300f8565a601fe578d6239b9c5eee3f2122ccfa4b536faeffb254" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 220, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini", + "raw": "trivkins coordinates=xyz kinstype=B", + "source_sha": "51b5cb7c790d2eb07550ed1e5ee77314133ab99628c23e7cbee27eaf3466bd2a" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 191, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "96607f9e45ebb60e6c8c30a3b827f33273159780e31b6e6dcd187e69d9316ee2" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 224, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini", + "raw": "trivkins", + "source_sha": "a7e3781694cca98ef9451e2100fa213380088ebe750eea1935e5db09792a4264" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 210, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini", + "raw": "trivkins", + "source_sha": "64b856e76d997a0096533b198666109c059eea4b02e2ac3f3967cef22667ccb9" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini", + "raw": "trivkins", + "source_sha": "ec8344fad2445df3a8822c624dd0aa514e3900ba60879c5443a5d6f7c495f84a" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 3, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "3f1ea1c180d85118c09a821ea03b007fc8901c40685148a77714c76278db185b" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 134, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini", + "raw": "trivkins", + "source_sha": "a49b1cf91a6fb17c5bbb80eea44b6c46e76ae182e7e3ac67b96b4fab2cfaea88" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 80, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "103a9d0f4c329e00d532fcf0f3ef1e90a37f4476b8950a2b52325d8a42bc4b91" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "86f2c3f594d0c4bc03da44b9b9ad1445782a9290c8024837a77b83a49e3c55de" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "c2b23e16477e4de6f3cbd6cdbca56f4a0c80f2482648ee48493349326ef9f1f2" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 75, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "c52570c11f2c503a5aa4ac054fe751035a4d95951c8a24d357d544b08674d8cd" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini", + "raw": "trivkins coordinates=XYYZ kinstype=BOTH", + "source_sha": "8919a7050ba4357c8e663c51a761fe6d78ff6d7da1e820800eb95e3319cefb64" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 62, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "416ec9cb44f3c9f301d874b5d7e860d82bd460633902e3bcc9037d262a464e9b" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 63, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini", + "raw": "trivkins coordinates=XYZA", + "source_sha": "8b72d1ec92b54e2d5dcf333d5638907141340f942e7e1cbfb26be22d8a28e8aa" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 61, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "a301f964957d63716ac527504ab80d627161ff9d8a57b6b77f4ae59f12798a5c" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 63, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini", + "raw": "trivkins coordinates=XYZYA kinstype=BOTH", + "source_sha": "1f2b5583b7e1d1ef0339f0a05e8bac2a6d503cfbf977127de64738926c8cc161" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 229, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini", + "raw": "trivkins", + "source_sha": "142a7c8f7ba86085afd4e331d0deb8030df8e53ea64bfc96a71b049a8dba1096" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 232, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini", + "raw": "trivkins", + "source_sha": "ea20d3e12b0a800739c060bca467c8745e29e8d318c47bfa64becd3555af6cca" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 232, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini", + "raw": "trivkins", + "source_sha": "77f1a4a5294dc202d4afc6764a14dc89d8e1174424667c5b72742ae3a0975645" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 229, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini", + "raw": "trivkins", + "source_sha": "142a7c8f7ba86085afd4e331d0deb8030df8e53ea64bfc96a71b049a8dba1096" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 214, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini", + "raw": "trivkins", + "source_sha": "0909d95dd20251475be2a745ea9ff1a9bc11c05b6d4b880be7d4165c2686b40c" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 184, + "module": "trivkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/tester.ini", + "raw": "trivkins", + "source_sha": "74ffaa3444383a097aed37c22d5d6b6ef9d55b49a49a97e5861013d907a4f40d" + }, + { + "config_id": "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins", + "family": "parallel_delta", + "kind": "kinematics", + "line": 59, + "module": "lineardeltakins", + "path": "linuxcnc/configs/sim/tklinuxcnc/ldelta.ini", + "raw": "lineardeltakins", + "source_sha": "0e23dee0f4df839c028f5bfba95c5941f2f8623ce502d6fdfc90dfdef63d8967" + }, + { + "config_id": "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini", + "raw": "trivkins", + "source_sha": "0f8b15328616a4fd5be7561738273a9c04e0c5524423d424257c5ffda73fa25e" + }, + { + "config_id": "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 79, + "module": "trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini", + "raw": "trivkins", + "source_sha": "12f9c72fe2f8ab1ac7d6fcb553c902b4a2df1cecbf3ecc896fa9c0ad7a8f41b3" + }, + { + "config_id": "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins", + "family": "parallel_tripod", + "kind": "kinematics", + "line": 59, + "module": "tripodkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini", + "raw": "tripodkins", + "source_sha": "8da7280a981d80e9b7d4b608a357fc87dbb9d83535636794e1ae97d5ebcb8f01" + }, + { + "config_id": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 11, + "module": "trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini", + "raw": "trivkins coordinates=xz", + "source_sha": "07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81" + }, + { + "config_id": "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 10, + "module": "trivkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini", + "raw": "trivkins coordinates=xz kinstype=BOTH", + "source_sha": "d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae" + }, + { + "config_id": "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 90, + "module": "trivkins", + "path": "linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini", + "raw": "trivkins", + "source_sha": "e7098eb237c6ad9bed4c240f95d313f6ae3221d322b514509f5a7c34373b6011" + }, + { + "config_id": "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "path": "linuxcnc/configs/sim/touchy/gladevcp/touchy.ini", + "raw": "trivkins", + "source_sha": "65c7aa3b61d553f8aa9f2d43977329ef89d4b58d088729561a0bf7165b6a68a9" + }, + { + "config_id": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 73, + "module": "trivkins", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini", + "raw": "trivkins", + "source_sha": "6bd6bc6daa9146eb1c662ead43e69edac26cd8a95121c00371607f4bc5f5be0b" + }, + { + "config_id": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 88, + "module": "trivkins", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini", + "raw": "trivkins coordinates=xyz", + "source_sha": "5985f5a6c3bf70d493c897a45a9f0864d1edc6449018185c5787ccfd9d78749a" + }, + { + "config_id": "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 75, + "module": "trivkins", + "path": "linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini", + "raw": "trivkins", + "source_sha": "b27d37a31e597d71ea9065f31d4c5e150ac12fbdef2f2567b74b97cb4cbe651e" + }, + { + "config_id": "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/configs/sim/touchy/touchy.ini", + "raw": "trivkins", + "source_sha": "0624683449cbafe697042c42e2f23fdc9513b02dd56aa8f452e386e496ab4571" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "1948487bf44a5c7d5b32186a6b9f330d55cb61bbab55da4a5834f95439cc0deb" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 63, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "9c30092e3c73099af651616a4a9a003337230419bd029e606c10f2b2a2afdade" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 56, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "5aeeb95a708ed2972ad3fa975f37df426129de279c4e8d347bcc2a589ac253ce" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 86, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini", + "raw": "trivkins coordinates=XYZA", + "source_sha": "410e1b03a771d7b98a0a75fc13303842af2a20d85b3ff6fe898e83f5a8630752" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 74, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini", + "raw": "trivkins coordinates=XYZAB kinstype=BOTH", + "source_sha": "3d4d7e2cb2729c9b385e6e6cee04a70ee933a52dcd7f3cf532b7c236bef06eb9" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini", + "raw": "trivkins coordinates=XYZY kinstype=BOTH", + "source_sha": "8374120e08569413c08816a5a5c9e0e8aa0cd0d5536593f6c0fb6d606cffdac5" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini", + "raw": "trivkins coordinates=XYZYA kinstype=BOTH", + "source_sha": "85a7cca0b4672cdac77822c584e738722656f565af8b48217a3cf1cac17f87ab" + }, + { + "config_id": "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 59, + "module": "trivkins", + "path": "linuxcnc/tests/abort/feed-rate/test.ini", + "raw": "trivkins", + "source_sha": "379e15f8e7ebacb820e168ae77aad8f246cb80cbd905ca6f221addcb3bc578d6" + }, + { + "config_id": "config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 60, + "module": "trivkins", + "path": "linuxcnc/tests/abort/g64/test.ini", + "raw": "trivkins", + "source_sha": "adffddeda0142c14b942c1a6eff77f1c6ecf7a5c4b3725bea226d97758f045a5" + }, + { + "config_id": "config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini", + "raw": "trivkins", + "source_sha": "17d9a85f9528ffbdea8d4fdd31ef5050fd986c50880fccb5769421bf45cb8561" + }, + { + "config_id": "config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "path": "linuxcnc/tests/abort/stop-button-crazy-move/test.ini", + "raw": "trivkins", + "source_sha": "db4d6e648d76220493158fe9b850fb0af344793689ce823c42b97fb879fd80f7" + }, + { + "config_id": "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "path": "linuxcnc/tests/ccomp/early-exit/test.ini", + "raw": "trivkins", + "source_sha": "641de6b7da832c44088260e9bbfaada4e3e78a6c3ac2159773e54fb6b1bfe3b9" + }, + { + "config_id": "config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 38, + "module": "trivkins", + "path": "linuxcnc/tests/classicladder/estop/classicladder-estop.ini", + "raw": "trivkins", + "source_sha": "7c6c95f5d6d70e0508e05b8cf5754fda32f55fee7ed16bbff2760b77373c4cd0" + }, + { + "config_id": "config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 60, + "module": "trivkins", + "path": "linuxcnc/tests/halui/jogging/halui.ini", + "raw": "trivkins", + "source_sha": "b1313e1bd1c966f6ba2159d6566de6e3aa2fa2fd0a8c3462596b42bdbea3bd61" + }, + { + "config_id": "config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 49, + "module": "trivkins", + "path": "linuxcnc/tests/halui/mdi/halui.ini", + "raw": "trivkins", + "source_sha": "3b634727eb2c771ed50f633d7afd68a71714b6b131e9c7ed33ff16c445f309e3" + }, + { + "config_id": "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 37, + "module": "trivkins", + "path": "linuxcnc/tests/hard-limits/hard-limits.ini", + "raw": "trivkins", + "source_sha": "891059113a5ca0ccf655d35fd0f658c55cb94041fb884deee9d9aef0d3e494c9" + }, + { + "config_id": "config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "path": "linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini", + "raw": "trivkins", + "source_sha": "ee4c76072d3da518d3691c12a76ed28e7a1af7f3d934d9a57907db794a13a2bb" + }, + { + "config_id": "config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 47, + "module": "trivkins", + "path": "linuxcnc/tests/interp/mdi-oword-m66/interp.ini", + "raw": "trivkins", + "source_sha": "5d37a151be4a0f612c0b628c6d31d8be261eb656ecb54ece7dd24ff5acb25797" + }, + { + "config_id": "config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 41, + "module": "trivkins", + "path": "linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini", + "raw": "trivkins", + "source_sha": "062e300ffc8f9e357550e63a1358bb157797383cb17e0e1e9b200e274a4a3e24" + }, + { + "config_id": "config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 41, + "module": "trivkins", + "path": "linuxcnc/tests/interp/subroutine-return/interp.ini", + "raw": "trivkins", + "source_sha": "4241950a539befa83703214592a0666cd16722c59bbc4a822eba3d92d2fc90d8" + }, + { + "config_id": "config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 44, + "module": "trivkins", + "path": "linuxcnc/tests/io-startup/nonrandom/test.ini", + "raw": "trivkins", + "source_sha": "76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3" + }, + { + "config_id": "config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 43, + "module": "trivkins", + "path": "linuxcnc/tests/io-startup/random/test.ini", + "raw": "trivkins", + "source_sha": "085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48" + }, + { + "config_id": "config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 47, + "module": "trivkins", + "path": "linuxcnc/tests/lathe/lathe.ini", + "raw": "trivkins", + "source_sha": "d276df38c324690d1eb10c7f3e4d0a40ef2dc5efd02631b7bf7634eac702b6c8" + }, + { + "config_id": "config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "path": "linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini", + "raw": "trivkins", + "source_sha": "98586fcd5086492f2a59249eb7aef85f70b3192c7c4f1b24430163feabb0c43c" + }, + { + "config_id": "config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 58, + "module": "trivkins", + "path": "linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini", + "raw": "trivkins", + "source_sha": "d34ed8cc76ebada979fdb05188d965f72cd0f8abb15b3885152e7c4b2f6af9dc" + }, + { + "config_id": "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins", + "family": "coupled_linear", + "kind": "kinematics", + "line": 53, + "module": "matrixkins", + "path": "linuxcnc/tests/matrixkins/test.ini", + "raw": "matrixkins", + "source_sha": "8d799f31b43250680a79d2a4c252d863bea1d2647d8e95e8cf345c2c47bd9fea" + }, + { + "config_id": "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "path": "linuxcnc/tests/mdi-queue-length/test.ini", + "raw": "trivkins", + "source_sha": "438595e3b9d7632ecf33c582befab258b76806a23c656965e278b7c51428f804" + }, + { + "config_id": "config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 60, + "module": "trivkins", + "path": "linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini", + "raw": "trivkins", + "source_sha": "42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959" + }, + { + "config_id": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 46, + "module": "trivkins", + "path": "linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini", + "raw": "trivkins", + "source_sha": "2c64e0acf68a95a1e10c92d074054cc865170e7f72f4dd806847d297b97ad636" + }, + { + "config_id": "config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "path": "linuxcnc/tests/motion-logger/basic/test.ini", + "raw": "trivkins", + "source_sha": "0be45be55bd122664c96b9797cd17abc7eed593ffe5c8b488b31d7737d823936" + }, + { + "config_id": "config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "path": "linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini", + "raw": "trivkins", + "source_sha": "84a7790fc6ca275e545bd6a41ab047adb296a6bd9a8089aa71acf9912b20d6ea" + }, + { + "config_id": "config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "path": "linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini", + "raw": "trivkins", + "source_sha": "4c38be12b4fed74481506483e6f30f87a8afc1a9e2d508fc3584fe196602ca0d" + }, + { + "config_id": "config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 65, + "module": "trivkins", + "path": "linuxcnc/tests/motion/g0/motion-test.ini", + "raw": "trivkins", + "source_sha": "4f3e355edff4ad3bd618fc72f16b2be7ee17c992b32010b0ae5c998950dcda18" + }, + { + "config_id": "config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "path": "linuxcnc/tests/motion/jogwheel-axis/motion-test.ini", + "raw": "trivkins", + "source_sha": "882025f154b01e29af2e2b1f56d29ee55921716e9018faaf40c7d516061867a6" + }, + { + "config_id": "config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 42, + "module": "trivkins", + "path": "linuxcnc/tests/motion/jogwheel-joint/motion-test.ini", + "raw": "trivkins", + "source_sha": "a52b8411b34e2d5b83669e936c4495cc2a6d4e4fdc6f6e7e707fad5f17e28e31" + }, + { + "config_id": "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 52, + "module": "trivkins", + "path": "linuxcnc/tests/mqtt/simulator.ini", + "raw": "trivkins", + "source_sha": "4411ba88a19c25808c58130387dd8b48349c1cb63aab262792f797af1cf8994c" + }, + { + "config_id": "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/tests/remap/remap-io/test-ngc.ini", + "raw": "trivkins", + "source_sha": "2bac0ac4b5190a27b6b1d002f3e8ceef089bc3cadc37d6a53a7ae582c351dece" + }, + { + "config_id": "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 64, + "module": "trivkins", + "path": "linuxcnc/tests/remap/remap-io/test-py.ini", + "raw": "trivkins", + "source_sha": "4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659" + }, + { + "config_id": "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 45, + "module": "trivkins", + "path": "linuxcnc/tests/remap/remap-reentry/test.ini", + "raw": "trivkins", + "source_sha": "d72dd9707d576dec098e303fb91b84f7576e97dde5346455642f3720280a9ee4" + }, + { + "config_id": "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "path": "linuxcnc/tests/rs274ngc-startup/test.ini", + "raw": "trivkins", + "source_sha": "a2458289d81a9396ebcfcc46aa6459f5e93d698f69dd044007a0c6662878cd5a" + }, + { + "config_id": "config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 43, + "module": "trivkins", + "path": "linuxcnc/tests/single-step/test.ini", + "raw": "trivkins", + "source_sha": "c0b171b6fbe043c0fd4621ebdae9508e5e59de0936a4f69ad3baafd251888e19" + }, + { + "config_id": "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 57, + "module": "trivkins", + "path": "linuxcnc/tests/startup-state/test.ini", + "raw": "trivkins", + "source_sha": "46e018eb470e9de4d343249e4bdb4d79e3311a414d69c839bd81d9c22579e986" + }, + { + "config_id": "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 56, + "module": "trivkins", + "path": "linuxcnc/tests/statbuffer-g5x-abort/test.ini", + "raw": "trivkins", + "source_sha": "f2983c08e63029261833fb691f1905add43a52d5e8ed62922832889e0311e380" + }, + { + "config_id": "config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/tests/t0/nonrandom/sim.ini", + "raw": "trivkins", + "source_sha": "46e50cbb4adccbb1b62ba0bdf35346836c241b74938e5640cd0707b8dbeabdd5" + }, + { + "config_id": "config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/tests/t0/random-with-t0/sim.ini", + "raw": "trivkins", + "source_sha": "ef5a92e4a86ff794671467be67c5dc3aca5730a5c2e6c38c4eade31a9e8c9a13" + }, + { + "config_id": "config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 67, + "module": "trivkins", + "path": "linuxcnc/tests/t0/random-without-t0/sim.ini", + "raw": "trivkins", + "source_sha": "ef5a92e4a86ff794671467be67c5dc3aca5730a5c2e6c38c4eade31a9e8c9a13" + }, + { + "config_id": "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 46, + "module": "trivkins", + "path": "linuxcnc/tests/tlo/g43-test.ini", + "raw": "trivkins", + "source_sha": "f853d0db5dba1dc4d28c04377f2cd3eff90e56db0de7309deed32264b1fbc8c4" + }, + { + "config_id": "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "path": "linuxcnc/tests/tool-info/non-random/test.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "fa91327cbc49581c5323a854d328f2ae541f538bab4d2d1adc5d86f4d88551de" + }, + { + "config_id": "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "path": "linuxcnc/tests/tool-info/random-no-startup-tool/test.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "a72abf125d9caeccdda2c86f620ad5a2731e4c26725d946a3f5de82284955f07" + }, + { + "config_id": "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 54, + "module": "trivkins", + "path": "linuxcnc/tests/tool-info/random-with-startup-tool/test.ini", + "raw": "trivkins coordinates=XYZ", + "source_sha": "a72abf125d9caeccdda2c86f620ad5a2731e4c26725d946a3f5de82284955f07" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 39, + "module": "trivkins", + "path": "linuxcnc/tests/toolchanger/m61/m61-test.ini", + "raw": "trivkins", + "source_sha": "eee36d051ed62d0e3b47980001c1654b25616155a9b9d31547b13f333610e34d" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "path": "linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini", + "raw": "trivkins", + "source_sha": "507aad603649633df68014ad389074df224e1810e40f521fd76d7403d61e9d65" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 55, + "module": "trivkins", + "path": "linuxcnc/tests/toolchanger/reload-tool/random/test.ini", + "raw": "trivkins", + "source_sha": "1cb9b9dbef7c669563038541f7c5429c6df6630f7c793d224ea76ca0a87c411f" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "path": "linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini", + "raw": "trivkins", + "source_sha": "ea2519d9dfdc8b56c695399117c6a43c27f9dcf9226d71b9cee0ee57ce5866d0" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins", + "family": "cartesian", + "kind": "kinematics", + "line": 68, + "module": "trivkins", + "path": "linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini", + "raw": "trivkins", + "source_sha": "29503195ae3105528e63e8cd307926ddf250ef9f394117b8b8a30f45d859f6fc" + } + ], + "entry_count": 264, + "fingerprint_sha256": "187bbc0173b52ff2051ed0aae2cc8dd836798344604b193840b5c028f5613c3d" + }, + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "families": [ + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini:11:kinematics:rotatekins", + "config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins", + "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins", + "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins", + "config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins", + "config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins", + "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins", + "config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins", + "config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins", + "config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins", + "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins", + "config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins", + "config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins", + "config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins", + "config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins", + "config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins", + "config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins", + "config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins", + "config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins", + "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins", + "config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins", + "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins", + "config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins", + "config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins", + "config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins", + "config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins", + "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins", + "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins", + "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins", + "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins", + "config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins", + "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins", + "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins", + "config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins", + "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins", + "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins", + "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins", + "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins", + "config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins" + ], + "description": "axis/joint identity and mapped Cartesian kinematics", + "family": "cartesian", + "modules": [ + "maxkins", + "rotatekins", + "trivkins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:cartesian:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/maxkins.c", + "source:linuxcnc/src/emc/kinematics/rotatekins.c", + "source:linuxcnc/src/emc/kinematics/trivkins.c" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini:10:kinematics:corexykins", + "config:linuxcnc/configs/sim/axis/laser/laser.ini:8:kinematics:corexykins", + "config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini:15:kinematics:rosekins", + "config:linuxcnc/tests/matrixkins/test.ini:53:kinematics:matrixkins" + ], + "description": "coupled linear or HAL matrix transforms", + "family": "coupled_linear", + "modules": [ + "corexy_by_hal", + "corexykins", + "matrixkins", + "rosekins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:coupled_linear:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/corexykins.c", + "source:linuxcnc/src/emc/kinematics/rosekins.c" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins" + ], + "description": "generic five-axis kinematics", + "family": "five_axis", + "modules": [ + "5axiskins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:98:kinematics:5axiskins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:five_axis:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/5axiskins.c" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:43:kinematics:xyzac-trt-kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal:35:loadrt:xyzac-trt-kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:43:kinematics:xyzbc-trt-kins", + "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini:46:kinematics:xyzac-trt-kins" + ], + "description": "table/rotary-tilting five-axis kinematics", + "family": "five_axis_trt", + "modules": [ + "trtfuncs", + "xyzab_tdr_kins", + "xyzac-trt-kins", + "xyzbc-trt-kins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:31:kinematics:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:five_axis_trt:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/trtfuncs.c", + "source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins" + ], + "description": "linear and rotary Delta mechanisms", + "family": "parallel_delta", + "modules": [ + "lineardeltakins", + "lineardeltakins-common", + "rotarydeltakins", + "rotarydeltakins-common" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/ldelta.ini:59:kinematics:lineardeltakins", + "config:linuxcnc/configs/sim/axis/ldelta_demo.ini:107:kinematics:lineardeltakins", + "config:linuxcnc/configs/sim/axis/rdelta.ini:59:kinematics:rotarydeltakins", + "config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini:59:kinematics:lineardeltakins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:parallel_delta:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h", + "source:linuxcnc/src/emc/kinematics/lineardeltakins.c", + "source:linuxcnc/src/emc/kinematics/lineardeltakins.cc", + "source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h", + "source:linuxcnc/src/emc/kinematics/rotarydeltakins.c", + "source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins" + ], + "description": "general hexapod parallel mechanism", + "family": "parallel_hexapod", + "modules": [ + "genhexkins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:76:kinematics:genhexkins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:parallel_hexapod:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/genhexkins.c", + "source:linuxcnc/src/emc/kinematics/genhexkins.h" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins" + ], + "description": "pentapod parallel mechanism", + "family": "parallel_pentapod", + "modules": [ + "pentakins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini:113:kinematics:pentakins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:parallel_pentapod:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/pentakins.c", + "source:linuxcnc/src/emc/kinematics/pentakins.h" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins" + ], + "description": "tripod parallel mechanism", + "family": "parallel_tripod", + "modules": [ + "tripodkins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini:59:kinematics:tripodkins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:parallel_tripod:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/tripodkins.c" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins", + "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins", + "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:120:kinematics:scarakins", + "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:121:kinematics:scarakins" + ], + "description": "serial robot, SCARA, PUMA and DH-chain kinematics", + "family": "serial_robot", + "modules": [ + "genserfuncs", + "genserkins", + "pumakins", + "scarakins", + "scorbot-kins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:7:kinematics:genserkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:7:kinematics:pumakins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:12:kinematics:genserkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:12:kinematics:genserkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:139:kinematics:pumakins", + "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:56:kinematics:scarakins", + "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini:10:kinematics:scorbot-kins", + "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini:70:kinematics:scarakins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:serial_robot:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/genserfuncs.c", + "source:linuxcnc/src/emc/kinematics/genserkins.c", + "source:linuxcnc/src/emc/kinematics/genserkins.h", + "source:linuxcnc/src/emc/kinematics/pumakins.c", + "source:linuxcnc/src/emc/kinematics/pumakins.h", + "source:linuxcnc/src/emc/kinematics/scarakins.c", + "source:linuxcnc/src/emc/kinematics/scorbot-kins.c" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:7:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:3:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:10:kinematics:millturn", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:3:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:6:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:6:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:3:switchkins:switchkins", + "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:3:switchkins:switchkins" + ], + "description": "switchkins and switchable HAL component kinematics", + "family": "switchable", + "modules": [ + "millturn", + "switchkins" + ], + "oracle": { + "candidate_configuration_ids": [ + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:switchable:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/switchkins.c", + "source:linuxcnc/src/emc/kinematics/switchkins.h" + ], + "test_source_ids": [] + }, + { + "configuration_ids": [], + "description": "static user/template kinematics and calibrated components", + "family": "user_static", + "modules": [ + "cubic", + "ugenserkins", + "userkfuncs" + ], + "oracle": { + "candidate_configuration_ids": [], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle", + "sample_plan_id": "kinematics-oracle:user_static:fk-ik-roundtrip", + "status": "blocked" + }, + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/cubic.c", + "source:linuxcnc/src/emc/kinematics/cubic.h", + "source:linuxcnc/src/emc/kinematics/ugenserkins.c", + "source:linuxcnc/src/emc/kinematics/userkfuncs.c" + ], + "test_source_ids": [] + } + ], + "hal": { + "entries": [ + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal:15:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 15, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "51410ad61511b2de688f879fceb8e888856519e546a3273b4d7691df27f678ab" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 25, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "loadrt corexy_by_hal names=corexy_by_hal", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:25:loadrt:corexy_by_hal", + "family": "coupled_linear", + "kind": "loadrt", + "line": 25, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "loadrt corexy_by_hal names=corexy_by_hal", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:26:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 26, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "addf corexy_by_hal servo-thread", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:29:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 29, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :j0motor-cmd => corexy_by_hal.j0-motor-pos-cmd", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:33:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 33, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :j1motor-cmd => corexy_by_hal.j1-motor-pos-cmd", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:36:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 36, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :j0motor-fb <= corexy_by_hal.j0-motor-pos-fb", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:39:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 39, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :j1motor-fb <= corexy_by_hal.j1-motor-pos-fb", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:43:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 43, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :alpha-cmd <= corexy_by_hal.alpha-cmd", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:46:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 46, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :beta-cmd => corexy_by_hal.beta-cmd", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:50:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 50, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :alpha-fb => corexy_by_hal.alpha-fb", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal:53:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 53, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "raw": "net :beta-fb => corexy_by_hal.beta-fb", + "source_sha": "1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:18:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 18, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "raw": "HALFILE = corexy_by_hal.hal", + "source_sha": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:5:hal_transform:corexy_by_hal", + "family": "coupled_linear", + "kind": "hal_transform", + "line": 5, + "module": "corexy_by_hal", + "path": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "raw": "MACHINE = corexy_by_hal", + "source_sha": "e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal:3:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "f3178060e01a28e7708fbae97eff3fd0481c7ee0ad8065e0ea05d5e77ecc18ef" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/gantry/gantry_mm.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "5da3e7f6e95f26df831f046a5c7c9ed3e073579748812140a15085dd558b42b0" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "32e9e69f445aa430e11d2622c89e27991becd3c8dd7f4ef043b5b6e28fbbce98" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "81b8e576e4dcf0f630d67dcbbc4e242a1d746ae89b028d488e6484471f8eb973" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "24f58669c4127fd453e8608b3c20726c71dabccdbe0f1d92bd7ed836efc605eb" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/orphans/core_sim_test.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "b0ace08ef7d3cc047f87a30054835d09718420d00d566f88bf3beb1aa7fba866" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal", + "raw": "loadrt trivkins", + "source_sha": "b10a640ea2d1ddfd5c16c741a57d6592dc2752dea4450ec8adaaab0811686062" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "6c7c482dfd0369e8568b65f2a1f5c7e008c343472494a1754a900d63a03db694" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal:3:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/rotate/rotatekins.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "e3c9ec02685f64fdb72bb9e561b3709b450f0da29eac9cca0f17541f843b0954" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "6c01e40c2244d3b534c0d3c60f26a9cdc5232defc79611234c78477209cfda1f" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini:45:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 45, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "789ba656f8ee3e97feba07b58eb242305898e745795891b1a7e536289bffe6bf" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "21897c3af97b3fbd4722d35b3f6380ad27a7d506b5c135644c929cf6d058832a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "71c275afc0cc325cd72201118b86b323f89abf678a7e9e725328d6ea8183c664" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:3:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "MACHINE = sim-xyzab-tdr-kins (switchkins)", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:40:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 40, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:65:hal_transform:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 65, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :tool-offset xyzab_tdr_kins.tool-offset-z", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:66:hal_transform:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 66, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :x-offset xyzab_tdr_kins.x-offset", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:67:hal_transform:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 67, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :z-offset xyzab_tdr_kins.z-offset", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:68:hal_transform:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 68, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :x-rot-point xyzab_tdr_kins.x-rot-point", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:69:hal_transform:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 69, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :y-rot-point xyzab_tdr_kins.y-rot-point", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini:70:hal_transform:xyzab_tdr_kins", + "family": "five_axis_trt", + "kind": "hal_transform", + "line": 70, + "module": "xyzab_tdr_kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", + "raw": "HALCMD = net :z-rot-point xyzab_tdr_kins.z-rot-point", + "source_sha": "923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal:35:loadrt:xyzac-trt-kins", + "family": "five_axis_trt", + "kind": "loadrt", + "line": 35, + "module": "xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal", + "raw": "loadrt xyzac-trt-kins sparm=identityfirst", + "source_sha": "6f8c1a8ce30b00c2256a3e8b9f8ef20a1441663e944a95c188cc9f05bc4c903c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:11:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 11, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "raw": "OPEN_FILE = ./demos/xyzac_switchkins.ngc", + "source_sha": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:28:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 28, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "raw": "NGCGUI_SUBFILE = xyzac_switchkins_sub.ngc", + "source_sha": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:49:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 49, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "raw": "POSTGUI_HALFILE = switchkins_postgui.hal", + "source_sha": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:52:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 52, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini:7:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 7, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "raw": "MACHINE = sim-xyzac-trt-kins (switchkins)", + "source_sha": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal:35:loadrt:xyzac-trt-kins", + "family": "five_axis_trt", + "kind": "loadrt", + "line": 35, + "module": "xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal", + "raw": "loadrt xyzac-trt-kins sparm=identityfirst", + "source_sha": "2d5daf919d6a6b23d8f2c3e158596dcf77217b304471d6b92324611f31e00461" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:11:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 11, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "raw": "OPEN_FILE = ./demos/xyzbc_switchkins.ngc", + "source_sha": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:28:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 28, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "raw": "NGCGUI_SUBFILE = xyzbc_switchkins_sub.ngc", + "source_sha": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:49:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 49, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "raw": "POSTGUI_HALFILE = switchkins_postgui.hal", + "source_sha": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:52:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 52, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini:7:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 7, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "raw": "MACHINE = sim-xyzbc-trt-kins (switchkins)", + "source_sha": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal:4:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 4, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "c64398ad3e3ae763d3429dd68648d5f6e1635eb4cf49bd648dbc1f1ff01e139a" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "b864ec16452495dfdaa62b780268a608e59e885dcfc1ee4a372dfbced0c9586b" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:3:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "raw": "MACHINE = hexapod (switchkins)", + "source_sha": "362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini:43:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 43, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini:15:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 15, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini:17:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 17, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "dfdb6e6c295c4ca9ebf9ff11f31c1b5d6fed4079b8e48b7b59cf7fee6b8b1547" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:15:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 15, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini:3:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "raw": "MACHINE = PUMA (pumakins,switchkins)", + "source_sha": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:19:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 19, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini:6:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 6, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "raw": "MACHINE = puma560 (switchkins) (inch)", + "source_sha": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:19:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 19, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "50bf5dbc4cf70b0c18afea3dcbc577fbb6166152300cd16e27819de1fafe41b0" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini:6:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 6, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini", + "raw": "MACHINE = puma560 (switchkins) (inch)", + "source_sha": "50bf5dbc4cf70b0c18afea3dcbc577fbb6166152300cd16e27819de1fafe41b0" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini:106:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 106, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "0204289788840e0dcaaeb55a2a85cf44a3754845636a897df6efeb165db0de15" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal", + "raw": "loadrt trivkins", + "source_sha": "fb34e5006181dcf9f0d16b40d2ca5dfcf5ccf33753bb6c5dcb51542d5a938a79" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:3:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "raw": "MACHINE = SCARA (genserkins,switchkins)", + "source_sha": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini:62:switchkins:motion.switchkins-type", + "family": "switch_control", + "kind": "switchkins", + "line": 62, + "module": "motion.switchkins-type", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "raw": "HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type", + "source_sha": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal:2:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 2, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "ef66253c80e77899df824f9317e9ba0e9292f0e0389ef8e7ec22ebb465563363" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal:3:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "34102c0b792c4ddf9d2122898513a316f990b91f38e3ede62f5a6fe6f40c04a1" + }, + { + "config_id": "config:linuxcnc/configs/sim/axis_manualtoolchange.hal:0:missing_resource:hal", + "family": "missing_resource", + "kind": "missing_resource", + "line": 0, + "module": "", + "parse_status": "missing_symlink_target", + "path": "linuxcnc/configs/sim/axis_manualtoolchange.hal", + "raw": "", + "source_sha": null, + "symlink_target": "../../../../configs/sim/axis_manualtoolchange.hal" + }, + { + "config_id": "config:linuxcnc/configs/sim/core_sim9.hal:0:missing_resource:hal", + "family": "missing_resource", + "kind": "missing_resource", + "line": 0, + "module": "", + "parse_status": "missing_symlink_target", + "path": "linuxcnc/configs/sim/core_sim9.hal", + "raw": "", + "source_sha": null, + "symlink_target": "../../../../configs/sim/core_sim9.hal" + }, + { + "config_id": "config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal:4:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 4, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/craftsman/craftsmancnc.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "6c30c302224c5467a4c1a0091efdf477b4f256d8bbea8beb2b168b88d721d23b" + }, + { + "config_id": "config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/craftsman/sim_core.hal", + "raw": "loadrt trivkins", + "source_sha": "96aa4a2a4beda2cb3a57d4b4714094fbb66be0fe3e031899206b4ad22e88c4d7" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "a1793b7a8bb9ff03172dadd5a42bbfe41248f00796b48ef5d38b766d123accdf" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim4.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d326da9d94d7abdc6ebed4a83144cd1623fa63d5af37ad0ed57662ff84249179" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_6.hal", + "raw": "loadrt trivkins", + "source_sha": "a9ffe2dc7d433ab5b6c027bc8e056b19b831ccbed64acd760571326d0ee6273f" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_7.hal", + "raw": "loadrt trivkins", + "source_sha": "8a3edf09fdeee30ed396bb3b3b533f7acbce4d4fe1b22e90de9fa3bc3442cb8d" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_8.hal", + "raw": "loadrt trivkins", + "source_sha": "89becacb8d967d3078facf90ba16e34e39bc33857fcc92d715ef9be50e688d6d" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_9.hal", + "raw": "loadrt trivkins", + "source_sha": "563234fc66fe5483a4867a03e2a6e49e13f257805661f3c55a99e2c9c6b16c6d" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "fc79d08d080865aaf275c138b0220eb51ddd7c370f150c7b3d5d1b41ab33fd85" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "3fa7c42778f965ad47291d0215fec42707a2d15279580cc588fd459393f52a03" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "a0fd41c8ba9e1cb213122b2ae9b75184ef1e245b6d5d63e49b10211cbfcdf505" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "614ebb8b029a9a234821cc08ae7cdc506b774dde5db8e75966df64f694540df0" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "c4761c123f7e367bf5cc74a0016340c2dc553ef61a19005af47ec4e05fd54ffb" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "14065d0eed908856d59c52fe9782d3c487dbba4535b2c4209554c72046eff3c9" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal:3:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "5da3e7f6e95f26df831f046a5c7c9ed3e073579748812140a15085dd558b42b0" + }, + { + "config_id": "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal:4:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 4, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "f327896d862537f129cf7424e540eb7a7e689a8fbc58521a3e3d6f26c4c1915b" + }, + { + "config_id": "config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/gscreen/spartan/spartan.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "f1e74499c2521c81b861d26008c8941140bf35d4498c921ab00d992999697b67" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "path": "linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini", + "raw": "MACHINE = SCARA (genserkins,switchkins)", + "source_sha": "1f4fa4d1a1ccd5cf299948b824101430bd1a41cb8ea74a3311373ce9ef17a7c1" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "dd4e5d5f1485462f4de861b637535cf7ab0f3fe1b3611e1b574be4c977b35dfb" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "f292b7245fe5a1da22666f618fa7e07032268d5919fb4a8d9ba175dfc635c505" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "dd4e5d5f1485462f4de861b637535cf7ab0f3fe1b3611e1b574be4c977b35dfb" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "f292b7245fe5a1da22666f618fa7e07032268d5919fb4a8d9ba175dfc635c505" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini:3:switchkins:switchkins", + "family": "switchable", + "kind": "switchkins", + "line": 3, + "module": "switchkins", + "path": "linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini", + "raw": "MACHINE = SCARA (genserkins,switchkins)", + "source_sha": "1e6a080a7718813d9946acdd7cf7c033e896a318702a5dc5f86f8d45012b2aea" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "54fe4002d5db8db0d8e365b63b747602f34ec955c372023df9c848f3529e10a2" + }, + { + "config_id": "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "e8e99f55218eee9219cac7d049f35a7a8024de99ce1117cce9a797b746434b43" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "54fe4002d5db8db0d8e365b63b747602f34ec955c372023df9c848f3529e10a2" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "e1e131bf73a5a2727084c9121fcaf8ae95a65dd3b6a42bd44f747f8b8fe23a3d" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/gantrysim.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/gantrysim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "e8e99f55218eee9219cac7d049f35a7a8024de99ce1117cce9a797b746434b43" + }, + { + "config_id": "config:linuxcnc/configs/sim/woodpecker/woodpecker.hal:6:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 6, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/configs/sim/woodpecker/woodpecker.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "99f2bffdef7d778039e1872fba77e8972be3c9096db686ee45c6af9a1129bbc4" + }, + { + "config_id": "config:linuxcnc/tests/abort/feed-rate/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/abort/feed-rate/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c" + }, + { + "config_id": "config:linuxcnc/tests/ccomp/early-exit/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/ccomp/early-exit/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c" + }, + { + "config_id": "config:linuxcnc/tests/hard-limits/hard-limits.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/hard-limits/hard-limits.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "edd3f749b8cdcabd9a2372de84974ac07c17f089d5b69075660cdda960526851" + }, + { + "config_id": "config:linuxcnc/tests/matrixkins/core_sim.hal:3:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 3, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/matrixkins/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d86a435fc0e55166541ddc67f57ee31035f38f13c1893c24f145b1ea9b96cbe1" + }, + { + "config_id": "config:linuxcnc/tests/mdi-queue-length/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/mdi-queue-length/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "0aca271274de128e3f51e4f1f6874627a98c2e85db793b8d1d3ab7721badb3e8" + }, + { + "config_id": "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "5d60097b8468be84daf711cb693f12db3c3186ddc078bd3ff210d058e6a03912" + }, + { + "config_id": "config:linuxcnc/tests/mqtt/simulator.hal:1:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 1, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/mqtt/simulator.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "662e0bec716dfee210d63995cdaace0fceaf9285b1fa75a90dd813d2d3a3591d" + }, + { + "config_id": "config:linuxcnc/tests/remap/remap-io/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/remap/remap-io/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "ac762d6126e58f3f85f57da64c6764eea9d04251bffec460a056eaf5ac358eba" + }, + { + "config_id": "config:linuxcnc/tests/remap/remap-reentry/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/remap/remap-reentry/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "0aca271274de128e3f51e4f1f6874627a98c2e85db793b8d1d3ab7721badb3e8" + }, + { + "config_id": "config:linuxcnc/tests/rs274ngc-startup/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/rs274ngc-startup/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c" + }, + { + "config_id": "config:linuxcnc/tests/startup-state/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/startup-state/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c" + }, + { + "config_id": "config:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c" + }, + { + "config_id": "config:linuxcnc/tests/tlo/mod_core_sim.hal:7:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 7, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/tlo/mod_core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "03e49f8d7a9a5e895a820faa2a1e4ee5bcad289750238ca2c87dd6c6e763e847" + }, + { + "config_id": "config:linuxcnc/tests/tool-info/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/tool-info/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/tests/toolchanger/m61/mod_core_sim.hal", + "raw": "loadrt trivkins", + "source_sha": "ea61e3971fcf818ba590c4434672c0ef91cd39ddc3e847825e0057f7aee5f5cf" + }, + { + "config_id": "config:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal:5:loadrt:_KINS_KINEMATICS", + "family": "template_entry", + "kind": "loadrt", + "line": 5, + "module": "[KINS]KINEMATICS", + "path": "linuxcnc/tests/toolchanger/reload-tool/core_sim.hal", + "raw": "loadrt [KINS]KINEMATICS", + "source_sha": "e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0" + }, + { + "config_id": "config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins", + "family": "cartesian", + "kind": "loadrt", + "line": 5, + "module": "trivkins", + "path": "linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal", + "raw": "loadrt trivkins", + "source_sha": "15e2610f7ef91309821d62443c603b4d6d7b7be7e277abcf050ae15491b40f52" + } + ], + "entry_count": 113, + "fingerprint_sha256": "20510c7d7679f8f15a221577fe5bb3b3c6a41fed47c2c66583b80df450bfd0d8" + }, + "missing_required_test_roots": [ + "linuxcnc/unit_tests/kinematics" + ], + "report_fingerprint_sha256": "f827c392e9a92d413e1987bc54934e3d25afc39802eeeba57a3c235c585207d9", + "required_test_roots": [ + "linuxcnc/unit_tests/kinematics", + "linuxcnc/tests/matrixkins" + ], + "schema": "kinematics-source-closure-report.v2", + "source": { + "file_count": 38, + "files": [ + { + "bytes": 9705, + "extension": ".c", + "family": "five_axis", + "functions": [ + "fiveaxis_KinematicsForward", + "fiveaxis_KinematicsInverse", + "fiveaxis_KinematicsSetup", + "switchkinsSetup" + ], + "module": "5axiskins", + "path": "linuxcnc/src/emc/kinematics/5axiskins.c", + "sha256": "2e29fee21936cfbbafbb000290276e4b32eaba4831014e08d3fb833f2b3dac72", + "source_id": "source:linuxcnc/src/emc/kinematics/5axiskins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 4, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/5axiskins.c:52:macro:REQUIRED_COORDINATES", + "symbol:linuxcnc/src/emc/kinematics/5axiskins.c:54:macro:DEFAULT_PIVOT_LENGTH", + "symbol:linuxcnc/src/emc/kinematics/5axiskins.c:66:type:haldata", + "symbol:linuxcnc/src/emc/kinematics/5axiskins.c:71:function:s2r" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1620, + "extension": "", + "family": "unknown", + "functions": [], + "module": "Submakefile", + "path": "linuxcnc/src/emc/kinematics/Submakefile", + "sha256": "1c207052f7321b3380891762da32b8985592c3dba3cc894a8fd946229809db69", + "source_id": "source:linuxcnc/src/emc/kinematics/Submakefile", + "source_index_status": "indexed", + "source_kind": "kinematics_build_or_asset", + "symbol_count": 0, + "symbol_ids": [], + "symbol_status": "missing_index_entry" + }, + { + "bytes": 1202, + "extension": ".fig", + "family": "unknown", + "functions": [], + "module": "blend", + "path": "linuxcnc/src/emc/kinematics/blend.fig", + "sha256": "8ccf10df11d69958f286b3c8012fc239a07093d3789e5be9c96a6d487b92a89b", + "source_id": "source:linuxcnc/src/emc/kinematics/blend.fig", + "source_index_status": "indexed", + "source_kind": "kinematics_build_or_asset", + "symbol_count": 0, + "symbol_ids": [], + "symbol_status": "missing_index_entry" + }, + { + "bytes": 2272, + "extension": ".c", + "family": "coupled_linear", + "functions": [ + "kinematicsForward", + "kinematicsHome", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "corexykins", + "path": "linuxcnc/src/emc/kinematics/corexykins.c", + "sha256": "507963e0ed464440fa530db11b1b15c6a663182eb016855d105554ae8125ae5b", + "source_id": "source:linuxcnc/src/emc/kinematics/corexykins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 4, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/corexykins.c:63:function:kinematicsForward", + "symbol:linuxcnc/src/emc/kinematics/corexykins.c:66:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/corexykins.c:75:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/corexykins.c:85:function:rtapi_app_exit" + ], + "symbol_status": "indexed" + }, + { + "bytes": 9497, + "extension": ".c", + "family": "user_static", + "functions": [ + "cubicAddPoint", + "cubicDrain", + "cubicFilled", + "cubicGetInterpolationRate", + "cubicInit", + "cubicNeedNextPoint", + "cubicOffset", + "cubicSetInterpolationRate", + "cubicSetSegmentTime", + "main" + ], + "module": "cubic", + "path": "linuxcnc/src/emc/kinematics/cubic.c", + "sha256": "64f9070d413fa0ebf94668d753e13d17049317899777b59ea100b30db00acda3", + "source_id": "source:linuxcnc/src/emc/kinematics/cubic.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 22, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/cubic.c:107:function:velPoint", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:116:function:cubicInit", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:131:function:cubicSetSegmentTime", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:147:function:cubicGetSegmentTime", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:156:function:cubicSetInterpolationRate", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:172:function:cubicGetInterpolationRate", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:181:function:cubicGetInterpolationIncrement", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:190:function:cubicGetCubicCoeff", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:20:macro:SEGMENT_TIME_SET", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:21:macro:INTERPOLATION_RATE_SET", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:220:function:cubicAddPoint", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:22:macro:ALL_SET", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:265:function:cubicOffset", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:287:function:cubicFilled", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:338:function:cubicNeedNextPoint", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:343:function:cubicDrain", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:365:function:main", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:61:function:interpolateCubic", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:71:function:interpolateVel", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:80:function:interpolateAccel", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:89:function:interpolateJerk", + "symbol:linuxcnc/src/emc/kinematics/cubic.c:98:function:wayPoint" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1764, + "extension": ".h", + "family": "user_static", + "functions": [], + "module": "cubic", + "path": "linuxcnc/src/emc/kinematics/cubic.h", + "sha256": "00a9d34bb44045890221eeb0f44bd93b76b695b6e788405a8b6f78deae338436", + "source_id": "source:linuxcnc/src/emc/kinematics/cubic.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 13, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/cubic.h:14:macro:CUBIC_H", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:43:function:cubicInit", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:44:function:cubicSetSegmentTime", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:45:function:cubicGetSegmentTime", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:46:function:cubicSetInterpolationRate", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:47:function:cubicGetInterpolationRate", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:48:function:cubicAddPoint", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:49:function:cubicOffset", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:50:function:cubicGetInterpolationIncrement", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:51:function:cubicGetCubicCoeff", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:52:function:cubicFilled", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:59:function:cubicNeedNextPoint", + "symbol:linuxcnc/src/emc/kinematics/cubic.h:60:function:cubicDrain" + ], + "symbol_status": "indexed" + }, + { + "bytes": 26308, + "extension": ".c", + "family": "parallel_hexapod", + "functions": [ + "MatInvert", + "MatMult", + "StrutLengthCorrection", + "genhexKinematicsForward", + "genhexKinematicsInverse", + "genhexKinematicsSetup", + "genhex_gui_forward_kins", + "genhex_read_hal_pins", + "switchkinsSetup" + ], + "module": "genhexkins", + "path": "linuxcnc/src/emc/kinematics/genhexkins.c", + "sha256": "8df3d8bd812e040a06bc29ea91625fd143bacf26903b106ae6700430aca7f6b9", + "source_id": "source:linuxcnc/src/emc/kinematics/genhexkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 4, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/genhexkins.c:151:function:genhex_gui_forward_kins", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.c:168:function:MatInvert", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.c:252:function:MatMult", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.c:274:function:genhex_read_hal_pins" + ], + "symbol_status": "indexed" + }, + { + "bytes": 3680, + "extension": ".h", + "family": "parallel_hexapod", + "functions": [], + "module": "genhexkins", + "path": "linuxcnc/src/emc/kinematics/genhexkins.h", + "sha256": "580a2e1703a5c0efb683b4a26f805af434edcfe9d1ade7890e44307f8b0b236c", + "source_id": "source:linuxcnc/src/emc/kinematics/genhexkins.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 76, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:103:macro:DEFAULT_PLATFORM_0_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:104:macro:DEFAULT_PLATFORM_0_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:105:macro:DEFAULT_PLATFORM_0_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:107:macro:DEFAULT_PLATFORM_1_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:108:macro:DEFAULT_PLATFORM_1_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:109:macro:DEFAULT_PLATFORM_1_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:111:macro:DEFAULT_PLATFORM_2_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:112:macro:DEFAULT_PLATFORM_2_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:113:macro:DEFAULT_PLATFORM_2_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:115:macro:DEFAULT_PLATFORM_3_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:116:macro:DEFAULT_PLATFORM_3_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:117:macro:DEFAULT_PLATFORM_3_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:119:macro:DEFAULT_PLATFORM_4_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:120:macro:DEFAULT_PLATFORM_4_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:121:macro:DEFAULT_PLATFORM_4_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:123:macro:DEFAULT_PLATFORM_5_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:124:macro:DEFAULT_PLATFORM_5_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:125:macro:DEFAULT_PLATFORM_5_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:129:macro:DEFAULT_SCREW_LEAD", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:21:macro:GENHEXKINS_H", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:26:macro:GENHEX_MAX_JOINTS", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:27:macro:NUM_STRUTS", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:31:macro:DEFAULT_BASE_0_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:32:macro:DEFAULT_BASE_1_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:33:macro:DEFAULT_BASE_2_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:34:macro:DEFAULT_BASE_3_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:35:macro:DEFAULT_BASE_4_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:36:macro:DEFAULT_BASE_5_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:38:macro:DEFAULT_BASE_0_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:39:macro:DEFAULT_BASE_1_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:40:macro:DEFAULT_BASE_2_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:41:macro:DEFAULT_BASE_3_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:42:macro:DEFAULT_BASE_4_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:43:macro:DEFAULT_BASE_5_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:45:macro:DEFAULT_BASE_0_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:46:macro:DEFAULT_BASE_1_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:47:macro:DEFAULT_BASE_2_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:48:macro:DEFAULT_BASE_3_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:49:macro:DEFAULT_BASE_4_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:50:macro:DEFAULT_BASE_5_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:54:macro:DEFAULT_PLATFORM_0_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:55:macro:DEFAULT_PLATFORM_1_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:56:macro:DEFAULT_PLATFORM_2_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:57:macro:DEFAULT_PLATFORM_3_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:58:macro:DEFAULT_PLATFORM_4_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:59:macro:DEFAULT_PLATFORM_5_X", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:61:macro:DEFAULT_PLATFORM_0_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:62:macro:DEFAULT_PLATFORM_1_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:63:macro:DEFAULT_PLATFORM_2_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:64:macro:DEFAULT_PLATFORM_3_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:65:macro:DEFAULT_PLATFORM_4_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:66:macro:DEFAULT_PLATFORM_5_Y", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:68:macro:DEFAULT_PLATFORM_0_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:69:macro:DEFAULT_PLATFORM_1_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:70:macro:DEFAULT_PLATFORM_2_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:71:macro:DEFAULT_PLATFORM_3_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:72:macro:DEFAULT_PLATFORM_4_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:73:macro:DEFAULT_PLATFORM_5_Z", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:77:macro:DEFAULT_BASE_0_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:78:macro:DEFAULT_BASE_0_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:79:macro:DEFAULT_BASE_0_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:81:macro:DEFAULT_BASE_1_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:82:macro:DEFAULT_BASE_1_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:83:macro:DEFAULT_BASE_1_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:85:macro:DEFAULT_BASE_2_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:86:macro:DEFAULT_BASE_2_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:87:macro:DEFAULT_BASE_2_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:89:macro:DEFAULT_BASE_3_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:90:macro:DEFAULT_BASE_3_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:91:macro:DEFAULT_BASE_3_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:93:macro:DEFAULT_BASE_4_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:94:macro:DEFAULT_BASE_4_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:95:macro:DEFAULT_BASE_4_NZ", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:97:macro:DEFAULT_BASE_5_NX", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:98:macro:DEFAULT_BASE_5_NY", + "symbol:linuxcnc/src/emc/kinematics/genhexkins.h:99:macro:DEFAULT_BASE_5_NZ" + ], + "symbol_status": "indexed" + }, + { + "bytes": 22068, + "extension": ".c", + "family": "serial_robot", + "functions": [ + "compute_jfwd", + "compute_jinv", + "genserKinematicsForward", + "genserKinematicsInverse", + "genserKinematicsSetup", + "genser_kin_fwd", + "genser_kin_init", + "genser_kin_inv_get_max_iterations", + "genser_kin_inv_iterations", + "genser_kin_inv_set_max_iterations", + "genser_kin_jac_fwd", + "genser_kin_jac_inv" + ], + "module": "genserfuncs", + "path": "linuxcnc/src/emc/kinematics/genserfuncs.c", + "sha256": "e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781", + "source_id": "source:linuxcnc/src/emc/kinematics/genserfuncs.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 11, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:192:function:compute_jinv", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:270:function:go_matrix_vector_mult", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:383:function:genser_kin_fwd", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:572:function:genser_kin_inv_iterations", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:577:function:genser_kin_inv_set_max_iterations", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:584:function:genser_kin_inv_get_max_iterations", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:62:macro:A", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:63:macro:ALPHA", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:64:macro:D", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:66:macro:KINS_PTR", + "symbol:linuxcnc/src/emc/kinematics/genserfuncs.c:74:function:genser_kin_init" + ], + "symbol_status": "indexed" + }, + { + "bytes": 2313, + "extension": ".c", + "family": "serial_robot", + "functions": [ + "switchkinsSetup" + ], + "module": "genserkins", + "path": "linuxcnc/src/emc/kinematics/genserkins.c", + "sha256": "cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075", + "source_id": "source:linuxcnc/src/emc/kinematics/genserkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 1, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/genserkins.c:45:macro:GO_REAL_EPSILON" + ], + "symbol_status": "indexed" + }, + { + "bytes": 5247, + "extension": ".h", + "family": "serial_robot", + "functions": [], + "module": "genserkins", + "path": "linuxcnc/src/emc/kinematics/genserkins.h", + "sha256": "2e40cf061dafe050ad242f197b4acdbd916adcea41885e4edbb2b8c7b5423833", + "source_id": "source:linuxcnc/src/emc/kinematics/genserkins.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 31, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:101:function:genser_kin_get_parameters", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:116:function:genser_kin_fwd_interations", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:127:function:genser_kin_inv_iterations", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:132:function:genser_kin_inv_set_max_iterations", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:136:function:genser_kin_inv_get_max_iterations", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:34:macro:GENSERKINS_H", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:46:macro:GENSER_MAX_JOINTS", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:48:macro:GENSER_DEFAULT_MAX_ITERATIONS", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:50:macro:PI_2", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:53:macro:DEFAULT_A1", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:54:macro:DEFAULT_ALPHA1", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:55:macro:DEFAULT_D1", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:57:macro:DEFAULT_A2", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:58:macro:DEFAULT_ALPHA2", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:59:macro:DEFAULT_D2", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:61:macro:DEFAULT_A3", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:62:macro:DEFAULT_ALPHA3", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:63:macro:DEFAULT_D3", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:65:macro:DEFAULT_A4", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:66:macro:DEFAULT_ALPHA4", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:67:macro:DEFAULT_D4", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:69:macro:DEFAULT_A5", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:70:macro:DEFAULT_ALPHA5", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:71:macro:DEFAULT_D5", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:73:macro:DEFAULT_A6", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:74:macro:DEFAULT_ALPHA6", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:75:macro:DEFAULT_D6", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:83:function:genser_kin_size", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:85:function:genser_kin_init", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:89:function:genser_kin_num_joints", + "symbol:linuxcnc/src/emc/kinematics/genserkins.h:99:function:genser_kin_set_parameters" + ], + "symbol_status": "indexed" + }, + { + "bytes": 9696, + "extension": ".h", + "family": "common_support", + "functions": [], + "module": "kinematics", + "path": "linuxcnc/src/emc/kinematics/kinematics.h", + "sha256": "33b3744b9ceeeef3d992e9ca9cda89d93a3357d2d0a2af2023ca728e4be8e428", + "source_id": "source:linuxcnc/src/emc/kinematics/kinematics.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 12, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:103:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:106:type:kinematics_parms", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:151:type:EmcPose", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:160:function:kinematicsSwitchable", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:161:function:kinematicsSwitch", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:166:macro:KINS_NOT_SWITCHABLE", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:167:function:kinematicsSwitchable", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:168:function:kinematicsSwitch", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:16:macro:KINEMATICS_H", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:179:type:EmcPose", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:27:function:positions", + "symbol:linuxcnc/src/emc/kinematics/kinematics.h:79:type:EmcPose" + ], + "symbol_status": "indexed" + }, + { + "bytes": 12821, + "extension": ".c", + "family": "common_support", + "functions": [ + "identityKinematicsForward", + "identityKinematicsInverse", + "identityKinematicsSetup", + "map_coordinates_to_jnumbers", + "mapped_joints_to_position", + "position_to_mapped_joints" + ], + "module": "kins_util", + "path": "linuxcnc/src/emc/kinematics/kins_util.c", + "sha256": "9a9dfbeb0f5d307b5fe99556b10a1869ccbcabc699be1bcfcfd80864ffb0288e", + "source_id": "source:linuxcnc/src/emc/kinematics/kins_util.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 1, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/kins_util.c:73:macro:MAX_COORDINATES_CHARS" + ], + "symbol_status": "indexed" + }, + { + "bytes": 4416, + "extension": ".h", + "family": "parallel_delta", + "functions": [ + "kinematics_forward", + "kinematics_inverse", + "set_geometry" + ], + "module": "lineardeltakins-common", + "path": "linuxcnc/src/emc/kinematics/lineardeltakins-common.h", + "sha256": "7785bcd7d095b431169cdd0f753c177ece643ee825f7ff4b8cdb6f8cd4706df8", + "source_id": "source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 14, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:127:macro:DELTA_DIAGONAL_ROD", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:130:macro:DELTA_SMOOTH_ROD_OFFSET", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:133:macro:DELTA_EFFECTOR_OFFSET", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:136:macro:DELTA_CARRIAGE_OFFSET", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:139:macro:DELTA_RADIUS", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:2:macro:LINUXCNCLINEARDELTAKINS_COMMON_H", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:40:macro:SQ3", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:42:macro:SIN_60", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:43:macro:COS_60", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:45:function:sq", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:47:function:set_geometry", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:66:function:kinematics_inverse", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:79:function:isnan", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins-common.h:83:function:kinematics_forward" + ], + "symbol_status": "indexed" + }, + { + "bytes": 2489, + "extension": ".c", + "family": "parallel_delta", + "functions": [ + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "lineardeltakins", + "path": "linuxcnc/src/emc/kinematics/lineardeltakins.c", + "sha256": "792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748", + "source_id": "source:linuxcnc/src/emc/kinematics/lineardeltakins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 6, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.c:24:type:haldata", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.c:36:function:kinematics_forward", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.c:43:function:kinematics_inverse", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.c:46:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.c:51:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.c:85:function:rtapi_app_exit" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1808, + "extension": ".cc", + "family": "parallel_delta", + "functions": [], + "module": "lineardeltakins", + "path": "linuxcnc/src/emc/kinematics/lineardeltakins.cc", + "sha256": "77634457a4dd3f5617f91a66651965c5b8326fc0d4dfc916d9cd63b89b0ec0f1", + "source_id": "source:linuxcnc/src/emc/kinematics/lineardeltakins.cc", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 10, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:17:macro:BOOST_PYTHON_MAX_ARITY", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:21:macro:isnan", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:24:function:forward", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:30:function:make_tuple", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:31:function:object", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:34:function:inverse", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:40:function:make_tuple", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:41:function:object", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:44:function:get_geometry", + "symbol:linuxcnc/src/emc/kinematics/lineardeltakins.cc:46:function:make_tuple" + ], + "symbol_status": "indexed" + }, + { + "bytes": 3763, + "extension": ".c", + "family": "cartesian", + "functions": [ + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "maxkins", + "path": "linuxcnc/src/emc/kinematics/maxkins.c", + "sha256": "01529e0db1b698af621d63c30bc8ae382757dd367f3e4babc9b959873344b4e7", + "source_id": "source:linuxcnc/src/emc/kinematics/maxkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 7, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:103:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:118:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:138:function:rtapi_app_exit", + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:26:macro:d2r", + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:27:macro:r2d", + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:30:macro:hypot", + "symbol:linuxcnc/src/emc/kinematics/maxkins.c:33:type:haldata" + ], + "symbol_status": "indexed" + }, + { + "bytes": 699, + "extension": ".build", + "family": "unknown", + "functions": [], + "module": "meson", + "path": "linuxcnc/src/emc/kinematics/meson.build", + "sha256": "a5de13a16e378a98c1c3df262881592396818510e835a5f2fe2101ed512072a3", + "source_id": "source:linuxcnc/src/emc/kinematics/meson.build", + "source_index_status": "indexed", + "source_kind": "kinematics_build_or_asset", + "symbol_count": 0, + "symbol_ids": [], + "symbol_status": "missing_index_entry" + }, + { + "bytes": 14441, + "extension": ".c", + "family": "parallel_pentapod", + "functions": [ + "InvKins", + "MatInvert5", + "MatMult5", + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "pentakins_read_hal_pins", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "pentakins", + "path": "linuxcnc/src/emc/kinematics/pentakins.c", + "sha256": "1b385c2ab3a1bcb106d1d22a2dfe14519dba9c4a5df4cb31071a180845cda4c6", + "source_id": "source:linuxcnc/src/emc/kinematics/pentakins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 8, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:161:function:MatMult5", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:175:function:sqr", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:186:function:pentakins_read_hal_pins", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:393:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:411:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:514:function:rtapi_app_exit", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:56:type:haldata", + "symbol:linuxcnc/src/emc/kinematics/pentakins.c:77:function:MatInvert5" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1560, + "extension": ".h", + "family": "parallel_pentapod", + "functions": [], + "module": "pentakins", + "path": "linuxcnc/src/emc/kinematics/pentakins.h", + "sha256": "af8551454177bbcc85e4e17377e059573ab8c15dc022de2a4be9b70dead74e2d", + "source_id": "source:linuxcnc/src/emc/kinematics/pentakins.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 26, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:19:macro:NUM_STRUTS", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:23:macro:DEFAULT_BASE_0_X", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:24:macro:DEFAULT_BASE_1_X", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:25:macro:DEFAULT_BASE_2_X", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:26:macro:DEFAULT_BASE_3_X", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:27:macro:DEFAULT_BASE_4_X", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:29:macro:DEFAULT_BASE_0_Y", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:30:macro:DEFAULT_BASE_1_Y", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:31:macro:DEFAULT_BASE_2_Y", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:32:macro:DEFAULT_BASE_3_Y", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:33:macro:DEFAULT_BASE_4_Y", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:35:macro:DEFAULT_BASE_0_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:36:macro:DEFAULT_BASE_1_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:37:macro:DEFAULT_BASE_2_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:38:macro:DEFAULT_BASE_3_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:39:macro:DEFAULT_BASE_4_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:43:macro:DEFAULT_EFFECTOR_0_R", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:44:macro:DEFAULT_EFFECTOR_1_R", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:45:macro:DEFAULT_EFFECTOR_2_R", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:46:macro:DEFAULT_EFFECTOR_3_R", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:47:macro:DEFAULT_EFFECTOR_4_R", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:52:macro:DEFAULT_EFFECTOR_0_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:53:macro:DEFAULT_EFFECTOR_1_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:54:macro:DEFAULT_EFFECTOR_2_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:55:macro:DEFAULT_EFFECTOR_3_Z", + "symbol:linuxcnc/src/emc/kinematics/pentakins.h:56:macro:DEFAULT_EFFECTOR_4_Z" + ], + "symbol_status": "indexed" + }, + { + "bytes": 10870, + "extension": ".c", + "family": "serial_robot", + "functions": [ + "pumaKinematicsForward", + "pumaKinematicsInverse", + "pumaKinematicsSetup", + "switchkinsSetup" + ], + "module": "pumakins", + "path": "linuxcnc/src/emc/kinematics/pumakins.c", + "sha256": "5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2", + "source_id": "source:linuxcnc/src/emc/kinematics/pumakins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 6, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/pumakins.c:28:type:haldata", + "symbol:linuxcnc/src/emc/kinematics/pumakins.c:32:macro:PUMA_A2", + "symbol:linuxcnc/src/emc/kinematics/pumakins.c:33:macro:PUMA_A3", + "symbol:linuxcnc/src/emc/kinematics/pumakins.c:34:macro:PUMA_D3", + "symbol:linuxcnc/src/emc/kinematics/pumakins.c:35:macro:PUMA_D4", + "symbol:linuxcnc/src/emc/kinematics/pumakins.c:36:macro:PUMA_D6" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1232, + "extension": ".h", + "family": "serial_robot", + "functions": [], + "module": "pumakins", + "path": "linuxcnc/src/emc/kinematics/pumakins.h", + "sha256": "a90cafe680533e0a8d43cf72c9f6bea380267d60090ea82ead4e3eb58bcddf58", + "source_id": "source:linuxcnc/src/emc/kinematics/pumakins.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 13, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:21:macro:PUMA_H", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:25:macro:DEFAULT_PUMA560_A2", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:26:macro:DEFAULT_PUMA560_A3", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:27:macro:DEFAULT_PUMA560_D3", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:28:macro:DEFAULT_PUMA560_D4", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:29:macro:DEFAULT_PUMA560_D6", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:31:macro:SINGULAR_FUZZ", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:32:macro:FLAG_FUZZ", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:35:macro:PUMA_SHOULDER_RIGHT", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:36:macro:PUMA_ELBOW_DOWN", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:37:macro:PUMA_WRIST_FLIP", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:38:macro:PUMA_SINGULAR", + "symbol:linuxcnc/src/emc/kinematics/pumakins.h:41:macro:PUMA_REACH" + ], + "symbol_status": "indexed" + }, + { + "bytes": 3839, + "extension": ".c", + "family": "coupled_linear", + "functions": [ + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "rosekins", + "path": "linuxcnc/src/emc/kinematics/rosekins.c", + "sha256": "1de39affa6b99f21c5e902fc67c8b1d8876d44fc8eff920afd816d7f956cfd78", + "source_id": "source:linuxcnc/src/emc/kinematics/rosekins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 5, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/rosekins.c:112:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/rosekins.c:119:function:rtapi_app_exit", + "symbol:linuxcnc/src/emc/kinematics/rosekins.c:121:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/rosekins.c:33:macro:hypot", + "symbol:linuxcnc/src/emc/kinematics/rosekins.c:36:type:haldata" + ], + "symbol_status": "indexed" + }, + { + "bytes": 5753, + "extension": ".h", + "family": "parallel_delta", + "functions": [ + "inverse_j0", + "kinematics_forward", + "kinematics_inverse", + "rotate", + "set_geometry" + ], + "module": "rotarydeltakins-common", + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins-common.h", + "sha256": "ba3e037fe2ad7eba29aa2b657492ac83f1979a38c9249fef52e598ba0d5c9136", + "source_id": "source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 12, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:141:function:inverse_j0", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:159:function:rotate", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:166:function:kinematics_inverse", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:189:macro:RDELTA_PFR", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:190:macro:RDELTA_TL", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:191:macro:RDELTA_SL", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:192:macro:RDELTA_FR", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:46:macro:LINUXCNCROTARYDELTAKINS_COMMON_H", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:62:macro:sq", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:65:macro:D2R", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:68:function:set_geometry", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h:76:function:kinematics_forward" + ], + "symbol_status": "indexed" + }, + { + "bytes": 2964, + "extension": ".c", + "family": "parallel_delta", + "functions": [ + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "rotarydeltakins", + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins.c", + "sha256": "64c8aeb6998a481f3c26743093dd157d2d22dc6769b258e3e6012b5c1f784773", + "source_id": "source:linuxcnc/src/emc/kinematics/rotarydeltakins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 6, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.c:25:type:haldata", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.c:40:function:kinematics_forward", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.c:47:function:kinematics_inverse", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.c:50:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.c:55:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.c:97:function:rtapi_app_exit" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1835, + "extension": ".cc", + "family": "parallel_delta", + "functions": [], + "module": "rotarydeltakins", + "path": "linuxcnc/src/emc/kinematics/rotarydeltakins.cc", + "sha256": "7e2fd63a2a7f5718d706faa21f903b36007226b065ad6d234631d2514f653618", + "source_id": "source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 9, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:17:macro:BOOST_PYTHON_MAX_ARITY", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:23:function:forward", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:29:function:make_tuple", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:30:function:object", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:33:function:inverse", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:39:function:make_tuple", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:40:function:object", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:43:function:get_geometry", + "symbol:linuxcnc/src/emc/kinematics/rotarydeltakins.cc:45:function:make_tuple" + ], + "symbol_status": "indexed" + }, + { + "bytes": 2372, + "extension": ".c", + "family": "cartesian", + "functions": [ + "kinematicsForward", + "kinematicsHome", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "rotatekins", + "path": "linuxcnc/src/emc/kinematics/rotatekins.c", + "sha256": "b104c7e0eb726f48b83daa4d596db5ca8021d803ab17dd123db9b9410ce5f47c", + "source_id": "source:linuxcnc/src/emc/kinematics/rotatekins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 4, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/rotatekins.c:65:function:kinematicsForward", + "symbol:linuxcnc/src/emc/kinematics/rotatekins.c:68:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/rotatekins.c:84:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/rotatekins.c:93:function:rtapi_app_exit" + ], + "symbol_status": "indexed" + }, + { + "bytes": 7467, + "extension": ".c", + "family": "serial_robot", + "functions": [ + "scaraKinematicsForward", + "scaraKinematicsInverse", + "scaraKinematicsSetup", + "switchkinsSetup" + ], + "module": "scarakins", + "path": "linuxcnc/src/emc/kinematics/scarakins.c", + "sha256": "f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9", + "source_id": "source:linuxcnc/src/emc/kinematics/scarakins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 13, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:173:macro:DEFAULT_D1", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:174:macro:DEFAULT_D2", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:175:macro:DEFAULT_D3", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:176:macro:DEFAULT_D4", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:177:macro:DEFAULT_D5", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:178:macro:DEFAULT_D6", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:26:type:scara_data", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:66:macro:D1", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:67:macro:D2", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:68:macro:D3", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:69:macro:D4", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:70:macro:D5", + "symbol:linuxcnc/src/emc/kinematics/scarakins.c:71:macro:D6" + ], + "symbol_status": "indexed" + }, + { + "bytes": 11893, + "extension": ".c", + "family": "serial_robot", + "functions": [ + "compute_j1_cartesian_location", + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "scorbot-kins", + "path": "linuxcnc/src/emc/kinematics/scorbot-kins.c", + "sha256": "89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d", + "source_id": "source:linuxcnc/src/emc/kinematics/scorbot-kins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 8, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:291:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:308:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:317:function:rtapi_app_exit", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:52:macro:L0_HORIZONTAL_DISTANCE", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:53:macro:L0_VERTICAL_DISTANCE", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:55:macro:L1_LENGTH", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:56:macro:L2_LENGTH", + "symbol:linuxcnc/src/emc/kinematics/scorbot-kins.c:61:function:compute_j1_cartesian_location" + ], + "symbol_status": "indexed" + }, + { + "bytes": 11718, + "extension": ".c", + "family": "switchable", + "functions": [ + "get_lastpose", + "gui_forward_kins", + "kinematicsForward", + "kinematicsInverse", + "kinematicsSwitch", + "kinematicsSwitchable", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main", + "save_lastpose" + ], + "module": "switchkins", + "path": "linuxcnc/src/emc/kinematics/switchkins.c", + "sha256": "4de32a4a147e5ceee5346b9c6bf471dddf5c64ff58afe5044406c50bcd96b7f5", + "source_id": "source:linuxcnc/src/emc/kinematics/switchkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 8, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:124:function:kinematicsSwitchable", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:126:function:kinematicsSwitch", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:224:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:244:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:340:function:rtapi_app_exit", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:70:function:save_lastpose", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:83:function:get_lastpose", + "symbol:linuxcnc/src/emc/kinematics/switchkins.c:96:function:gui_forward_kins" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1184, + "extension": ".h", + "family": "switchable", + "functions": [], + "module": "switchkins", + "path": "linuxcnc/src/emc/kinematics/switchkins.h", + "sha256": "f6e5323aa16daaac8e07bba622d0bf969102ad0d9c00d41621c08af31e0bb9b1", + "source_id": "source:linuxcnc/src/emc/kinematics/switchkins.h", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 2, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/switchkins.h:10:macro:SWITCHKINS_MAX_TYPES", + "symbol:linuxcnc/src/emc/kinematics/switchkins.h:5:macro:SWITCHKINS_H" + ], + "symbol_status": "indexed" + }, + { + "bytes": 9211, + "extension": ".c", + "family": "parallel_tripod", + "functions": [ + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "main", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "tripodkins", + "path": "linuxcnc/src/emc/kinematics/tripodkins.c", + "sha256": "0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f", + "source_id": "source:linuxcnc/src/emc/kinematics/tripodkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 23, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:131:macro:AD", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:132:macro:BD", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:133:macro:CD", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:134:macro:Dx", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:135:macro:Dy", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:136:macro:Dz", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:187:macro:AD", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:188:macro:BD", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:189:macro:CD", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:190:macro:Dx", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:191:macro:Dy", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:192:macro:Dz", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:213:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:228:function:main", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:231:macro:BUFFERLEN", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:361:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:383:function:rtapi_app_exit", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:71:macro:__attribute__", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:76:type:haldata", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:80:macro:Bx", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:81:macro:Cx", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:82:macro:Cy", + "symbol:linuxcnc/src/emc/kinematics/tripodkins.c:84:macro:sq" + ], + "symbol_status": "indexed" + }, + { + "bytes": 2429, + "extension": ".c", + "family": "cartesian", + "functions": [ + "kinematicsForward", + "kinematicsInverse", + "kinematicsType", + "rtapi_app_exit", + "rtapi_app_main" + ], + "module": "trivkins", + "path": "linuxcnc/src/emc/kinematics/trivkins.c", + "sha256": "a08cd347b8dde7d7e201ddde93a1cdef47e8126e58f355d4270fccf6d48819bc", + "source_id": "source:linuxcnc/src/emc/kinematics/trivkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 7, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:23:macro:SET", + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:30:function:identityKinematicsForward", + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:38:function:identityKinematicsInverse", + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:43:function:kinematicsType", + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:48:macro:TRIVKINS_DEFAULT_COORDINATES", + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:63:function:rtapi_app_main", + "symbol:linuxcnc/src/emc/kinematics/trivkins.c:87:function:rtapi_app_exit" + ], + "symbol_status": "indexed" + }, + { + "bytes": 13363, + "extension": ".c", + "family": "five_axis_trt", + "functions": [ + "trtKinematicsSetup", + "xyzacKinematicsForward", + "xyzacKinematicsInverse", + "xyzbcKinematicsForward", + "xyzbcKinematicsInverse" + ], + "module": "trtfuncs", + "path": "linuxcnc/src/emc/kinematics/trtfuncs.c", + "sha256": "ced2f9d4732681e2e82153b2f6343eccdf6972222d558d1e277bf1ec0bdc87fd", + "source_id": "source:linuxcnc/src/emc/kinematics/trtfuncs.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 1, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/trtfuncs.c:55:type:haldata" + ], + "symbol_status": "indexed" + }, + { + "bytes": 11327, + "extension": ".c", + "family": "user_static", + "functions": [ + "main" + ], + "module": "ugenserkins", + "path": "linuxcnc/src/emc/kinematics/ugenserkins.c", + "sha256": "dee63aebaa11f2867657bc4b9052f6a8e8bd875e06bd8a9df2d3edac9eb1c31d", + "source_id": "source:linuxcnc/src/emc/kinematics/ugenserkins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 4, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/ugenserkins.c:19:function:timestamp", + "symbol:linuxcnc/src/emc/kinematics/ugenserkins.c:21:type:timeval", + "symbol:linuxcnc/src/emc/kinematics/ugenserkins.c:29:function:main", + "symbol:linuxcnc/src/emc/kinematics/ugenserkins.c:31:macro:BUFFERLEN" + ], + "symbol_status": "indexed" + }, + { + "bytes": 2653, + "extension": ".c", + "family": "user_static", + "functions": [ + "userkKinematicsForward", + "userkKinematicsInverse", + "userkKinematicsSetup" + ], + "module": "userkfuncs", + "path": "linuxcnc/src/emc/kinematics/userkfuncs.c", + "sha256": "146238645955f8d4e2cb0cd34ff44db3a9dad01e149f81c08f8a53c19f1609bc", + "source_id": "source:linuxcnc/src/emc/kinematics/userkfuncs.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 3, + "symbol_ids": [ + "symbol:linuxcnc/src/emc/kinematics/userkfuncs.c:63:type:EmcPose", + "symbol:linuxcnc/src/emc/kinematics/userkfuncs.c:73:function:identityKinematicsForward", + "symbol:linuxcnc/src/emc/kinematics/userkfuncs.c:82:function:identityKinematicsInverse" + ], + "symbol_status": "indexed" + }, + { + "bytes": 1896, + "extension": ".c", + "family": "five_axis_trt", + "functions": [ + "switchkinsSetup" + ], + "module": "xyzac-trt-kins", + "path": "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "sha256": "24c633613db9876c2ec246e1519a63d288fd27c68296d89f89f0368105634e69", + "source_id": "source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 0, + "symbol_ids": [], + "symbol_status": "indexed_empty" + }, + { + "bytes": 1896, + "extension": ".c", + "family": "five_axis_trt", + "functions": [ + "switchkinsSetup" + ], + "module": "xyzbc-trt-kins", + "path": "linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c", + "sha256": "d79c06db82930ef685809a87c7207398f7893f56a6a0dfe382df2c81eaeb9562", + "source_id": "source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c", + "source_index_status": "indexed", + "source_kind": "kinematics_implementation", + "symbol_count": 0, + "symbol_ids": [], + "symbol_status": "indexed_empty" + } + ], + "fingerprint_sha256": "57d998ca908f0f0628e72aabf08c2eb0d14fc6235823c7a8f4bfb11ff9f32c71", + "implementation_file_count": 35, + "root": "linuxcnc/src/emc/kinematics" + }, + "status": "blocked", + "tests": { + "file_count": 6, + "files": [ + { + "bytes": 95, + "official_unit_test": false, + "path": "linuxcnc/tests/matrixkins/README", + "sha256": "3ef06d3af7a4e338a4b74f19c8024af853c129de41a409a171577697154d3728", + "test_source_id": "test:linuxcnc/tests/matrixkins/README" + }, + { + "bytes": 67, + "official_unit_test": false, + "path": "linuxcnc/tests/matrixkins/checkresult", + "sha256": "c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa", + "test_source_id": "test:linuxcnc/tests/matrixkins/checkresult" + }, + { + "bytes": 648, + "official_unit_test": false, + "path": "linuxcnc/tests/matrixkins/core_sim.hal", + "sha256": "d86a435fc0e55166541ddc67f57ee31035f38f13c1893c24f145b1ea9b96cbe1", + "test_source_id": "test:linuxcnc/tests/matrixkins/core_sim.hal" + }, + { + "bytes": 5048, + "official_unit_test": false, + "path": "linuxcnc/tests/matrixkins/test-ui.py", + "sha256": "56f22c5de2655977ae380b57b29ce01213303effe37b484e650b2cd9bc376552", + "test_source_id": "test:linuxcnc/tests/matrixkins/test-ui.py" + }, + { + "bytes": 1780, + "official_unit_test": false, + "path": "linuxcnc/tests/matrixkins/test.ini", + "sha256": "8d799f31b43250680a79d2a4c252d863bea1d2647d8e95e8cf345c2c47bd9fea", + "test_source_id": "test:linuxcnc/tests/matrixkins/test.ini" + }, + { + "bytes": 49, + "official_unit_test": false, + "path": "linuxcnc/tests/matrixkins/test.sh", + "sha256": "c7904d36dcd3842ae2153fb00517f20aec6c71d77d2e6c97148ae391c1295fdd", + "test_source_id": "test:linuxcnc/tests/matrixkins/test.sh" + } + ], + "matrixkins_file_count": 6, + "missing_roots": [ + "linuxcnc/unit_tests/kinematics" + ], + "official_unit_test_file_count": 0, + "roots": [ + "linuxcnc/unit_tests/kinematics", + "linuxcnc/tests/matrixkins" + ] + } +} diff --git a/coverage/manifest.jsonl b/coverage/manifest.jsonl index 0b6e152..a39280e 100644 --- a/coverage/manifest.jsonl +++ b/coverage/manifest.jsonl @@ -6,35 +6,35 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/README","inputs":["linuxcnc/configs/sim/axis/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/README","source_sha":"f493300b8b58cc912f973a07b45d31631120170a683da00ee5629c4dee2be1b6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/README_es","inputs":["linuxcnc/configs/sim/axis/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/README_es","source_sha":"32d60cd810565d89fbf77279c733d20bedbc96f92c01b129358a903717dcef6f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/anglejog/anglejog.halshow","inputs":["linuxcnc/configs/sim/axis/anglejog/anglejog.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/anglejog/anglejog.halshow","source_sha":"bbb13a09e573a487d1b8d459943fb8c0c8051d0a5eca596a3dadcb0c55dbc5f9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini","inputs":["linuxcnc/configs/sim/axis/anglejog/anglejog.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini","source_sha":"2a8c89afad09a946eddae548b3bfdc3aa4c1f385e785e24a6a50db722215d035","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini","inputs":["linuxcnc/configs/sim/axis/anglejog/anglejog.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini","source_sha":"2a8c89afad09a946eddae548b3bfdc3aa4c1f385e785e24a6a50db722215d035","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/anglejog/anglejog.txt","inputs":["linuxcnc/configs/sim/axis/anglejog/anglejog.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/anglejog/anglejog.txt","source_sha":"ba981f07abf9a7910b576c894d4c9a709287d0a936e10fce05eb7a5babcbe120","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/anglejog/anglejog.xml","inputs":["linuxcnc/configs/sim/axis/anglejog/anglejog.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/anglejog/anglejog.xml","source_sha":"5b088219f21ac4eef64a4e2e53d643c034f0523466f887cb3565157e5bd9d4ab","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal","inputs":["linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/anglejog/anglejog_postgui.hal","source_sha":"d8685911355b822a72731a6143fda39f17b6687efbc032c05e1c11fa5ac8c79b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/axis.ini","inputs":["linuxcnc/configs/sim/axis/axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/axis.ini","source_sha":"a41915c4d0d48f46dd595d5d269e2fc73962f7d19897b220368dbc0e4dc96594","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/axis_9axis.ini","inputs":["linuxcnc/configs/sim/axis/axis_9axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/axis_9axis.ini","source_sha":"6e3b7b49ed0ed5d840ff8052c05d9c50dad4baba7c9b0bef43a774056388b403","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/axis_mm.ini","inputs":["linuxcnc/configs/sim/axis/axis_mm.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/axis_mm.ini","source_sha":"233aca0e517d0e6d70fa21da86734f6db80d4bee3761b28af92981bda1450749","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/canterp.ini","inputs":["linuxcnc/configs/sim/axis/canterp.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/canterp.ini","source_sha":"6d7fa7ff7b5586731297f3c1da653c9266da87cd54a7351f361a9fd9ba1fee36","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/axis.ini","inputs":["linuxcnc/configs/sim/axis/axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/axis.ini","source_sha":"a41915c4d0d48f46dd595d5d269e2fc73962f7d19897b220368dbc0e4dc96594","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/axis_9axis.ini","inputs":["linuxcnc/configs/sim/axis/axis_9axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/axis_9axis.ini","source_sha":"6e3b7b49ed0ed5d840ff8052c05d9c50dad4baba7c9b0bef43a774056388b403","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/axis_mm.ini","inputs":["linuxcnc/configs/sim/axis/axis_mm.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/axis_mm.ini","source_sha":"233aca0e517d0e6d70fa21da86734f6db80d4bee3761b28af92981bda1450749","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/canterp.ini","inputs":["linuxcnc/configs/sim/axis/canterp.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/canterp.ini","source_sha":"6d7fa7ff7b5586731297f3c1da653c9266da87cd54a7351f361a9fd9ba1fee36","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/canterp_example.can","inputs":["linuxcnc/configs/sim/axis/canterp_example.can"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/canterp_example.can","source_sha":"1a67afa7629d250178fa50987fe1cef710142a2ad0ce53aae1f7f684e4f3f938","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/README","inputs":["linuxcnc/configs/sim/axis/classicladder/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/README","source_sha":"ebf77e3b60a3460634cdfd4bef9c2e6f49457e78ada495fa6764dff29f3814e3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/README_es","inputs":["linuxcnc/configs/sim/axis/classicladder/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/README_es","source_sha":"55f7ea92990e2a787b98fcbd3ddebb5fba878beb99b0094ba8dd4745023d604f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/classicladder.hal","inputs":["linuxcnc/configs/sim/axis/classicladder/classicladder.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/classicladder.hal","source_sha":"f8fff81a7c951e55354db839fda71f7c187f15d03aa1e5774b2364e596647eed","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp","inputs":["linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.clp","source_sha":"20871e7d7a17409003d11d48034c85fe16f7f1d6df4442771037c10d894f6947","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal","inputs":["linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.hal","source_sha":"5d4161da1edb7340f8fb6b4d6236a29a4ad277a3ff41b26674ead52e4825e5b8","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini","inputs":["linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini","source_sha":"db8d3ac20cfb5cbdb3cc2c888cbadcbdc296b1e0dc171afabcdc167d2442581c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini","inputs":["linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini","source_sha":"db8d3ac20cfb5cbdb3cc2c888cbadcbdc296b1e0dc171afabcdc167d2442581c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl","inputs":["linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/cooling.hal","inputs":["linuxcnc/configs/sim/axis/cooling.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/cooling.hal","source_sha":"4bf84dc7aa6748a8703a917b0da84ae529d70207845e8453348ad9cb1d26ae4c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal","inputs":["linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal","source_sha":"51410ad61511b2de688f879fceb8e888856519e546a3273b4d7691df27f678ab","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal","inputs":["linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/3joint_xyz.hal","source_sha":"51410ad61511b2de688f879fceb8e888856519e546a3273b4d7691df27f678ab","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/README","inputs":["linuxcnc/configs/sim/axis/corexy/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/README","source_sha":"4a62a249fdde9cd00a53c760b73bcc5ffe0336b38cf6dcc95d0181fabf028830","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/README_es","inputs":["linuxcnc/configs/sim/axis/corexy/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/README_es","source_sha":"26f243521f18ebf482735b26c092603a941f5cba2c2edbad8233ba064ffd08a4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy.halshow","inputs":["linuxcnc/configs/sim/axis/corexy/corexy.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy.halshow","source_sha":"c4eb5bf007d3161b53b8427f28273981d30a7300549bc671f437e9472593b76c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_base.inc","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_base.inc","source_sha":"445bd74b1964662c6f33e96269ce912002ed17b2b52ed137e8cd569c7098d0c6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal","source_sha":"1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini","source_sha":"e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal"],"kind":"simulation_config","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal","source_sha":"1199dbb80147dc3c5820833c322e9f0d9ba94ed866b1ef6d00425ad90e3156a1","test_id":"audit:K2-HAL-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini"],"kind":"simulation_config","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini","source_sha":"e838da30ce5fba2d049487d48bd2aeff46b1390a5a448f31980d9ce06121740f","test_id":"audit:K2-HAL-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.txt","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_hal.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.txt","source_sha":"7158be6d8eacb0ddfa925ec2ed3830524e0b53abd0f948f4a93b1ef0674fec35","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini","source_sha":"b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini"],"kind":"simulation_config","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini","source_sha":"b6682cc5186944a44c2aa78501c4f350e56b4da1151348fa9fc3ece5f0eeea3a","test_id":"audit:K2-HAL-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.txt","inputs":["linuxcnc/configs/sim/axis/corexy/corexy_by_kins.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/corexy/corexy_by_kins.txt","source_sha":"d1aff6cd61f102a43415f742b66daffc61ddae6b4aac869960e9e19ee71f407c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/db_demo/README","inputs":["linuxcnc/configs/sim/axis/db_demo/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/db_demo/README","source_sha":"0933be327d05ede7bc378bbb11cc9c6e3637feb9aef747c55231a3abbb38481e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/db_demo/base.inc","inputs":["linuxcnc/configs/sim/axis/db_demo/base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/db_demo/base.inc","source_sha":"b5fec746e03cdb9827cdd877006d50fc583da3772dad6323e7d0483735254b7d","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/db_demo/base.inc","inputs":["linuxcnc/configs/sim/axis/db_demo/base.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/db_demo/base.inc","source_sha":"b5fec746e03cdb9827cdd877006d50fc583da3772dad6323e7d0483735254b7d","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/db_demo/base.ngc","inputs":["linuxcnc/configs/sim/axis/db_demo/base.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/db_demo/base.ngc","source_sha":"6621bb9237698c4c4f250f027fc4a8cdc40cf699b0c790df0b7a30b8523ec86d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/db_demo/db.py","inputs":["linuxcnc/configs/sim/axis/db_demo/db.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/db_demo/db.py","source_sha":"3a8bd9974cce96a920eb7aaef189ce479186e86989aa3a61818a3dc365d64b2a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/db_demo/db_editor.tcl","inputs":["linuxcnc/configs/sim/axis/db_demo/db_editor.tcl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/db_demo/db_editor.tcl","source_sha":"109f6867a3f8ebe2bc692db136b5caab3dd0ba42d241c00636117330f372bc59","test_id":null,"web_status":"planned"} @@ -50,87 +50,87 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/circles.ngc","inputs":["linuxcnc/configs/sim/axis/external_offsets/circles.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/circles.ngc","source_sha":"a12105e038f018279e0f3739ba93b563e305d8c85c2c23728162a2f48209d7b4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dyn_demo.ngc","inputs":["linuxcnc/configs/sim/axis/external_offsets/dyn_demo.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dyn_demo.ngc","source_sha":"f6a2a8bd69921066e7e0cd144ebace89077228b0b41f41b58e05969e5134cd1e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.halscope","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.halscope"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.halscope","source_sha":"96185d7b55de3717d7b3addc1b97c77a177fb80cdf9fbd25b73b0e8a706e111c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini","source_sha":"4889a5b4227148c706ec527dda91ae4229161f23d942f62aec122492ee8138c7","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini","source_sha":"4889a5b4227148c706ec527dda91ae4229161f23d942f62aec122492ee8138c7","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.txt","source_sha":"c37c28f53cf243d693ce593b5d40f2c9d9cb11e80d4a6d6ddbf152eb162acb59","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_es.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_es.txt","source_sha":"66e7e609ce99ccd23c1b8b20a7accb402fd5de01c8f088970cf6c223a126415a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.hal","source_sha":"5f035dca628e760920445ad6213cf9f76159cd005f9735410d6d44c4d001cd04","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.xml","inputs":["linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets_panel.xml","source_sha":"9744841d9c2faba28d98b1fe4ded012fb4790849f00327ba7c2607460cfc54a3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffset.tbl","source_sha":"91b49c1704d55440701c87cddf52dd15d503486b427caa3c93f48cf122bb81e2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.hal","source_sha":"86cce1581135bc29e68de76620db82bd3dd214498e40c84a7eecce3b685c63af","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini","source_sha":"d6002e2682da417caf66fcae6d6bee9df4c44f1f3355ef70a7f759ed57ad74f7","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini","source_sha":"d6002e2682da417caf66fcae6d6bee9df4c44f1f3355ef70a7f759ed57ad74f7","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ngc","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ngc","source_sha":"129ebb9fda2133529aaf77116a9fc2ea4e48baa554dc21eca1b0f7ae9f499cd6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.txt","source_sha":"4711c824274a883ad697befed398b264fea11c4ac8c14e7e0ff9c4e583d5a0c4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_es.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_es.txt","source_sha":"a55778b99f2b6330521caa34447a3825518ded6f3abc020a22f8be3d565c5786","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_monitor.tcl","source_sha":"3f54314446e6c36cb24b641095e66cce3ba2d59c7f4ed81b4436a3e5584c4945","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.hal","source_sha":"112144ef3cc47e0b959fd8198cba1d49b4486c4b71b34eaeacb4532fe6f075ab","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.xml","inputs":["linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/eoffsets_panel.xml","source_sha":"d67e243e375f4faef4bd25469afa19281a1372866c705f5be1b81a31f2ce8ad5","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini","source_sha":"0e48f593dc6412e59d41844b58f2b3e1ff1e1c3659d38d64f06e4bb893a0f5e5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini","source_sha":"0e48f593dc6412e59d41844b58f2b3e1ff1e1c3659d38d64f06e4bb893a0f5e5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ngc","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ngc","source_sha":"3e06d3003c425a2be73fc7bc32dca7a044062d9bcc2aa32dcd4672b42115d2b8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.txt","source_sha":"56ca1355bdcca93cf05f29ee3f0a7f6fae8acf816ad84e776bbc77f34bf66cb7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z_es.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z_es.txt","source_sha":"7c72117c0aaedccc501f8a63a21f710f5d0f5d938f8d3953028beb65fc51eacb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.hal","source_sha":"dd06779990779efdae507b7325afab5e7de4e9c9677edb16ad72d5586e62799e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.xml","inputs":["linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/jwp_z_panel.xml","source_sha":"0ab9a4c825219f15bc28adaa115c19e9d539186f14c4c06def33359fc15b7211","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa.hal","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa.hal","source_sha":"5f5858a4e58b595194bf50efc4c548209c881e51fbfed0a8102b5851d7974ea7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa.ini","source_sha":"b965264ad6d7a50a5332f8dd2f29928598fce155ec7954511cbdce549b9ff002","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa.ini","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa.ini","source_sha":"b965264ad6d7a50a5332f8dd2f29928598fce155ec7954511cbdce549b9ff002","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa.txt","source_sha":"5851a759f3fa18edaff097e946e1b05d7ca1cd6c6aeaced253eca0db957eaa99","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa_demo.ngc","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa_demo.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa_demo.ngc","source_sha":"7f387360bb5aa941b57cfbbc611c184328664aab1d03998b1dced1523a5f2c49","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa_es.txt","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa_es.txt","source_sha":"2b2d8ac4745f7f1b12163e1f194efe27fc8a52e1a0508ac2ab7ff275a75adb04","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa_panel.hal","source_sha":"d69a3256f626c2a3e8785c606682db5a530ccaca10426e2bd2440dd54a882cee","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/opa_panel.xml","inputs":["linuxcnc/configs/sim/axis/external_offsets/opa_panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/opa_panel.xml","source_sha":"ccdddbb32af471c273e62c6a533f666eac60b1b1180ac14c678b93d0b6b899e9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/external_offsets/queuebuster.ngc","inputs":["linuxcnc/configs/sim/axis/external_offsets/queuebuster.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/external_offsets/queuebuster.ngc","source_sha":"91561a89e596a36baa0bea30aa60dc7c94c1b9f58faf637a68f8514b83e393b4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini","inputs":["linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini","source_sha":"7b869a94e99c728403cb5fd38b949a1a95ab93a793e3d2b803dd85902595a0af","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal","inputs":["linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal","source_sha":"f3178060e01a28e7708fbae97eff3fd0481c7ee0ad8065e0ea05d5e77ecc18ef","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini","inputs":["linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini","source_sha":"2c3bec6dcab552b34c84e1cfba25270afe1720f7a2ebf34a9d76cba800d0d538","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini","inputs":["linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini","source_sha":"7b869a94e99c728403cb5fd38b949a1a95ab93a793e3d2b803dd85902595a0af","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal","inputs":["linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.hal","source_sha":"f3178060e01a28e7708fbae97eff3fd0481c7ee0ad8065e0ea05d5e77ecc18ef","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini","inputs":["linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini","source_sha":"2c3bec6dcab552b34c84e1cfba25270afe1720f7a2ebf34a9d76cba800d0d538","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.txt","inputs":["linuxcnc/configs/sim/axis/extrajoints/1extrajoint.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.txt","source_sha":"b4f0548fcff43e7db09b20fca6b8d99e701d785a2b4fd9e16d34ba6dfb8b3f33","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal","inputs":["linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.hal","source_sha":"52c6b0d5a067fe8de6fd612ff8e909b4263d8d2591551441c9d8d6ca2591f910","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini","inputs":["linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini","source_sha":"cc254899d06dcd870a978cf22ec832b7b6c6603022749a1602e81a8d92afa950","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini","inputs":["linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini","source_sha":"cc254899d06dcd870a978cf22ec832b7b6c6603022749a1602e81a8d92afa950","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.txt","inputs":["linuxcnc/configs/sim/axis/extrajoints/2extrajoints.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.txt","source_sha":"9f9b534dde32dc0d05f8c2109ccd6b8392c715b098088a63606872bdd863fde2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/M144","inputs":["linuxcnc/configs/sim/axis/extrajoints/M144"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/M144","source_sha":"ebc0a7498adfd24d6da12f38fbc9f748bce837d36f15cdc5306ce7f1804b7262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/README","inputs":["linuxcnc/configs/sim/axis/extrajoints/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/README","source_sha":"352972757b148bf04393a7dcf2bd03468f56ff4aa31af7a80b2a738e13de6360","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/README_es","inputs":["linuxcnc/configs/sim/axis/extrajoints/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/README_es","source_sha":"f5ae70c2afa19e85bbad7fe727daa4a1a59ff92dd6c69c589aa32386839b01b3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/extrajoints.halshow","inputs":["linuxcnc/configs/sim/axis/extrajoints/extrajoints.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/extrajoints.halshow","source_sha":"0a2bac9aad0e4a0eb8b627e2871fce85e8cf5f090855eaa53cac716c68cd5eff","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl","inputs":["linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/extrajoints/extrajoints.tcl","source_sha":"df7c53f5b2b1ddd1a4057c2fef116a585171f498f45b46a3356e543aa6e520f4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/foam/axis_foam.ini","inputs":["linuxcnc/configs/sim/axis/foam/axis_foam.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/foam/axis_foam.ini","source_sha":"a176d322e607957f554a954e2cf5e4241ff4ef1181b609990044dcc3432ff958","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/foam/axis_foam.ini","inputs":["linuxcnc/configs/sim/axis/foam/axis_foam.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/foam/axis_foam.ini","source_sha":"a176d322e607957f554a954e2cf5e4241ff4ef1181b609990044dcc3432ff958","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/foam/foam.ngc","inputs":["linuxcnc/configs/sim/axis/foam/foam.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/foam/foam.ngc","source_sha":"c7d6a91a70d2ddca70f7f6887a0fa1930541a7f6e12b13a471066f2dae31edfe","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/README","inputs":["linuxcnc/configs/sim/axis/gantry/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/README","source_sha":"b978c9cd096853c2fd56820481189756697a5bb64269c702b3126b5665bd0154","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/README_es","inputs":["linuxcnc/configs/sim/axis/gantry/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/README_es","source_sha":"e02c5f62edb0babc52eb1a36a51c8b9efb6c609ec1fdd2de1ca7461fc735a11c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry.ini","inputs":["linuxcnc/configs/sim/axis/gantry/gantry.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry.ini","source_sha":"acc7db8d6a38a64598ef277dfea3480f0e7400d461784a0fa0139bded93d5a68","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry.ini","inputs":["linuxcnc/configs/sim/axis/gantry/gantry.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry.ini","source_sha":"acc7db8d6a38a64598ef277dfea3480f0e7400d461784a0fa0139bded93d5a68","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.halscope","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_jjog.halscope"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.halscope","source_sha":"2eab0858376fe63e739054e58332c76d7891c396d4600f3f0d57326138587cd8","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini","source_sha":"da911359e075e5dbf9f129bafc389e059aa0f754bb4c0ce67b410ac63e5f91ab","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini","source_sha":"da911359e075e5dbf9f129bafc389e059aa0f754bb4c0ce67b410ac63e5f91ab","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.txt","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_jjog.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.txt","source_sha":"ce070eeed36b6a9a1e45808e741bd3f6c610a42859da65ccccd047439b3a791b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_jjog_es.txt","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_jjog_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_jjog_es.txt","source_sha":"6538599705d4b2ec1953059289af5415408b85c4a85c3bd49f849c8b5fa7bbee","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_mm.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal","source_sha":"5da3e7f6e95f26df831f046a5c7c9ed3e073579748812140a15085dd558b42b0","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_mm.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini","source_sha":"0692df9758234ff4cb29b22ee58688fe2bf450d93cc386ae096e0a943ef475e3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_mm.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_mm.hal","source_sha":"5da3e7f6e95f26df831f046a5c7c9ed3e073579748812140a15085dd558b42b0","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_mm.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini","source_sha":"0692df9758234ff4cb29b22ee58688fe2bf450d93cc386ae096e0a943ef475e3","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_mm.tbl","source_sha":"31b1630233a2e84cf28df5833d29215234c67cbc227964f8f763310169a25841","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_panel.hal","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_panel.hal","source_sha":"07ba97e4e2f284312901351c27e162566b71643dfb68f559b0d83c751cfc8a6f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gantry/gantry_panel.xml","inputs":["linuxcnc/configs/sim/axis/gantry/gantry_panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gantry/gantry_panel.xml","source_sha":"43411a6517eab3695592d248dac59ab371061305e3a1b27894f96eb67718de00","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/M110","inputs":["linuxcnc/configs/sim/axis/geometry/M110"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/M110","source_sha":"9711588d2d01c112154fb4e2af467641faf4313ecdc26770b68d73c01698981e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/README","inputs":["linuxcnc/configs/sim/axis/geometry/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/README","source_sha":"ef7d81dfe6ac4d28b8a940f9e35c654611b2dae7bf3482d4a9a0bb20e6e80549","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/README_es","inputs":["linuxcnc/configs/sim/axis/geometry/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/README_es","source_sha":"0c3c6eeac718719b5d43cfb0507b4882712ce20cef67315f7937df023607ac2c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/xyzc.ini","inputs":["linuxcnc/configs/sim/axis/geometry/xyzc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/xyzc.ini","source_sha":"cafbb5d4c275be232cadb1c4b11d84b2791e8c5544c20f84a7eed3b5ed8bab1e","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/xyzc.ini","inputs":["linuxcnc/configs/sim/axis/geometry/xyzc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/xyzc.ini","source_sha":"cafbb5d4c275be232cadb1c4b11d84b2791e8c5544c20f84a7eed3b5ed8bab1e","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/xyzc.ngc","inputs":["linuxcnc/configs/sim/axis/geometry/xyzc.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/xyzc.ngc","source_sha":"dbbfb2afdceaa55691248b8d211c63e19c901e82ca2464fdaa146966569bfacd","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini","inputs":["linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini","source_sha":"77aba40722c7a481aad66e3bf05b3fe283965b01d6444c1abc78841c6154363a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini","inputs":["linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini","source_sha":"77aba40722c7a481aad66e3bf05b3fe283965b01d6444c1abc78841c6154363a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/.gitignore","inputs":["linuxcnc/configs/sim/axis/gladevcp/.gitignore"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/.gitignore","source_sha":"74d8dd4a0a19af69009af628089c73d3d9f9802697135d3edf71d3525d56f391","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/README","inputs":["linuxcnc/configs/sim/axis/gladevcp/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/README","source_sha":"b4b5524ca257f85e33be8c033fa6db47a4e32e469150e4a7fd8a914f553ca732","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/README_es","inputs":["linuxcnc/configs/sim/axis/gladevcp/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/README_es","source_sha":"d71c9d41de7e2cccd05ed61f94bbc5a03edf67d6b83076356ecc5d99fb9c1c53","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini","source_sha":"c216752c2f032d47fe3910f6b66ac6375c8cb1201b6393b2f01b9c978f0708e6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini","source_sha":"e8e88a97002d008d234d664d6f14e866b39c89fc09d2d392fffb80367cb6ed68","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini","source_sha":"c216752c2f032d47fe3910f6b66ac6375c8cb1201b6393b2f01b9c978f0708e6","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini","source_sha":"e8e88a97002d008d234d664d6f14e866b39c89fc09d2d392fffb80367cb6ed68","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.txt","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.txt","source_sha":"dfbfda5e058b38a1efaea9bad1d0bbdeb678b5ffb023520b4b973467cd5d5586","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini","source_sha":"bdbad54582ad4f4cb304bf5c33ea3d45dc7b88a21445cc12737d5fc245624890","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini","source_sha":"bdbad54582ad4f4cb304bf5c33ea3d45dc7b88a21445cc12737d5fc245624890","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/hitcounter.py","inputs":["linuxcnc/configs/sim/axis/gladevcp/hitcounter.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/hitcounter.py","source_sha":"0c845c646e72f859621081e2d2ce43232270f166e615014fb8610bbc77b9e988","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/manual-example.hal","inputs":["linuxcnc/configs/sim/axis/gladevcp/manual-example.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/manual-example.hal","source_sha":"0aa986efa4fb0271c714e5427ff2f87b18fbb968b7ffe73f0927f5db2a1e0c98","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/manual-example.ui","inputs":["linuxcnc/configs/sim/axis/gladevcp/manual-example.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/manual-example.ui","source_sha":"15b9305090ef22db63899c58624c36900523d1c7d531a0e4bbf641ad0d7ebc3d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/meter_scale.py","inputs":["linuxcnc/configs/sim/axis/gladevcp/meter_scale.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/meter_scale.py","source_sha":"db5cc6a5ffdbde90425057a9eb57ade0a83ddbbd11772b2e7fd890eabee937bf","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/meter_scale.ui","inputs":["linuxcnc/configs/sim/axis/gladevcp/meter_scale.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/meter_scale.ui","source_sha":"277bc946b89e11c4f2c805e27e72c041b1b094590c3c5a02637213fdac1af381","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.hal","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.hal","source_sha":"bedf91ea354f02d015417e851fec2d539c06543fc13ba03b89985477fc550d77","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.ini","source_sha":"66b8ba2d3c6c21409a6686923540058c85fcd5632ffb9827315a5b0f518c5ec9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.ini","source_sha":"66b8ba2d3c6c21409a6686923540058c85fcd5632ffb9827315a5b0f518c5ec9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.ngc","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.ngc","source_sha":"baf4540122b5f27455cf4eef4870435c4e9ee4aa7f14fec040a7ddd478c10a83","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.py","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.py","source_sha":"8d99fbc82f50522e41e0ce4296ad03836fa510835e0a1aa6291cbb790d4a821b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.txt","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.txt","source_sha":"d2af30f2ff6c678cdacc1e99feb33be5415554cbea1c5bf37879d1f9433bf081","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe.ui","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe.ui","source_sha":"bf4ae270c307a3f6ca3a8f3693777dd54559d685f132328b5e5254e1f7afba47","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe_es.txt","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe_es.txt","source_sha":"e831d8cc21d673ec5a539f3cc4a34590d9f5cf6b3fa3195e416bddf4dbbf252d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh","inputs":["linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/probe_gui.sh","source_sha":"1e548a7bf3dd4404275b389ca7e9ec7f8d67d7c6ce7c6364d03be0f19b8e253b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini","source_sha":"651f25fd7656f739c2ae57f033183ba82fecb07b29c0b8b908608ce4d21ab6f5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini","inputs":["linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini","source_sha":"651f25fd7656f739c2ae57f033183ba82fecb07b29c0b8b908608ce4d21ab6f5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh","inputs":["linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.sh","source_sha":"622bf7ea0569ddf0053deb9e51e15eb4eb411349ef45965905105f9741441df6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.txt","inputs":["linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.txt","source_sha":"f38a529e605376371b2ca3d92feedd6335824b3a1625dfa102d22e3ae7a50ca2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini_es.txt","inputs":["linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini_es.txt","source_sha":"f8f420f9dcfdbd1a65eea91567ba67d78d6d606b02e4614a116d38aba759338c","test_id":null,"web_status":"planned"} @@ -139,15 +139,15 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/gladevcp/test_handler.py","inputs":["linuxcnc/configs/sim/axis/gladevcp/test_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/gladevcp/test_handler.py","source_sha":"ec297a728b674b1e2b3a78208bed81b9290c52d5c2d5f240f45ec7b217576356","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/README","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/README","source_sha":"256afe42bdd1fe418a8754f99dbb14b827555f7b5318d7d9a5e2e4c3749f5a07","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/README_es","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/README_es","source_sha":"1f4265b0aba61069a0f2ebdef98a4d66c9a9fd8fa48a02ceee0e11bce0425c90","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini","source_sha":"b74f150915d006fe9ecd14ea0bcb231b7e04d1d44649020de7e0324f1782d3f5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini","source_sha":"b74f150915d006fe9ecd14ea0bcb231b7e04d1d44649020de7e0324f1782d3f5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/pyvcp.hal","source_sha":"b6ff1c5dfa01aca29d61711e95dedc070978a5b37afe7cbfeba5a2be579e958d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/sim.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml","inputs":["linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/halui_pyvcp/vcp.xml","source_sha":"b5c30ea76549bfaf3b498fa1385573a031027dbef54dd38a7b5df24ee03de887","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/histogram_demo.ini","inputs":["linuxcnc/configs/sim/axis/histogram_demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/histogram_demo.ini","source_sha":"3eabc315db8e9e21951438ebd95fc5f30cf9b0d5ecb5277e66138f3ccdbdc7f8","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/histogram_demo.ini","inputs":["linuxcnc/configs/sim/axis/histogram_demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/histogram_demo.ini","source_sha":"3eabc315db8e9e21951438ebd95fc5f30cf9b0d5ecb5277e66138f3ccdbdc7f8","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/histogram_demo.txt","inputs":["linuxcnc/configs/sim/axis/histogram_demo.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/histogram_demo.txt","source_sha":"9c4c82ab00ce6d7bae29f52327aa7e4ce582b8d2e1e1133946b6e901d90217ff","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/histogram_demo_es.txt","inputs":["linuxcnc/configs/sim/axis/histogram_demo_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/histogram_demo_es.txt","source_sha":"8222032e9ebae847b7ab84a80a8385323e086b0b3bfc8288f1debda7853dd5ce","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/historical_lathe.ini","inputs":["linuxcnc/configs/sim/axis/historical_lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/historical_lathe.ini","source_sha":"62809856093198b7a584553d71633a5b40210a059223277d2d3e640563e2de68","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_hal_demo.ini","inputs":["linuxcnc/configs/sim/axis/ini_hal_demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_hal_demo.ini","source_sha":"9abb6d63c35d14d440366d822283521c9169a89fc36d4685c4597fa77fab2879","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/historical_lathe.ini","inputs":["linuxcnc/configs/sim/axis/historical_lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/historical_lathe.ini","source_sha":"62809856093198b7a584553d71633a5b40210a059223277d2d3e640563e2de68","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_hal_demo.ini","inputs":["linuxcnc/configs/sim/axis/ini_hal_demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_hal_demo.ini","source_sha":"9abb6d63c35d14d440366d822283521c9169a89fc36d4685c4597fa77fab2879","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_hal_demo.txt","inputs":["linuxcnc/configs/sim/axis/ini_hal_demo.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_hal_demo.txt","source_sha":"7bc8a16869c4edd5a27e7f3808d1c05d529bf68785b39bcdb07958395739faa0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_hal_demo_es.txt","inputs":["linuxcnc/configs/sim/axis/ini_hal_demo_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_hal_demo_es.txt","source_sha":"79bba09c1b17e143368f4988727e144f747e255a889422d796143cf343f4ed08","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/.gitignore","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/.gitignore"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/.gitignore","source_sha":"378fb7c9b7b8b4f40d9d9a1d4d4bb2c481f2054d8ef39b65b45107a7ebdc6989","test_id":null,"web_status":"planned"} @@ -166,23 +166,23 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/joint_0.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/joint_0.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/joint_0.inc","source_sha":"529c9644c0eba316f2d90328bdfbd628d89d3886af1a50f16540bb411062f823","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/joint_1.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/joint_1.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/joint_1.inc","source_sha":"b36ea4772971299936eafc6b464cbc6e73bc65932f1bf143bb9cd4c91d061b3e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/joint_2.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/joint_2.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/joint_2.inc","source_sha":"739aae6dd6a9c15807c173761cb61f49f46ce09fa9c56c9bf907534b078de36a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/kins.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc","source_sha":"53ad06617ca4627149891a60dac4a7fcddceab9138345ffa6f322e295aad87c9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/kins.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc","source_sha":"53ad06617ca4627149891a60dac4a7fcddceab9138345ffa6f322e295aad87c9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/rs274ngc.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/rs274ngc.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/rs274ngc.inc","source_sha":"83e37dd43e22aed7294dba7872be87cd489e459c06b875ee6a7b2c604bbb2ad2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/sim.tbl","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/task.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/task.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/task.inc","source_sha":"690571977c5a8dad59c162bca8087ebeb6673b91944d63ea6dc863ea1ce22a3a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ini_with_includes/traj.inc","inputs":["linuxcnc/configs/sim/axis/ini_with_includes/traj.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ini_with_includes/traj.inc","source_sha":"c8c4ad2f69b2ebe6da2313618800a9d87daf17a88216386fb4ab2d8e3ff29f18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/README","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/README","source_sha":"463a271bc4b304d2303338ba3852eac5ce5c9832ac82de41fd3d155775c46515","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/README_es","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/README_es","source_sha":"195f267270438c75eefd90bddbc0a1363c965a861531fe722e652c5301ae7e7d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini","source_sha":"9e23e1329c3dcd721f6b65f001b77dbd90e88d19b374545c250c49a88442deff","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini","source_sha":"9e23e1329c3dcd721f6b65f001b77dbd90e88d19b374545c250c49a88442deff","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/axis_owordsub_manualtoolchange.hal","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/axis_owordsub_manualtoolchange.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/axis_owordsub_manualtoolchange.hal","source_sha":"6d64c962e18f53e32f12365d360331474627ed4506debc03dc01128a72092722","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini","source_sha":"334ca534c3eafac4022c5895431515f8f05bbd2a1f150ae09e53b88938b2fd1a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini","source_sha":"c91c56594fb99934a677786e7f8b6b90299cb29f4d8b3be3e85fe9a957579a69","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini","source_sha":"334ca534c3eafac4022c5895431515f8f05bbd2a1f150ae09e53b88938b2fd1a","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini","source_sha":"c91c56594fb99934a677786e7f8b6b90299cb29f4d8b3be3e85fe9a957579a69","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/nstools.tbl","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/nstools.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/nstools.tbl","source_sha":"0a178a651096dcfad5c5069ff5ff9505ae283d75bdde4949227fbcccc83ad72e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/on_abort.ngc","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/on_abort.ngc","source_sha":"780bbd3e8ff6e2d89bcf25c97e1e6f6e56400d88f76fbdd71947d5e4902e6570","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/osubdemo-ns.ui","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/osubdemo-ns.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/osubdemo-ns.ui","source_sha":"70199dfe0cedd15d90da11292240fe423bce2627f68bcfc4e935cfcb8d3f27f7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/osubdemo.ui","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/osubdemo.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/osubdemo.ui","source_sha":"6098716e3e1075f90dc5f650273aeef88d479f13badaa6af3a0aab887dd4e325","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini","source_sha":"1b4cdcba969b9494cc5137d602a9a9c216d158f89e3279cff6a41a035b0f9961","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini","source_sha":"b8de1b4257ef8b8eded585e02e36e3ee6caedad53b3f18f45f94bc9cc0b12b2b","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini","source_sha":"1b4cdcba969b9494cc5137d602a9a9c216d158f89e3279cff6a41a035b0f9961","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini","source_sha":"b8de1b4257ef8b8eded585e02e36e3ee6caedad53b3f18f45f94bc9cc0b12b2b","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.tbl","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm.tbl","source_sha":"1816cbb02cc6585d86676bb2d88f85b10b439cf42212e0b4c144f3846a3dcf30","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm_test.tbl","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/sim_mm_test.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/sim_mm_test.tbl","source_sha":"6338d86b79d65f2c12636bb8c2813c5b46807a15239a7085f50e6d985f6b5a14","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/t3.ngc","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/t3.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/t3.ngc","source_sha":"0ee48cf15298d22a6ae13dacc4dcffe91e09a368d329eb1f69a7ccda606e0064","test_id":null,"web_status":"planned"} @@ -193,10 +193,10 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal","inputs":["linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/iocontrolv2/v2_oword_gladevcp_postgui.hal","source_sha":"c9ffdf7c0f5022c217a3b9bb4a57970fff08cde6da8dd26d335cff75161f18e4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/README","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/README","source_sha":"f54429dcd936aed0f8a509954f0c204bbc534c95c72dbb9a24b88e93fcb7e001","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/README_es","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/README_es","source_sha":"e35bac0d5f7aa6b7a503495d0c951a91db6259f75f9573a161fbb3712596d67e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini","source_sha":"466833eb371da18428abeac86d759fe36ed5bff73b60a51c10e5303e39c86316","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini","source_sha":"466833eb371da18428abeac86d759fe36ed5bff73b60a51c10e5303e39c86316","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.hal","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.hal","source_sha":"4d3ec3d21307a37787e4e83cce7b390a0a067411ca90045cac9b3648eca5f639","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.halshow","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.halshow","source_sha":"62da795405f3ae80c333825429a2cf9f8edcbe07d598a932c6ec54a3a3219f7b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini","source_sha":"796eacff0e56b2a65d9367836f8c9a17c7f967ae467bc1077503c18f57d362db","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini","source_sha":"796eacff0e56b2a65d9367836f8c9a17c7f967ae467bc1077503c18f57d362db","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/README","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/README","source_sha":"59b757500db10db57141cb282a865d304db2d410da84a91736663ea90aaeddc5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/README_es","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/README_es","source_sha":"40036cf01ce8c8362178ce14639df8d89106343d881fe5a943385c18b73f1be5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xhc-hb04-postgui.hal","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xhc-hb04-postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xhc-hb04-postgui.hal","source_sha":"aa4bc67961c448629d6417341eb67c7ad9b0540f4640df23a1283034f221e305","test_id":null,"web_status":"planned"} @@ -204,17 +204,17 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx-xhc-hb04.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx-xhc-hb04.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx-xhc-hb04.ini","source_sha":"565d8d65dda4aa26a14c7ae641a81d7c5a0bc311ab308e63bdbebcf910aacdb9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.halshow","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.halshow","source_sha":"1425d840514516c357404100a1583a34729615f54f301ce1b462cefd47f3bcc2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx.ini","source_sha":"6888dfaee112f61d521e0f3cc3af5603863303e24e8e60c80a76b04f88127087","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc","source_sha":"cdf8d4f7701db245b1e532c3815b35cdf2cb0629bf34e46ddb731613f3d972dd","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc","source_sha":"cdf8d4f7701db245b1e532c3815b35cdf2cb0629bf34e46ddb731613f3d972dd","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_jog.hal","inputs":["linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_jog.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_jog.hal","source_sha":"ff61f1508051b3915738780548ab798cd4006913081e35cba64c4937db8d249b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/README","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/README","source_sha":"579035c54a6d466ff19d952f22ef6face2695e818a4adfdd5cd3513186e970a3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/README_es","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/README_es","source_sha":"69ee6470745fba26126d0d5858774c0a46d9b2e7d214121637c92bbfe27e19d3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini","source_sha":"07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini","source_sha":"07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.tbl","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.tbl","source_sha":"06fd24c26897d06c7c5b65cc81911a1854118900f791c692600ceeaa61d2026e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini","source_sha":"d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini","source_sha":"d94eae8d51a00027f75ff45b84f14e2721de466c4be1af3a5e15d7beeec58ac3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini","source_sha":"d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini","source_sha":"d94eae8d51a00027f75ff45b84f14e2721de466c4be1af3a5e15d7beeec58ac3","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ja_tests/xz/xzbase.inc","inputs":["linuxcnc/configs/sim/axis/ja_tests/xz/xzbase.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ja_tests/xz/xzbase.inc","source_sha":"fad0387bf37907ad3f541b0dca1893c0c0ee3d7154571624abb5e5763ec8dc07","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/laser.hal","inputs":["linuxcnc/configs/sim/axis/laser/laser.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/laser.hal","source_sha":"c502c7d5a4c6ebc47fbde09683d0830b5044b6fca8422c92efebf6b25172d570","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/laser.ini","inputs":["linuxcnc/configs/sim/axis/laser/laser.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/laser.ini","source_sha":"343fcbd64cde1f191b3f9835b56bc8ad4ee244cf1eca824b7c7ec07305a260bd","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/laser.ini","inputs":["linuxcnc/configs/sim/axis/laser/laser.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/laser.ini","source_sha":"343fcbd64cde1f191b3f9835b56bc8ad4ee244cf1eca824b7c7ec07305a260bd","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/postgui.hal","inputs":["linuxcnc/configs/sim/axis/laser/postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/postgui.hal","source_sha":"b7281b5fb25425c41ed60e509638832f2fdc2065497b800af3537160f6af630f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/python/remap.py","inputs":["linuxcnc/configs/sim/axis/laser/python/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/python/remap.py","source_sha":"0b8313f0a0af6f951ace2243b342009a4bab6dd912bb0840d21216fa4a7e4c03","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/python/toplevel.py","inputs":["linuxcnc/configs/sim/axis/laser/python/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/python/toplevel.py","source_sha":"74cca5ca6b6161e38ba600482bfbd295670ef0b4e2fdd627fd4d35649f43ac8d","test_id":null,"web_status":"planned"} @@ -224,27 +224,27 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/laser/vector_test2.ngc","inputs":["linuxcnc/configs/sim/axis/laser/vector_test2.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/laser/vector_test2.ngc","source_sha":"c0a49a43f265fc05e5ae08aa39adc4dfcf30b60a0bccb6926a9552c94a06c09b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/README","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/README","source_sha":"94edad7441ddb12176f66c0b4a10f112bb04369bdda26ab99b552d7e7cbdbe19","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/README_es","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/README_es","source_sha":"5f2aa51589604d3671470e13404765ac4c2ed6b7115097e5b34fa4311e2a1093","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini","source_sha":"be3724c6093b9d507e40d41ef1f5047c3244e8a95acba3aaa72176e15752675c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini","source_sha":"be3724c6093b9d507e40d41ef1f5047c3244e8a95acba3aaa72176e15752675c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.tbl","source_sha":"c2bbe843627abe1fac88d91c92c67d34befa62fb80ae043cbc3d045bcd33caa3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/remap.py","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/remap.py","source_sha":"35e925376904264fc83dfb496f9c092b0d01fbba1bd929a98bc031fb1082fb00","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/toolchange.ngc","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/toolchange.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/toolchange.ngc","source_sha":"fc53aa19cfce82b6b8c00c4844c5c50b0f56bc2abd012d398c6076e58d48315b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe-fanucy/toplevel.py","inputs":["linuxcnc/configs/sim/axis/lathe-fanucy/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe-fanucy/toplevel.py","source_sha":"38a0a17d08adcdc6891df688ae7454c8376f3be0a4c98f49bb19c3588301347b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe.ini","inputs":["linuxcnc/configs/sim/axis/lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe.ini","source_sha":"e1ce3667979cf2ea4813aa492c2061727d3f02a4d9592db0e4889f4fa53a6447","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe.ini","inputs":["linuxcnc/configs/sim/axis/lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe.ini","source_sha":"e1ce3667979cf2ea4813aa492c2061727d3f02a4d9592db0e4889f4fa53a6447","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe.tbl","inputs":["linuxcnc/configs/sim/axis/lathe.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe.tbl","source_sha":"9b1499a1bc08d24890618ba4ed07ce58aa5a2239a3f5d55d593948e3ee5ce504","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe.xml","inputs":["linuxcnc/configs/sim/axis/lathe.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe.xml","source_sha":"189f7d67e234e5b3dd21e1a385a5b048a4e73904776ebb7dd0c5555f93fce551","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/README","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/README","source_sha":"8e0c6d33af102e90458d40a86839e1b42c6e6f8876c6d5cf8fb4f14ed6ce0d8c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/README_es","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/README_es","source_sha":"927adcbbc9d655f0c61d4fe1f8070b492df81280cd28b51361e52bdb1c3381df","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal","source_sha":"32e9e69f445aa430e11d2622c89e27991becd3c8dd7f4ef043b5b6e28fbbce98","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/core_sim.hal","source_sha":"32e9e69f445aa430e11d2622c89e27991becd3c8dd7f4ef043b5b6e28fbbce98","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.hal","source_sha":"b6b86016ad9e2b2f752a21ae5b0dac8ac7e1032deca1b464b38f8fe1887c15bd","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini","source_sha":"fb2dbd47226cf39cc2149850e44d22324c6d6af886e1a2a0d43fa8d9ff36efe6","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini","source_sha":"fb2dbd47226cf39cc2149850e44d22324c6d6af886e1a2a0d43fa8d9ff36efe6","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.xml","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/lathe.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.xml","source_sha":"ec0efd8608fe3b6cf76e63ab90a917af8c086a6c41e9347de12132dec35af5fb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal","inputs":["linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe_postgui.hal","source_sha":"8e298396c54c93faaf6fa15a725d29971ff31a9e573c4f0dad468bf9890014ac","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/lathe_postgui.hal","inputs":["linuxcnc/configs/sim/axis/lathe_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/lathe_postgui.hal","source_sha":"30c0d12fda35403a828667bf2540163b4a30029c7bbe13160fccaa1392fe25d1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ldelta.ini","inputs":["linuxcnc/configs/sim/axis/ldelta.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ldelta.ini","source_sha":"1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ldelta_demo.ini","inputs":["linuxcnc/configs/sim/axis/ldelta_demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ldelta_demo.ini","source_sha":"ab0645308abe903bf66f36a328b43303aa0e8ad2d19e69a45e2703d665956439","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ldelta.ini","inputs":["linuxcnc/configs/sim/axis/ldelta.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ldelta.ini","source_sha":"1567138c3d54b4d9712b5031f6a0b060edadd8d1442d1eff8d93c2beefbb5e0c","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ldelta_demo.ini","inputs":["linuxcnc/configs/sim/axis/ldelta_demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ldelta_demo.ini","source_sha":"ab0645308abe903bf66f36a328b43303aa0e8ad2d19e69a45e2703d665956439","test_id":"audit:K4-DELTA-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ldelta_demo.txt","inputs":["linuxcnc/configs/sim/axis/ldelta_demo.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ldelta_demo.txt","source_sha":"6002dde1f8b0381543315539266d8f6beef87595844a67ba92c7a33f8e27681a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ldelta_demo_es.txt","inputs":["linuxcnc/configs/sim/axis/ldelta_demo_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ldelta_demo_es.txt","source_sha":"a5490838177e2f5ee59f9454449c960cce820fa381940c52f86efc50e2575edf","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/minimal_xyz.ini","inputs":["linuxcnc/configs/sim/axis/minimal_xyz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/minimal_xyz.ini","source_sha":"63923bfb90f4aba843cb89f8dccc34732d803e2bfd5598ed23a2ba22f360d00a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/minimal_xyz.ini","inputs":["linuxcnc/configs/sim/axis/minimal_xyz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/minimal_xyz.ini","source_sha":"63923bfb90f4aba843cb89f8dccc34732d803e2bfd5598ed23a2ba22f360d00a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/1_onpause_local.ini","inputs":["linuxcnc/configs/sim/axis/moveoff/1_onpause_local.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/1_onpause_local.ini","source_sha":"d773e556b4692d60fe55b68d92a02ee69ba1dd128ef3ae4936327fc0f4451761","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/1_onpause_local.txt","inputs":["linuxcnc/configs/sim/axis/moveoff/1_onpause_local.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/1_onpause_local.txt","source_sha":"93dce18a58053f9982844b54362c9420de9ee80b7b26bb520adcbfc7f101952c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/1_onpause_local_es.txt","inputs":["linuxcnc/configs/sim/axis/moveoff/1_onpause_local_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/1_onpause_local_es.txt","source_sha":"75573d201a63017d1c828d5b3318aeaa1847c1721de74bf33da97472477699eb","test_id":null,"web_status":"planned"} @@ -274,7 +274,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff.hal","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff.hal","source_sha":"ad2bc7a1973d1ed56c16f25d9e60688219441b1fe2ad54835fca2aebd00bc93d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff.halscope","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff.halscope"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff.halscope","source_sha":"798014c8016d6b85c764ce518d6cf3647d1f04a7d62f70d2dbbd5fa2bf65249a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff.halshow","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff.halshow","source_sha":"26ed49719b1bad602df7d40e7f8be26b16c224db8c77de1b5f5aa6127c7555bd","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc","source_sha":"167fec587e59ae5503db74dfca9b71b3a78700bc77fbaef097fda81cc8cde87e","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc","source_sha":"167fec587e59ae5503db74dfca9b71b3a78700bc77fbaef097fda81cc8cde87e","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff_display.inc","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff_display.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff_display.inc","source_sha":"236a2332a5f2e17344eeac4fd71bcdf1c03fc496eabfb9fac9293c29d84c36e7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff_display_6.hal","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff_display_6.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff_display_6.hal","source_sha":"1cb1d352b86c5ffc1bcf317a3d7044493e55492095018811b08d8f79222ef1fd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/moveoff/moveoff_display_6.inc","inputs":["linuxcnc/configs/sim/axis/moveoff/moveoff_display_6.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/moveoff/moveoff_display_6.inc","source_sha":"fa242bd4402f5e142a51fb0c2e44b2bca02505a612c09d9a77ce5865339fabf7","test_id":null,"web_status":"planned"} @@ -294,19 +294,19 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/fullscreen.py","inputs":["linuxcnc/configs/sim/axis/ngcgui/fullscreen.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/fullscreen.py","source_sha":"ca8c767e10b50fe4c7909a62870ae264af6875b9c296dc16716e65492b9d3c16","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/gremlin_view.ui","inputs":["linuxcnc/configs/sim/axis/ngcgui/gremlin_view.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/gremlin_view.ui","source_sha":"e1fe2cbb71145031e8c31059fedefedc8097f67954adb3ed881f240faed1a8c6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/lathe.tbl","inputs":["linuxcnc/configs/sim/axis/ngcgui/lathe.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/lathe.tbl","source_sha":"9b1499a1bc08d24890618ba4ed07ce58aa5a2239a3f5d55d593948e3ee5ce504","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini","source_sha":"a461d37954c2e621505a4f8b6387c00a37489236ccf8522370e3076ddca33b00","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini","source_sha":"a461d37954c2e621505a4f8b6387c00a37489236ccf8522370e3076ddca33b00","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.txt","source_sha":"7f7b687682c26914d76595f6afc871b99357453371d0a13dca7186b59a8afc53","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_es.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_es.txt","source_sha":"a330beaca5d4bc7acc58cbce34b3e00744e455c182f446255e55e57508b734c1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini","source_sha":"a4cb71679b44afeb5734f8f07d1e2f63332faff54bfd7f9bfd4abfe706a651fe","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini","source_sha":"a4cb71679b44afeb5734f8f07d1e2f63332faff54bfd7f9bfd4abfe706a651fe","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.txt","source_sha":"2de22e2c5e09c73909dfc12ef3dccdae6e42253732801e57772cb178eb144666","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc_es.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc_es.txt","source_sha":"14ca406621d6e20cea0899b4bbe54542994d6f9d9c94debe550a6167e168a6a4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini","source_sha":"ec11d67522375c3cd1afbb76b5f12cbe6e5e9e51b430697f54b0e7088639db5a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini","source_sha":"ec11d67522375c3cd1afbb76b5f12cbe6e5e9e51b430697f54b0e7088639db5a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.txt","source_sha":"64ab739b2de5a6d47e203debc5c8742d8793aac3a4f1c069645b8db7150ea70b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe_es.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe_es.txt","source_sha":"4b87f5a5e22a95a86d52204d2831412ec68faa765248fe71ffa0a098b64b8344","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini","source_sha":"ec42c49461f66a395154b09e18d94674a17e8a7249791c5adf33b85ea6a19640","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini","source_sha":"ec42c49461f66a395154b09e18d94674a17e8a7249791c5adf33b85ea6a19640","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.txt","source_sha":"c578f26e0852be78d5d2c9d4a27aabd94a196557c14eb3a55f64734db860a277","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple_es.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple_es.txt","source_sha":"7af5c082e9c8e63ccac0b4408699cf905e087af5a8e74f3866babe9d2c488d3f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini","source_sha":"71f8ed201b46c4642e3f7d787065940e5d29b31452a5802056ede460cecd9f52","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini","inputs":["linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini","source_sha":"71f8ed201b46c4642e3f7d787065940e5d29b31452a5802056ede460cecd9f52","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.txt","source_sha":"5b8e17397afe77d8f4a443bec4b1a2c1eb36361a46e69287bdadcaad9c9146fb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui","inputs":["linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ui","source_sha":"caf0bd57d59f689e73936113308e295ebd46a2d1c29630d8ef2c6b6edd764382","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis_es.txt","inputs":["linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis_es.txt","source_sha":"bf22debc90e27b4d726ebbc556b87bbf956ef1bc8fedbe0b5a3a5b05a7d28fad","test_id":null,"web_status":"planned"} @@ -314,15 +314,15 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/ngcgui/sim.tbl","inputs":["linuxcnc/configs/sim/axis/ngcgui/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/ngcgui/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/README","inputs":["linuxcnc/configs/sim/axis/orphans/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/README","source_sha":"c9226b27ea2864ba033aa7c2eb1ce0c9a1021918526f8c3e19f30e9e65b71ec4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/README_es","inputs":["linuxcnc/configs/sim/axis/orphans/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/README_es","source_sha":"222f7af0b0dd2cc988fb7f0d112247153b74fab5af09d3529f8e5adc98dfdcdf","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/acc_test.ini","inputs":["linuxcnc/configs/sim/axis/orphans/acc_test.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/acc_test.ini","source_sha":"8a47360f16911553f9d1a046486ae507e1ee26f314f7ff37b250d5dca420c24a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini","inputs":["linuxcnc/configs/sim/axis/orphans/axis_noio.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini","source_sha":"1358837965ce189bb445b1d75d7d4688fb9353ec02a9f3dae53fd3601a9943cc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal","inputs":["linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal","source_sha":"81b8e576e4dcf0f630d67dcbbc4e242a1d746ae89b028d488e6484471f8eb973","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal","inputs":["linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal","source_sha":"24f58669c4127fd453e8608b3c20726c71dabccdbe0f1d92bd7ed836efc605eb","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal","inputs":["linuxcnc/configs/sim/axis/orphans/core_sim_test.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal","source_sha":"b0ace08ef7d3cc047f87a30054835d09718420d00d566f88bf3beb1aa7fba866","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/acc_test.ini","inputs":["linuxcnc/configs/sim/axis/orphans/acc_test.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/acc_test.ini","source_sha":"8a47360f16911553f9d1a046486ae507e1ee26f314f7ff37b250d5dca420c24a","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini","inputs":["linuxcnc/configs/sim/axis/orphans/axis_noio.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini","source_sha":"1358837965ce189bb445b1d75d7d4688fb9353ec02a9f3dae53fd3601a9943cc","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal","inputs":["linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/core_sim_noio.hal","source_sha":"81b8e576e4dcf0f630d67dcbbc4e242a1d746ae89b028d488e6484471f8eb973","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal","inputs":["linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/core_sim_noiocontrol.hal","source_sha":"24f58669c4127fd453e8608b3c20726c71dabccdbe0f1d92bd7ed836efc605eb","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal","inputs":["linuxcnc/configs/sim/axis/orphans/core_sim_test.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/core_sim_test.hal","source_sha":"b0ace08ef7d3cc047f87a30054835d09718420d00d566f88bf3beb1aa7fba866","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/gladevcp_postgui.hal","inputs":["linuxcnc/configs/sim/axis/orphans/gladevcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/gladevcp_postgui.hal","source_sha":"d5d29c519cb5429e20cd4ef436b7c735803a186dc0da303812d6334e4ebff1c3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal","source_sha":"b10a640ea2d1ddfd5c16c741a57d6592dc2752dea4450ec8adaaab0811686062","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal","source_sha":"b10a640ea2d1ddfd5c16c741a57d6592dc2752dea4450ec8adaaab0811686062","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/gladevcp.hal","source_sha":"b5a819ab3a80c73e2bd6b358519f0618afb9f244ec5881a83030ec3ff5a95e5c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini","source_sha":"6777d316581462ba253cec0f5e72ff148d7539bdd21b5e268c3e8da2455a7f31","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini","source_sha":"6777d316581462ba253cec0f5e72ff148d7539bdd21b5e268c3e8da2455a7f31","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/nc_files/tcdemo.ngc","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/nc_files/tcdemo.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/nc_files/tcdemo.ngc","source_sha":"89d4b19324ca5e73c91cd68b536f62b8f4b89bd690f2ba60057855cb69bf9a0c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/no-iotask.nml","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/no-iotask.nml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/no-iotask.nml","source_sha":"1c836a55b0e95a7223befecc9a8324405b4b4be4a051818c26bb240c1bb1c4d3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/python/customtask.py","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/python/customtask.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/python/customtask.py","source_sha":"a8ff6908a9656c7af672eec7a7b1bf7735699745f496f05d96e95ef058af2f49","test_id":null,"web_status":"planned"} @@ -341,7 +341,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/tooltable.sql","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/tooltable.sql"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/tooltable.sql","source_sha":"7fc97ba653f48a3094a34ab0cf28374701cc6f2d2c3550175add159f8af7e422","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/tooltable.sqlite","inputs":["linuxcnc/configs/sim/axis/orphans/iocontrol-removed/tooltable.sqlite"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/tooltable.sqlite","source_sha":"656a726d127a35f71de6e24b5f75c100737ca4ed33f4773c5d5efbb77f436260","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/iov2.hal","inputs":["linuxcnc/configs/sim/axis/orphans/iov2.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/iov2.hal","source_sha":"30f548a4a2bca7ccaaf0e393ca405d943218a4fc0674239dc67b61d8d38c12a6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/medium.ini","inputs":["linuxcnc/configs/sim/axis/orphans/medium.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/medium.ini","source_sha":"258bcd736539fa2d47af1d2c99dd748a2803f8b065c1ef0171e5a98cdbbbb0a6","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/medium.ini","inputs":["linuxcnc/configs/sim/axis/orphans/medium.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/medium.ini","source_sha":"258bcd736539fa2d47af1d2c99dd748a2803f8b065c1ef0171e5a98cdbbbb0a6","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/no-iotask.nml","inputs":["linuxcnc/configs/sim/axis/orphans/no-iotask.nml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/no-iotask.nml","source_sha":"1c836a55b0e95a7223befecc9a8324405b4b4be4a051818c26bb240c1bb1c4d3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/py.ini.notworking","inputs":["linuxcnc/configs/sim/axis/orphans/py.ini.notworking"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/py.ini.notworking","source_sha":"3d38c3a60b6282ec0e8cc00ff3f2faaec1ea1da00d762e6149e86cb3adbb2ed1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/orphans/pyiocontrol.ini.notworking","inputs":["linuxcnc/configs/sim/axis/orphans/pyiocontrol.ini.notworking"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/orphans/pyiocontrol.ini.notworking","source_sha":"5abcf8120226d5e23ec5fc6afe43db5fb84c305f7bba39bda2843b19047137a1","test_id":null,"web_status":"planned"} @@ -362,8 +362,8 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/custom.hal","inputs":["linuxcnc/configs/sim/axis/panelui-demo/custom.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/custom.hal","source_sha":"75712730030c086e0d963e3e536b84afeb45567be1a180b0fb61dba5a366f09d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal","inputs":["linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/custom_postgui.hal","source_sha":"9220d10847acb8c98cc6314699aa30df0dc1fa4bd4146493e8909e5255c8c8f9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/panel.glade","inputs":["linuxcnc/configs/sim/axis/panelui-demo/panel.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/panel.glade","source_sha":"98b52d7051b55d2c7dd7bb11bb67834476506122b623f4ea8bc4d4e7d678ff12","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal","inputs":["linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal","source_sha":"6c7c482dfd0369e8568b65f2a1f5c7e008c343472494a1754a900d63a03db694","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini","inputs":["linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini","source_sha":"9b47416920a284322363e47771e612fca7415a0a0a594f9f7cbdf4a502c4757e","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal","inputs":["linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.hal","source_sha":"6c7c482dfd0369e8568b65f2a1f5c7e008c343472494a1754a900d63a03db694","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini","inputs":["linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini","source_sha":"9b47416920a284322363e47771e612fca7415a0a0a594f9f7cbdf4a502c4757e","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/panelui_handler.py","inputs":["linuxcnc/configs/sim/axis/panelui-demo/panelui_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/panelui_handler.py","source_sha":"1025a334711fe1724904b4889dbfb6ad2a27b467e821f970e31ba22b48f55bf1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal","inputs":["linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/sim_hardware.hal","source_sha":"0d04532058f5481a31626c11959c6aaa41f0dd1fdde528c3429192f1322dab58","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/panelui-demo/tool.tbl","inputs":["linuxcnc/configs/sim/axis/panelui-demo/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/panelui-demo/tool.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} @@ -371,17 +371,17 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/README_es","inputs":["linuxcnc/configs/sim/axis/pentapod/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/README_es","source_sha":"b082f6d4a8b0e94704d1f418ce4e7fa3996d43f96223245a693ff4f811438fc6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/kinematics.hal","inputs":["linuxcnc/configs/sim/axis/pentapod/kinematics.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/kinematics.hal","source_sha":"cf56ea1c1fe2b49d1af6a771bd73ea43ecc7a37991717b68a1e017c101bc6ae2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/panel.xml","inputs":["linuxcnc/configs/sim/axis/pentapod/panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/panel.xml","source_sha":"f70d1d1e36d91a633c1a5052413de8b91f6751b037e7f54742f65a0008ff5965","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini","inputs":["linuxcnc/configs/sim/axis/pentapod/pentapod.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini","source_sha":"0fb210122ab482087d3a95e5e7487baecb84c3260dca1769970f4c19b2ad0618","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini","inputs":["linuxcnc/configs/sim/axis/pentapod/pentapod.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/pentapod.ini","source_sha":"0fb210122ab482087d3a95e5e7487baecb84c3260dca1769970f4c19b2ad0618","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal","inputs":["linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/pentapod_postgui.hal","source_sha":"60968f571644feb13a8896a16c24ee8a6360d0ded39ba352b60b6d790c891c30","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/pentapod/tool.tbl","inputs":["linuxcnc/configs/sim/axis/pentapod/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/pentapod/tool.tbl","source_sha":"3dd35e463100d3a4ff8cd03a07e1bbe5e10acbc915ae842ea66b62549369ff98","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/README","inputs":["linuxcnc/configs/sim/axis/plasma/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/README","source_sha":"a3cf593433971bf1b767791ed775cdf1ffa89ec36a596c869bc48b6e426093c5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/custom.hal","inputs":["linuxcnc/configs/sim/axis/plasma/custom.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/custom.hal","source_sha":"7afde54ceeb15d1db4e1fae998530a4d30de43f36730debcec1064baab69a072","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/customizing.html","inputs":["linuxcnc/configs/sim/axis/plasma/customizing.html"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/customizing.html","source_sha":"0cd3b4f05e487b9c7ba915a3c8c19ffa8ffc59cce3945c74c0bde2f39102f045","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/imperial.ini","inputs":["linuxcnc/configs/sim/axis/plasma/imperial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/imperial.ini","source_sha":"c531ab622b904085f05e9fa6fdf791c0a5ec15153f2e22acd5273676a35a9a25","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/imperial.ini","inputs":["linuxcnc/configs/sim/axis/plasma/imperial.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/imperial.ini","source_sha":"c531ab622b904085f05e9fa6fdf791c0a5ec15153f2e22acd5273676a35a9a25","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/imperial.prefs","inputs":["linuxcnc/configs/sim/axis/plasma/imperial.prefs"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/imperial.prefs","source_sha":"e616dea3745eec3d718a7212dc707068bd5cfa0ecc3bafb0cc9b646e50d30a70","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/imperial_material.cfg","inputs":["linuxcnc/configs/sim/axis/plasma/imperial_material.cfg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/imperial_material.cfg","source_sha":"8877a3e92bc2e9aafabed80c789c57e8553c113ca4a6ce2b0d7c9c4bbc4b087d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl","inputs":["linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/imperial_tool.tbl","source_sha":"1de1e04c14c456b111b13908da5bbe5986d9c07035589212b5c0effd32dd0bfa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/metric.ini","inputs":["linuxcnc/configs/sim/axis/plasma/metric.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/metric.ini","source_sha":"7dab2e05a237c1a8ec472e9c09b03ac8a4a016786207d83aa17fa142a5d4defe","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/metric.ini","inputs":["linuxcnc/configs/sim/axis/plasma/metric.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/metric.ini","source_sha":"7dab2e05a237c1a8ec472e9c09b03ac8a4a016786207d83aa17fa142a5d4defe","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/metric.prefs","inputs":["linuxcnc/configs/sim/axis/plasma/metric.prefs"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/metric.prefs","source_sha":"80a28e4d9630b33cdd448b0baf92186ebe081c3d5ca1c90d37518b7690e601d1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/metric_material.cfg","inputs":["linuxcnc/configs/sim/axis/plasma/metric_material.cfg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/metric_material.cfg","source_sha":"17dd505cc46345ffc29afab60f088f493bd3ccb83caa11250f8525bb93ad6a99","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/metric_tool.tbl","inputs":["linuxcnc/configs/sim/axis/plasma/metric_tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/metric_tool.tbl","source_sha":"767582da123280e4a4a5ae528d7e4100998250060a6ea02d52db98905074f039","test_id":null,"web_status":"planned"} @@ -443,18 +443,18 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/user_hal.py","inputs":["linuxcnc/configs/sim/axis/plasma/user_hal.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/user_hal.py","source_sha":"99594d7300e8316b09606ef01596ccec2e08e7edd4ec4ce8afcb0c7a4f27d422","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/plasma/user_periodic.py","inputs":["linuxcnc/configs/sim/axis/plasma/user_periodic.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/plasma/user_periodic.py","source_sha":"2d7504cf8b32ea0b6df7f95fc85646f089da9181e6f49a58d30c760cb45ef81e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/postgui_calib_helper.hal","inputs":["linuxcnc/configs/sim/axis/postgui_calib_helper.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/postgui_calib_helper.hal","source_sha":"f8421a62035c1a743cec6a2218e604f716e6711abef9699f3b77d43d6502c261","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/profile_axis.ini","inputs":["linuxcnc/configs/sim/axis/profile_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/profile_axis.ini","source_sha":"f3e7bed9eeecea860ab15d9eef4319715eedcb13315b25f9e62ac9797baed7bb","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/profile_axis.ini","inputs":["linuxcnc/configs/sim/axis/profile_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/profile_axis.ini","source_sha":"f3e7bed9eeecea860ab15d9eef4319715eedcb13315b25f9e62ac9797baed7bb","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/qtvcp/.gitignore","inputs":["linuxcnc/configs/sim/axis/qtvcp/.gitignore"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/qtvcp/.gitignore","source_sha":"74d8dd4a0a19af69009af628089c73d3d9f9802697135d3edf71d3525d56f391","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini","inputs":["linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini","source_sha":"29d36b3435bc7b410d8dd57f794c9254a91c11ad06d1b26ad3be39489c4d51ee","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini","inputs":["linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini","source_sha":"5e610fd07b44d291422378996f098fa27e4dc075e3f3fb49ad6267471b426206","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini","inputs":["linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini","source_sha":"29d36b3435bc7b410d8dd57f794c9254a91c11ad06d1b26ad3be39489c4d51ee","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini","inputs":["linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini","source_sha":"5e610fd07b44d291422378996f098fa27e4dc075e3f3fb49ad6267471b426206","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/qtvcp/sim.tbl","inputs":["linuxcnc/configs/sim/axis/qtvcp/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/qtvcp/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/random_tc.ini","inputs":["linuxcnc/configs/sim/axis/random_tc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/random_tc.ini","source_sha":"d0b1614f287c10ad0d6dabf81aac69f78e187dddae30225ccaf501c8fdef0f29","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rdelta.ini","inputs":["linuxcnc/configs/sim/axis/rdelta.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rdelta.ini","source_sha":"53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/random_tc.ini","inputs":["linuxcnc/configs/sim/axis/random_tc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/random_tc.ini","source_sha":"d0b1614f287c10ad0d6dabf81aac69f78e187dddae30225ccaf501c8fdef0f29","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rdelta.ini","inputs":["linuxcnc/configs/sim/axis/rdelta.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rdelta.ini","source_sha":"53510733b8fd0230547f48f76ebd35dc5c98f58fe1dba1246777e227ef82c508","test_id":"audit:K4-DELTA-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/README","inputs":["linuxcnc/configs/sim/axis/remap/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/README","source_sha":"d408e1e368a35657c12cbb0f972e9a42aed36813c217622476a7a0a669bdc043","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/README_es","inputs":["linuxcnc/configs/sim/axis/remap/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/README_es","source_sha":"727ff610489438b98517852d9bde5bd8773d91bf4d5344c229d8931aeac010f0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/README","inputs":["linuxcnc/configs/sim/axis/remap/cycle/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/README","source_sha":"b0cc77848205f718e6441467649646c181144b002f9c6bfd67ca34b079bd9189","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/README_es","inputs":["linuxcnc/configs/sim/axis/remap/cycle/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/README_es","source_sha":"42fe11de7b99f618cee8497c566bc02b1b5f7392d701e9a4124757f8d6244b65","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini","inputs":["linuxcnc/configs/sim/axis/remap/cycle/cycle.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini","source_sha":"ee64fa142ddf5a5288cae36a39445a32488250755f72ea5a1d3df436c2694e8c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini","inputs":["linuxcnc/configs/sim/axis/remap/cycle/cycle.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini","source_sha":"ee64fa142ddf5a5288cae36a39445a32488250755f72ea5a1d3df436c2694e8c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/nc_files/examples.ngc","inputs":["linuxcnc/configs/sim/axis/remap/cycle/nc_files/examples.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/nc_files/examples.ngc","source_sha":"43de1d9f49bc2a97ce49eeb40d178c59f8d8df09e25e551cf8fc9f53f498bac2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines/g843.ngc","inputs":["linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines/g843.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/nc_subroutines/g843.ngc","source_sha":"e0fd882d129848342462f8c0375e9d8e2bb6f82cfc2169c0bc9391bb1d1b8de1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/python/remap.py","inputs":["linuxcnc/configs/sim/axis/remap/cycle/python/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/python/remap.py","source_sha":"6d0dc507dd443b1edcfdf9cb3b2bcc4601ae0c92f8effb3f1bbcf305fbe9a21b","test_id":null,"web_status":"planned"} @@ -462,7 +462,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/cycle/tool.tbl","inputs":["linuxcnc/configs/sim/axis/remap/cycle/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/cycle/tool.tbl","source_sha":"96c1d2b39b2a99c3e80af7810bb7651680983e2dde39a490db3cc1b6e91a9287","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/README","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/README","source_sha":"d23454a27eb3ae7091ac96ddd22465a0a26179245cfe16c17ee44bca8bfb5196","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/README_es","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/README_es","source_sha":"38a7d0131993d3ba7e5a4076bf16891e1cfe903f258e203be998091dccf8e9d6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini","source_sha":"432ff320ac6d3518a73ae69e924c343c0740d04475a09f99391304f5f7e8cc76","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini","source_sha":"432ff320ac6d3518a73ae69e924c343c0740d04475a09f99391304f5f7e8cc76","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/gladevcp.hal","source_sha":"0bbab78b789e917131f81bb21cdb0556d5a888ad0f9dae418ca1e24b12ca4464","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_files/examples.ngc","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/nc_files/examples.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_files/examples.ngc","source_sha":"79e5619c1dcb570fa6f6d099bfe4ca72a4437d86a1d807bf713a372d960a22b9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines/change.ngc","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines/change.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/nc_subroutines/change.ngc","source_sha":"f31cade1e71a8bb3fb768bf8b3dc1f3d437f94025e404929295cb5be9bb9753d","test_id":null,"web_status":"planned"} @@ -477,7 +477,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/python/toplevel.py","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/python/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/python/toplevel.py","source_sha":"c2bdb11012b35f85c988c201de45160f8c93e002e2b9b8075fcfce989e71d123","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/show.ui","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/show.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/show.ui","source_sha":"21144916f3bd08123daeaa384e8a90eb5f51df7a2ba5e0f92b77d44bdca522d7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl","inputs":["linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/extend-builtins/tool.tbl","source_sha":"96c1d2b39b2a99c3e80af7810bb7651680983e2dde39a490db3cc1b6e91a9287","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini","inputs":["linuxcnc/configs/sim/axis/remap/getting-started/demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini","source_sha":"763dd31e6eb32047eb35eecb933f822db3a65e87b1a214f982517369eecdd976","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini","inputs":["linuxcnc/configs/sim/axis/remap/getting-started/demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini","source_sha":"763dd31e6eb32047eb35eecb933f822db3a65e87b1a214f982517369eecdd976","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/getting-started/nc_files/examples.ngc","inputs":["linuxcnc/configs/sim/axis/remap/getting-started/nc_files/examples.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/getting-started/nc_files/examples.ngc","source_sha":"7a005ab0da86c924cbae7dd5640f0077a09dc99e64f409b574270cc044496969","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines/change_min.ngc","inputs":["linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines/change_min.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines/change_min.ngc","source_sha":"aed8e082947a1f68f4cab9b79ea067c0ca1541db97528a9bfc6693d0cef50852","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines/m400.ngc","inputs":["linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines/m400.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/getting-started/nc_subroutines/m400.ngc","source_sha":"ce28f2ec2df79a1733dae51e8b155372203ee7db6386bad0d5e33b68d2d43643","test_id":null,"web_status":"planned"} @@ -493,7 +493,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/gladevcp.hal","source_sha":"cbd6aacc30ce57715b741c0351b72fc1ec692a39b6963538719e1745db14aaf1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.glade","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.glade","source_sha":"9bc9fc0c989bb20d6edfe560ebffb4c97225942b5b35e89c1f53dd84a1dda935","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.hal","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.hal","source_sha":"cf75c401400a2e2a932e5dfcd3e2e447d2889be02003b0f34c61bfef8d8f69ea","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini","source_sha":"6d52f5596d0f0f90c9a2da5a0802d6dfe35c4fbfe1c9cd4e9e6f34a3ab52e064","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini","source_sha":"6d52f5596d0f0f90c9a2da5a0802d6dfe35c4fbfe1c9cd4e9e6f34a3ab52e064","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ui","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ui","source_sha":"33ce5de2f8efd97539dc1a2d099f2f27aa38f48398371809838ebdedcaf7f73c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_files/tcdemo.ngc","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_files/tcdemo.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_files/tcdemo.ngc","source_sha":"96fab95b2b42b58f7a805fb3a037825c440cf309501a027b35fe434e111cd337","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines/manual_change.ngc","inputs":["linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines/manual_change.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/nc_subroutines/manual_change.ngc","source_sha":"eaab495d84be5a7ea8b01f2674b9b97483fa50d4e31cb7da574f63bb21d9cc85","test_id":null,"web_status":"planned"} @@ -515,12 +515,12 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/python/toplevel.py","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/python/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/python/toplevel.py","source_sha":"42a4a3fc1f34843cdccb449e50f2f0d1cba0a7405adca021797a38a0c7a00e38","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.glade","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.glade","source_sha":"2c105c4466a11f58db6d8623f4898abd07276c07520655e552612e0b33c2f1dc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.hal","source_sha":"edf2f401d6c23500a6dd71ab715f1902c3f4b4b7d31c77f87902336650e77af6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini","source_sha":"742f1ca34ffc95b1781673ca6ebed5cc23376cc7d94c520d4f8d4036699109e5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini","source_sha":"742f1ca34ffc95b1781673ca6ebed5cc23376cc7d94c520d4f8d4036699109e5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ui","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ui","source_sha":"43ec1cc8274748771ba0866744c3dfe66743c7d638520c5cad1934ac64e7b4e7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/rack-toolchange/tool.tbl","inputs":["linuxcnc/configs/sim/axis/remap/rack-toolchange/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/rack-toolchange/tool.tbl","source_sha":"9f248d386b644dd67d3378d46cb296ddf2b8032916b4dcb136363b258eb5cd1f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/README","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/README","source_sha":"b5589a0ee2337a5c4c5da97132d1a10b13e00c2f871bd9bc2dadf474331b534d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/README_es","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/README_es","source_sha":"c000b121366b2b158ae5417edc20310c507ee826d01e2bc618c92c5d3c303bdf","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini","source_sha":"aea088d4bb017ac0474dca3f696c76533d374cac5a40b71944d76a1c89e9dafc","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini","source_sha":"aea088d4bb017ac0474dca3f696c76533d374cac5a40b71944d76a1c89e9dafc","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_files/examples.ngc","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_files/examples.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/nc_files/examples.ngc","source_sha":"85e82d67ec51ef465c10536059bb1abade7527582fdf19c78eaeb88270c67f5d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/python/remap.py","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/python/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/python/remap.py","source_sha":"186ace88212845b1c8c6be58e400751a7b319a614c2a624329f8dac9fca32ec1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/remap/stop-lookahead/python/toplevel.py","inputs":["linuxcnc/configs/sim/axis/remap/stop-lookahead/python/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/remap/stop-lookahead/python/toplevel.py","source_sha":"c2bdb11012b35f85c988c201de45160f8c93e002e2b9b8075fcfce989e71d123","test_id":null,"web_status":"planned"} @@ -531,14 +531,16 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rose_engine/rcone.ngc","inputs":["linuxcnc/configs/sim/axis/rose_engine/rcone.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rose_engine/rcone.ngc","source_sha":"7140c250c366f28924cc599f09a5471366b7f3b667c71f14c48f9e60e2971bcd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc","inputs":["linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc","source_sha":"5b194542cca489e2f998104e7054c7d95433aa16f22be0ce5c09411089509b66","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.halshow","inputs":["linuxcnc/configs/sim/axis/rose_engine/rose_engine.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.halshow","source_sha":"174d37a7fc858c6534bcdaa239b35d1d873540b37bee173cf2aee53b80a4212a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini","inputs":["linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini","source_sha":"0685e9ca8c05c903b715e9fed6ecd23cbac13911ed335b6d14e24eb235de25d3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini","inputs":["linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini","source_sha":"0685e9ca8c05c903b715e9fed6ecd23cbac13911ed335b6d14e24eb235de25d3","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal","inputs":["linuxcnc/configs/sim/axis/rotate/rotatekins.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal","source_sha":"e3c9ec02685f64fdb72bb9e561b3709b450f0da29eac9cca0f17541f843b0954","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini","inputs":["linuxcnc/configs/sim/axis/rotate/rotatekins.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini","source_sha":"324af9a73d21b5f0c9adaf3c97e698422790d403586901f9e161b6020b1fb4fa","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/sim.tbl","inputs":["linuxcnc/configs/sim/axis/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/sim.tbl","source_sha":"52411645e06c20cf0e6c469e544a4d17de07d03254a6cb784e2468704e0a4a9e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/sim_mm.tbl","inputs":["linuxcnc/configs/sim/axis/sim_mm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/sim_mm.tbl","source_sha":"1816cbb02cc6585d86676bb2d88f85b10b439cf42212e0b4c144f3846a3dcf30","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simpockets.tbl","inputs":["linuxcnc/configs/sim/axis/simpockets.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simpockets.tbl","source_sha":"e81a30f74f1c91fcece180e607f7e2cd63468bf4d432cc5cad2bc65eb7152150","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/README","inputs":["linuxcnc/configs/sim/axis/simtcl/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/README","source_sha":"f99be5ec114e530daf3677719a32b8c10f69bdf453377d29795fcd29565995bd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/README_es","inputs":["linuxcnc/configs/sim/axis/simtcl/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/README_es","source_sha":"efa5f7a03784e6f2734d761a67f785d3dcf19da1aa1c075c38efd5beec71c44e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/sim.tbl","inputs":["linuxcnc/configs/sim/axis/simtcl/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc","inputs":["linuxcnc/configs/sim/axis/simtcl/twopass_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc","source_sha":"61bb7cabc2c70d8de648bf633ab8d4569995f3d98427bdb843557a704de953a1","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc","inputs":["linuxcnc/configs/sim/axis/simtcl/twopass_base.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc","source_sha":"61bb7cabc2c70d8de648bf633ab8d4569995f3d98427bdb843557a704de953a1","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/twopass_basic.ini","inputs":["linuxcnc/configs/sim/axis/simtcl/twopass_basic.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/twopass_basic.ini","source_sha":"b19e33bdaccebf5e060acdb5b0239b438a8f76c0e84dd1374420775f989bf766","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/twopass_basic.txt","inputs":["linuxcnc/configs/sim/axis/simtcl/twopass_basic.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/twopass_basic.txt","source_sha":"053a1d452f0f496650068e1f6b266e28b8926b15970dc1a0fa2bfb577d90149d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/simtcl/twopass_basic_es.txt","inputs":["linuxcnc/configs/sim/axis/simtcl/twopass_basic_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/simtcl/twopass_basic_es.txt","source_sha":"276411b2129549a7614af20e46282e2f524d1352a79b4a7d13ac6578283e0887","test_id":null,"web_status":"planned"} @@ -548,7 +550,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/README","inputs":["linuxcnc/configs/sim/axis/spindle_orient/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/README","source_sha":"04bdf68bb6d4236fdee6b83e96033752c1ecb02d44a3fbe74614cabd763da58a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/README_es","inputs":["linuxcnc/configs/sim/axis/spindle_orient/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/README_es","source_sha":"81a2b3ddfdb15d913ce5446c4bf4cf338f9ab84d00e3ebc944142acc55b05888","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/orient.hal","inputs":["linuxcnc/configs/sim/axis/spindle_orient/orient.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/orient.hal","source_sha":"347c7dac63dcfb222d181c01c59993f2940d71e7b2080b7c29ecffdca81c0c41","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini","inputs":["linuxcnc/configs/sim/axis/spindle_orient/orient.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini","source_sha":"98d9ca88da31ae88a2ae51b80027939a6ebc6e700326ee7f3a108506aa908b04","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini","inputs":["linuxcnc/configs/sim/axis/spindle_orient/orient.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini","source_sha":"98d9ca88da31ae88a2ae51b80027939a6ebc6e700326ee7f3a108506aa908b04","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/orient.ui","inputs":["linuxcnc/configs/sim/axis/spindle_orient/orient.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/orient.ui","source_sha":"33a78110b344580614d6c6c17da542e09a2501bc9d8e6badbe4567d4fa0afdd5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/spindle_orient/sim.tbl","inputs":["linuxcnc/configs/sim/axis/spindle_orient/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/spindle_orient/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/README","inputs":["linuxcnc/configs/sim/axis/twopass/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/README","source_sha":"6f0959708a15bf3b8951343a80516a6687ca7c9d60fbda3820f71333de5d8345","test_id":null,"web_status":"planned"} @@ -556,16 +558,16 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal","inputs":["linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/load_for_postgui.hal","source_sha":"5905630a2e068ba464ae685e11052b1dc72e9fa5058597abac1980ccdef6680b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/postgui.hal","inputs":["linuxcnc/configs/sim/axis/twopass/postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/postgui.hal","source_sha":"e17c4268e81f2b7e161ab6f52cedceb881e988b9a0a10b1e5de39cff9378bff2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/sim.tbl","inputs":["linuxcnc/configs/sim/axis/twopass/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/twopass.ini","inputs":["linuxcnc/configs/sim/axis/twopass/twopass.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/twopass.ini","source_sha":"9b88396ab9461605c378ba933faf6cf17bfc7c960220e6fb4573d17c81f24526","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/twopass.ini","inputs":["linuxcnc/configs/sim/axis/twopass/twopass.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/twopass.ini","source_sha":"9b88396ab9461605c378ba933faf6cf17bfc7c960220e6fb4573d17c81f24526","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/twopass.txt","inputs":["linuxcnc/configs/sim/axis/twopass/twopass.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/twopass.txt","source_sha":"d65da044bb9a9a9b4262b137b98eebf8915269511b4c3c63d813fed9deb2984f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal","inputs":["linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/twopass/twopass_excluded.hal","source_sha":"085ed243e54d6df44e9e948e972407597613dc0a2286803106f49b812b140d2a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial","source_sha":"da5f8266cecd79cdeaa01bf07c4fba17d5c748ccc7dedfc7efdf0354deee9cc7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal","source_sha":"6c01e40c2244d3b534c0d3c60f26a9cdc5232defc79611234c78477209cfda1f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini","source_sha":"b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.hal","source_sha":"6c01e40c2244d3b534c0d3c60f26a9cdc5232defc79611234c78477209cfda1f","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini","source_sha":"b801d4fb7a3d66fac7a4202d56c384f75b039f55c70cce64c2975c5454875388","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/README","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/README","source_sha":"843afa190f28fb57db670fa1014cb2130400a92e91f5cc781a91a7024c1f5329","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/README_es","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/README_es","source_sha":"359d91c7116db294b62923a376ebac27cb06e94b1c7245bc5f316bd8a5586eef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/tool.tbl","source_sha":"6a1736d9a44a30e62d7a8be4df960adc909e7ef026af10ab8e8abf6a613ce4ea","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini","source_sha":"789ba656f8ee3e97feba07b58eb242305898e745795891b1a7e536289bffe6bf","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini","source_sha":"789ba656f8ee3e97feba07b58eb242305898e745795891b1a7e536289bffe6bf","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl","source_sha":"51b2b28aa9677a04ef0e0ebc7ba37e937857f97f1a50a25da763e4ee3a12dc18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.xml","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.xml","source_sha":"e50b4898e89796b5b711f827efe798519983cbabc4f8bee4ba98fe01d2d61473","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal","source_sha":"b4aed98d19a6ec8f3ed8053aca7ac6191b15a8031771ac9d2cc34f1277db9394","test_id":null,"web_status":"planned"} @@ -580,16 +582,16 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/README_es","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/README_es","source_sha":"9d438528ad9eabfa5065d3242060d8ed676cd59f9a07ee0bc2eb3a2c4312c187","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5_base.inc","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5_base.inc","source_sha":"ed37759d2e2d5fa94b8cf11810bd254c2478889cf7f010e520599424453f127a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal","source_sha":"21897c3af97b3fbd4722d35b3f6380ad27a7d506b5c135644c929cf6d058832a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini","source_sha":"ea7d453127122b7831e74de2204b446c514f3c999961a4be412b36880bacb8b6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal","source_sha":"71c275afc0cc325cd72201118b86b323f89abf678a7e9e725328d6ea8183c664","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini","source_sha":"92afb2043a559d8eb9e638bfb9862c8ec917deb49987c788989fe538e8ddeefb","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.hal","source_sha":"21897c3af97b3fbd4722d35b3f6380ad27a7d506b5c135644c929cf6d058832a","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini","source_sha":"ea7d453127122b7831e74de2204b446c514f3c999961a4be412b36880bacb8b6","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.hal","source_sha":"71c275afc0cc325cd72201118b86b323f89abf678a7e9e725328d6ea8183c664","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini","source_sha":"92afb2043a559d8eb9e638bfb9862c8ec917deb49987c788989fe538e8ddeefb","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/README","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/README","source_sha":"e816f375df782ce1b2344f8f32f94b3cbe1dfaf7360aaee53eeb6dd93f44aeb8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/demos/xyzab-tdr-demo.ngc","source_sha":"cc57e949ef7f6ed760963289d55d01c210c0709b424e8b0c4cb87a3ed66cc235","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/428remap.ngc","source_sha":"a0aee1d6b481a979849a17c0a23aa7524f52cbd875c92cbde3b73bf36f91d17b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/429remap.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/429remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/remap_subs/429remap.ngc","source_sha":"160479860b84e55ace49ffceb9594285ee90c521ba5eef916ef47ac8a6b3349d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal","source_sha":"4d571e1caf7f7b1a9d6bf84e0459a2b860ed385e09e2732b35fd47aec4c153a2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini","source_sha":"923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal","source_sha":"4d571e1caf7f7b1a9d6bf84e0459a2b860ed385e09e2732b35fd47aec4c153a2","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini","source_sha":"923d0a9e75ff595e05a5fe13194cbd7eee7465419b995fe852503435a8d35907","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl","source_sha":"a91ca3e9d73817b78d97c464d8135033aa8d9d6744c5e32bf09c99dcbbb4ea3b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.xml","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.xml","source_sha":"d8e4610d1dc63b70f9d14fa077db90f29764eeb7bb56d306e08e4d3e3ba8d38b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/README","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/README","source_sha":"57ffce6a599239cc192b33dd8cd6161a9c20c0d973600bd4b26cdfdeed85c9e7","test_id":null,"web_status":"planned"} @@ -611,16 +613,16 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzac_switchkins_sub.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzac_switchkins_sub.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzac_switchkins_sub.ngc","source_sha":"833bf21b8ed0ce600dcf5819234320d85348d906bbba390b62f3704836ea254d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzbc_switchkins_sub.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzbc_switchkins_sub.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/remap_subs/xyzbc_switchkins_sub.ngc","source_sha":"7265e848d0e123f439208caa88afccdf2803f34770042c778a8797a25d44537a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins.halshow","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins.halshow","source_sha":"be3bd920206548a7f1ac696ba25ad6cb7a9bbba79160827da980e06195602d2c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal","source_sha":"55e969c22ca9054a818dbedc8ec50bed768d9ab3d8c4bfdfcfc78e912e9271c4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal","source_sha":"6f8c1a8ce30b00c2256a3e8b9f8ef20a1441663e944a95c188cc9f05bc4c903c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini","source_sha":"9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins_postgui.hal","source_sha":"55e969c22ca9054a818dbedc8ec50bed768d9ab3d8c4bfdfcfc78e912e9271c4","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt-headless_cmds.hal","source_sha":"6f8c1a8ce30b00c2256a3e8b9f8ef20a1441663e944a95c188cc9f05bc4c903c","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini","source_sha":"9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl","source_sha":"41cf3c92574be99ecd6ed45e1869158b184620419d5d95a41649d25f15e141ff","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.txt","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.txt","source_sha":"7c87f7c633bdd031de26ebbfd74a8078a7b4ce203e3ded963eab4c7530577496","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.xml","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.xml","source_sha":"84efa01584693ab8f4a9c0730e341a9dbe87d9341472081ee80d59a0bfb90941","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal","source_sha":"2d5daf919d6a6b23d8f2c3e158596dcf77217b304471d6b92324611f31e00461","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal","source_sha":"2d5daf919d6a6b23d8f2c3e158596dcf77217b304471d6b92324611f31e00461","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var","source_sha":"163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var.bak","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var.bak"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac.var.bak","source_sha":"163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini","source_sha":"78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini","source_sha":"78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl","source_sha":"6f61c5a697a8863742765c722af62669546246bacfa80fd0e329197645825a80","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.txt","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.txt","source_sha":"90f8a7ec57d45af21a540daea7e4af66ba0fd914d9c5989951cef174aa4faac4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml","inputs":["linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml","source_sha":"c863dc78c6b5b066413193e4f994b81b1a876a3e7e4257f11814fb5160725dc4","test_id":null,"web_status":"planned"} @@ -641,18 +643,18 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_gray.hal","source_sha":"27a572e689e6d819b3b006f4d92b6906568a5c787d55920c7b8ddcaedfcfa225","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toolchange_index.hal","source_sha":"e0b60802666e62ff0b8b1005f746a6d4d18026b71a299c4cd10bd2d1308e0439","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toplevel.py","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/toplevel.py","source_sha":"b1b4f32e80b72cf158abcaec372872e2eb8ba690da3753b4598e692070a6e89e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal","source_sha":"c64398ad3e3ae763d3429dd68648d5f6e1635eb4cf49bd648dbc1f1ff01e139a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.hal","source_sha":"c64398ad3e3ae763d3429dd68648d5f6e1635eb4cf49bd648dbc1f1ff01e139a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc.tbl","source_sha":"a4a6dfa365087321b6daba749094c5db347abdd1480c972667259bd598b0d7d4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini","source_sha":"5825522880add3a8614e1fd5c168b16533f7b7b898b00a640b6e74f281270d2b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini","source_sha":"0f6e02c370c529d080bf913c1771169652bf8fe1b67cdda86cb93e2c8f933abe","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini","source_sha":"5825522880add3a8614e1fd5c168b16533f7b7b898b00a640b6e74f281270d2b","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini","source_sha":"0f6e02c370c529d080bf913c1771169652bf8fe1b67cdda86cb93e2c8f933abe","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmcgui","inputs":["linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmcgui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmcgui","source_sha":"167543feec7249cf93fea831c2799c7fb678cc235e6b2ad26efd356124f9c59a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal","inputs":["linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal","source_sha":"b864ec16452495dfdaa62b780268a608e59e885dcfc1ee4a372dfbced0c9586b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini","inputs":["linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini","source_sha":"63eafce3b9ee34cc0ff489dd754e1657a4cfd08d16147f28be38687e19604b4d","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal","inputs":["linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.hal","source_sha":"b864ec16452495dfdaa62b780268a608e59e885dcfc1ee4a372dfbced0c9586b","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini","inputs":["linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini","source_sha":"63eafce3b9ee34cc0ff489dd754e1657a4cfd08d16147f28be38687e19604b4d","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/README","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/README","source_sha":"288357e6b9270e5c437c1c7d299d359a2b17739a981d2d3e970bea5c9e7daa39","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/README_es","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/README_es","source_sha":"4a7f886246587c151c333ea584a048e1b3d67cc2d2ed6b3ccfd780fbc0669c47","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexagui.halshow","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexagui.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexagui.halshow","source_sha":"431cf7163f324cc70cc0aee4cfb2335ab7a209ac1f23a16d3595f7083862998b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini","source_sha":"362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini","source_sha":"362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea","test_id":"audit:K4-HEX-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.xml","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.xml","source_sha":"840a1fe297431abaa6eccb286005c7fefb62beb20b95a14870ebc79a00dbb04b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod_postgui.hal","source_sha":"f2ede483cf00298fd1544b5c62e7729a03990a3ab5ce43142f6cc7b9019d5a5d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal","inputs":["linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal","source_sha":"6dd6d63e0403dcc0c82b43790eaa5b4a4d639c5a02391ac1dcd5673969c4ec39","test_id":null,"web_status":"planned"} @@ -669,7 +671,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/link6.stl","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/link6.stl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/link6.stl","source_sha":"6846fd5a3b7e7ca0767b6816d4116c5b82dc2a4277d72dba859e968c967eab4a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/link7.stl","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/link7.stl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/link7.stl","source_sha":"7d503f8335cc5e53cfebbfb71feb69a5e534262ec5ad58856341762829a9cc01","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa-postgui.hal","source_sha":"3591022583c229c2c9620ccd4cbb644992de7372f13002f4d6364fbb4c70b7e6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini","source_sha":"7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini","source_sha":"7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.tbl","source_sha":"56c2a2c80aaba93b5c9822a84902179ed33923cb34dde4946e74adabf13360e3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.txt","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.txt","source_sha":"10cb2a704d10cb1105f07ca3d0a53d5ed3ba4c312494985d626ba1f44c0ce90e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.xml","inputs":["linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.xml","source_sha":"eb5425a727bdfce813157f3cb8dee59b7922ba30ef8726f3fee742f842cda9bf","test_id":null,"web_status":"planned"} @@ -684,7 +686,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn-postgui.hal","source_sha":"22afe6f156067a56b995dfe95f5003f8feaec310286cbe81f4758be3366a8d3d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.hal","source_sha":"6a66bd8ac9f801ed35a132d1f9983b7ff80be681c629515efe06cd1f40c46091","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.halshow","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.halshow","source_sha":"3f7e6cc28d342d66cd47d1ce4934e5ecf1c94f1e4a9619f2943115ac247f76cd","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini","source_sha":"dfdb6e6c295c4ca9ebf9ff11f31c1b5d6fed4079b8e48b7b59cf7fee6b8b1547","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.ini","source_sha":"dfdb6e6c295c4ca9ebf9ff11f31c1b5d6fed4079b8e48b7b59cf7fee6b8b1547","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.tbl","source_sha":"d960cfa27bfdbf0e32b19d9a44bf4762e2adfc92901d62868db3f57a82d73569","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.txt","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.txt","source_sha":"37cd8df33348bd08dcacff0fef4e70b3aa62e97df6a1b63b63934cb28bb13a60","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.xml","inputs":["linuxcnc/configs/sim/axis/vismach/millturn/millturn.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/millturn/millturn.xml","source_sha":"39b0f388b576bcba36c81a46dff1c91cd4b11631045c4735151e893fd1446b3f","test_id":null,"web_status":"planned"} @@ -695,17 +697,17 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/mcodes/M128","inputs":["linuxcnc/configs/sim/axis/vismach/puma/mcodes/M128"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/mcodes/M128","source_sha":"5e1da153f647d5459db497c1460a73208559a1bbd99eb74c9adce71e960e37fd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/mcodes/M129","inputs":["linuxcnc/configs/sim/axis/vismach/puma/mcodes/M129"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/mcodes/M129","source_sha":"ef6d3159e0a6c0e8e1c31cbef5b397aadfbbdc210f562f5f40dec93df0874a08","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/mcodes/M130","inputs":["linuxcnc/configs/sim/axis/vismach/puma/mcodes/M130"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/mcodes/M130","source_sha":"29bd9a1cc52015501a36418963e35ca3e630253de60e534079e77860cd2f9a04","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini","source_sha":"26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma.ini","source_sha":"26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma.xml","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma.xml","source_sha":"6fc8b4d42a786ce22d1943be30e40416af629fefbc6e5381862dd47759d148d1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560.halshow","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560.halshow"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560.halshow","source_sha":"f507a327b27a596717c962739c7a1443f05b1a4d89268088a6aa0af442493fdd","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini","source_sha":"2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560.ini","source_sha":"2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560.txt","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560.txt","source_sha":"83b65325bf7da96aec4f8ba363b83da01de18e4a62d3d05e5c36d26bd9f795c2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560.xml","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560.xml","source_sha":"7d28dd9ef2be9d3dd5f20bfc0692bfb019292775f0f8798b02d94a383ae2bb8a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal","source_sha":"23758eb7a6a4abe116e1de88140d04e6c9a910d1c378f019d76843a5a3fb6141","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560_postgui.hal","source_sha":"a5db7c206ab77f08907f333e4a53f777ce76abf7aeabda58988651a106132909","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini","source_sha":"50bf5dbc4cf70b0c18afea3dcbc577fbb6166152300cd16e27819de1fafe41b0","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini","source_sha":"0204289788840e0dcaaeb55a2a85cf44a3754845636a897df6efeb165db0de15","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma560_uvw.ini","source_sha":"50bf5dbc4cf70b0c18afea3dcbc577fbb6166152300cd16e27819de1fafe41b0","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ini","source_sha":"0204289788840e0dcaaeb55a2a85cf44a3754845636a897df6efeb165db0de15","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.ngc","source_sha":"6e7dcc675d606bd5d6144bd78b26418445b6f7ed6ebe3412307a525756fdcd02","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.txt","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma_cube.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma_cube.txt","source_sha":"633f1f98387e154d382038283698819ecd0a48c8c008260353b09cc08eb9793b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal","inputs":["linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal","source_sha":"b57992601bf614c26e53c8add3c3aac0a0df79929dd64f897a19630437d1c181","test_id":null,"web_status":"planned"} @@ -725,7 +727,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/README","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/README","source_sha":"94955aa0a800eff1e13a4ccc40385a32a4a593bcdc7b9e4d49bec28b932d362e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/README_es","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/README_es","source_sha":"5e593fb8a466395f795689c07ecba2931c2954b1c2c13d9dcecc93b2cff49972","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill","source_sha":"96cd31e860b7a183e9d1723101dfff7f2e4d69289cd8d5c19888e1b692da2b8b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal","source_sha":"fb34e5006181dcf9f0d16b40d2ca5dfcf5ccf33753bb6c5dcb51542d5a938a79","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal","source_sha":"fb34e5006181dcf9f0d16b40d2ca5dfcf5ccf33753bb6c5dcb51542d5a938a79","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.ini","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.ini","source_sha":"b122ac25ed12462b02d10828c469bafdcb231e9cbed07e96b6a7709380bdf0ad","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/rolfmill/tool.tbl","inputs":["linuxcnc/configs/sim/axis/vismach/rolfmill/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/rolfmill/tool.tbl","source_sha":"6a1736d9a44a30e62d7a8be4df960adc909e7ef026af10ab8e8abf6a613ce4ea","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/README","inputs":["linuxcnc/configs/sim/axis/vismach/scara/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/README","source_sha":"bdf56274b61960efad7f609daaa8fbff09bd9909f033807bb31ef10a26d3236e","test_id":null,"web_status":"planned"} @@ -733,22 +735,24 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/remap_subs/428remap.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/scara/remap_subs/428remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/remap_subs/428remap.ngc","source_sha":"4cce2dc177f32e7149bc755dca78798d9f0e64970919042ac03ce3adcf1e84d4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/remap_subs/429remap.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/scara/remap_subs/429remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/remap_subs/429remap.ngc","source_sha":"892fd318d9edd64728aa0f267b07206eb58b22ebccb8d7091530fab925250df8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/remap_subs/430remap.ngc","inputs":["linuxcnc/configs/sim/axis/vismach/scara/remap_subs/430remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/remap_subs/430remap.ngc","source_sha":"6a1f6fcc04558897515642a1cbe8584d849f932fdd24607b776bec719cb82d70","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini","inputs":["linuxcnc/configs/sim/axis/vismach/scara/scara.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini","source_sha":"602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini","inputs":["linuxcnc/configs/sim/axis/vismach/scara/scara.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini","source_sha":"602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/scara.xml","inputs":["linuxcnc/configs/sim/axis/vismach/scara/scara.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/scara.xml","source_sha":"4fc724d9bd969c84ce6d9e4c2c4e47a1c1ec67646044e1ca227b1745f9131734","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal","inputs":["linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal","source_sha":"77b7360cf05b79fa6cc15f1f686f444fe55360668ec21f3859703bcd2d2a5596","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal","inputs":["linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal","source_sha":"ef66253c80e77899df824f9317e9ba0e9292f0e0389ef8e7ec22ebb465563363","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini","inputs":["linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini","source_sha":"4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/README","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/README","source_sha":"5f9fd4cb6e25c0a7b940e92131b962e10d671a1f6e16afe528901e9f73ab48a2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/README_es","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/README_es","source_sha":"5f9fd4cb6e25c0a7b940e92131b962e10d671a1f6e16afe528901e9f73ab48a2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal","source_sha":"34102c0b792c4ddf9d2122898513a316f990b91f38e3ede62f5a6fe6f40c04a1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini","source_sha":"a9d1ffd13139631bba4b4eec761e99b3245ad18be951d076eb3a949e3e6c3798","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal","source_sha":"34102c0b792c4ddf9d2122898513a316f990b91f38e3ede62f5a6fe6f40c04a1","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini","source_sha":"a9d1ffd13139631bba4b4eec761e99b3245ad18be951d076eb3a949e3e6c3798","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.tbl","inputs":["linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.tbl","source_sha":"31b1630233a2e84cf28df5833d29215234c67cbc227964f8f763310169a25841","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/README","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/README","source_sha":"1eb8f7a4ebe21af9a5164a8c9ab1f93c0b6ed00ebafac49605cd7b754439e6c3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/README_es","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/README_es","source_sha":"8a6ab40e2806277fd4ec40011c191fdb5366685903945c14c476a2d7fecba707","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/inch_base.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/inch_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/inch_base.inc","source_sha":"b42d51ef9b457a3be18522d66b6cd05f854c4df52ea8c5f611f3868c14bf367c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc","source_sha":"333e7f1ce9adbefc48619dc33b8be4e7f9fbfb5def18f92f01b2082a8a497e3a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc","source_sha":"333e7f1ce9adbefc48619dc33b8be4e7f9fbfb5def18f92f01b2082a8a497e3a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/layout1.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/layout1.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/layout1.inc","source_sha":"ccc44e230c68fad051d7db4dc28217341537566fda0263364a620f6db33624a7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/layout2.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/layout2.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/layout2.inc","source_sha":"1c5d14bd7aa90d0b856e1a94b2f7eb784a79dbf66a2fa4a763eca2ab5b4a9121","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/mm_base.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/mm_base.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/mm_base.inc","source_sha":"6bb051aa3b33764a8487c88561a475c180e43339c2017b8bc29d09db378f67fc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc","source_sha":"39532fae2101b3348e38dee856a7af9df20ea4cc56e994d0f053c599de842b83","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc","source_sha":"39532fae2101b3348e38dee856a7af9df20ea4cc56e994d0f053c599de842b83","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/sim.tbl","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/sim_mm.tbl","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/sim_mm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/sim_mm.tbl","source_sha":"1816cbb02cc6585d86676bb2d88f85b10b439cf42212e0b4c144f3846a3dcf30","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini","inputs":["linuxcnc/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/axis/xhc-hb04/xhc-hb04-layout1.ini","source_sha":"07b2c68847bdb8136adfc04193826c6019981c80a7219a1dbbb733d337b8f817","test_id":null,"web_status":"planned"} @@ -773,8 +777,8 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc","source_sha":"3fab8f2660a7b49e9b517742aa82045fa52c32a1a4f42e7ed7976d3a866fb214","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc-axis.ini","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc-axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc-axis.ini","source_sha":"d678962c09a6e37c89868c715c98c77dbd3f9f3fe1f6537b41d092d2a5d8ed56","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc.glade","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc.glade","source_sha":"2447c97344ed40847dbfebb522608a7e4547fd201b6d789d99596f4cac095ed7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal","source_sha":"6c30c302224c5467a4c1a0091efdf477b4f256d8bbea8beb2b168b88d721d23b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini","source_sha":"c9390a47578b640dfde32e50475a2ae386dd657dc5130ce2fe34564bf90bfc70","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc.hal","source_sha":"6c30c302224c5467a4c1a0091efdf477b4f256d8bbea8beb2b168b88d721d23b","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini","inputs":["linuxcnc/configs/sim/craftsman/craftsmancnc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini","source_sha":"c9390a47578b640dfde32e50475a2ae386dd657dc5130ce2fe34564bf90bfc70","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/easygui.py","inputs":["linuxcnc/configs/sim/craftsman/easygui.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/easygui.py","source_sha":"9172f3f85f605232d82eb68c860a3e96692d5c7ae29df35dd2b5e798adb9f526","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/estimate_time.py","inputs":["linuxcnc/configs/sim/craftsman/estimate_time.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/estimate_time.py","source_sha":"6919410f67d6c1dfb7ffc6b37892cd4f63eb8ed4a6f8159df911c0f899eb73ec","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/extents.dat","inputs":["linuxcnc/configs/sim/craftsman/extents.dat"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/extents.dat","source_sha":"53757acada591c6b15f15aa34ee1deaf6342f074a996f7deecf165eed172cda7","test_id":null,"web_status":"planned"} @@ -826,45 +830,45 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/screens/screen1.jpg","inputs":["linuxcnc/configs/sim/craftsman/screens/screen1.jpg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/screens/screen1.jpg","source_sha":"ea7ea96d57376ffdb5fd99c0a84b208ee0e81454d3f659e88de2f84148a6536a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/screens/screen2.jpg","inputs":["linuxcnc/configs/sim/craftsman/screens/screen2.jpg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/screens/screen2.jpg","source_sha":"b3e4a72610f0ed504c1faddffb7e675d26726f8f27c983aad767e9577b295c6f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/screens/screen3.jpg","inputs":["linuxcnc/configs/sim/craftsman/screens/screen3.jpg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/screens/screen3.jpg","source_sha":"7a1ef97572acd3a017ffb576a5616c90688003dd3751e1b397e3c0b2cbda5b2d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/sim_core.hal","inputs":["linuxcnc/configs/sim/craftsman/sim_core.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/sim_core.hal","source_sha":"96aa4a2a4beda2cb3a57d4b4714094fbb66be0fe3e031899206b4ad22e88c4d7","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/sim_core.hal","inputs":["linuxcnc/configs/sim/craftsman/sim_core.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/sim_core.hal","source_sha":"96aa4a2a4beda2cb3a57d4b4714094fbb66be0fe3e031899206b4ad22e88c4d7","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/spindle_control.dat","inputs":["linuxcnc/configs/sim/craftsman/spindle_control.dat"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/spindle_control.dat","source_sha":"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/tool.dat","inputs":["linuxcnc/configs/sim/craftsman/tool.dat"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/tool.dat","source_sha":"c3c9a92402560fa371a37287b51c112f0b85f6763c3b69a6ad89256ab6c28e3b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/tool.tbl","inputs":["linuxcnc/configs/sim/craftsman/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/tool.tbl","source_sha":"9f55edd3aaf749ab7128b0871667e96eb52c9e09aae46c551279ddfe3449d559","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/toolchange.dat","inputs":["linuxcnc/configs/sim/craftsman/toolchange.dat"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/toolchange.dat","source_sha":"5feceb66ffc86f38d952786c6d696c79c2dbc239dd4e91b46729d73a27fb57e9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/vfd_controller.py","inputs":["linuxcnc/configs/sim/craftsman/vfd_controller.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/vfd_controller.py","source_sha":"84d154d5b863c69a6aed593abb8908c9c4e809df559821f867761f0bbb44c860","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/craftsman/vfd_spindle","inputs":["linuxcnc/configs/sim/craftsman/vfd_spindle"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/craftsman/vfd_spindle","source_sha":"bfdbc04f9f7ff7f69afbf8ded5cce118fa3b9de52e38cc75285f204143071497","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/6_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/6_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/6_axis.ini","source_sha":"1a47c6b666af1ca2f78f95022c27bb9f94626ffce26da23556fea15f767b7cba","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/7_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/7_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/7_axis.ini","source_sha":"10db48db4e53a03fe04c2e3dc849c84c9f3f2b77d51c233f64b92b375942a14f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini","inputs":["linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini","source_sha":"6f48447e4576d82a57742dc94babcecf2e813a2afbe398acfcfd87d05c99f229","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/8_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/8_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/8_axis.ini","source_sha":"ad9e2a848a1d1cde6c4fbcf82adaae70d52af6f283d3e785a053c2a560ab8f84","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/9_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/9_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/9_axis.ini","source_sha":"72252c1eb8238facb30b8b3fc08d012b22c70bf1c7c151c2e50946a5eeadc5ef","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/6_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/6_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/6_axis.ini","source_sha":"1a47c6b666af1ca2f78f95022c27bb9f94626ffce26da23556fea15f767b7cba","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/7_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/7_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/7_axis.ini","source_sha":"10db48db4e53a03fe04c2e3dc849c84c9f3f2b77d51c233f64b92b375942a14f","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini","inputs":["linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini","source_sha":"6f48447e4576d82a57742dc94babcecf2e813a2afbe398acfcfd87d05c99f229","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/8_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/8_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/8_axis.ini","source_sha":"ad9e2a848a1d1cde6c4fbcf82adaae70d52af6f283d3e785a053c2a560ab8f84","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/9_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/9_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/9_axis.ini","source_sha":"72252c1eb8238facb30b8b3fc08d012b22c70bf1c7c151c2e50946a5eeadc5ef","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/README","inputs":["linuxcnc/configs/sim/gmoccapy/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/README","source_sha":"1cfefb8ab11721485f3a26f21e25114d7e7795505058b371f757e402e8dc4022","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/README_es","inputs":["linuxcnc/configs/sim/gmoccapy/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/README_es","source_sha":"fc0dcccc47bc360eb15b510d757e41efd358b8c38e290f3afc0d3a0f32b2e1bb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/button.glade","inputs":["linuxcnc/configs/sim/gmoccapy/button.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/button.glade","source_sha":"33c010a47f6b0f16182ba4fcc93a7a3d4bec87caff9c14896ae724fe2542258d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim.hal","source_sha":"a1793b7a8bb9ff03172dadd5a42bbfe41248f00796b48ef5d38b766d123accdf","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim4.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal","source_sha":"d326da9d94d7abdc6ebed4a83144cd1623fa63d5af37ad0ed57662ff84249179","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_6.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal","source_sha":"a9ffe2dc7d433ab5b6c027bc8e056b19b831ccbed64acd760571326d0ee6273f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_7.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal","source_sha":"8a3edf09fdeee30ed396bb3b3b533f7acbce4d4fe1b22e90de9fa3bc3442cb8d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_8.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal","source_sha":"89becacb8d967d3078facf90ba16e34e39bc33857fcc92d715ef9be50e688d6d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_9.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal","source_sha":"563234fc66fe5483a4867a03e2a6e49e13f257805661f3c55a99e2c9c6b16c6d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal","source_sha":"fc79d08d080865aaf275c138b0220eb51ddd7c370f150c7b3d5d1b41ab33fd85","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal","source_sha":"3fa7c42778f965ad47291d0215fec42707a2d15279580cc588fd459393f52a03","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal","source_sha":"a0fd41c8ba9e1cb213122b2ae9b75184ef1e245b6d5d63e49b10211cbfcdf505","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim.hal","source_sha":"a1793b7a8bb9ff03172dadd5a42bbfe41248f00796b48ef5d38b766d123accdf","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim4.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim4.hal","source_sha":"d326da9d94d7abdc6ebed4a83144cd1623fa63d5af37ad0ed57662ff84249179","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_6.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal","source_sha":"a9ffe2dc7d433ab5b6c027bc8e056b19b831ccbed64acd760571326d0ee6273f","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_7.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal","source_sha":"8a3edf09fdeee30ed396bb3b3b533f7acbce4d4fe1b22e90de9fa3bc3442cb8d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_8.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal","source_sha":"89becacb8d967d3078facf90ba16e34e39bc33857fcc92d715ef9be50e688d6d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_9.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal","source_sha":"563234fc66fe5483a4867a03e2a6e49e13f257805661f3c55a99e2c9c6b16c6d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAB.hal","source_sha":"fc79d08d080865aaf275c138b0220eb51ddd7c370f150c7b3d5d1b41ab33fd85","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZAC.hal","source_sha":"3fa7c42778f965ad47291d0215fec42707a2d15279580cc588fd459393f52a03","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal","inputs":["linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/core_sim_XYZCW.hal","source_sha":"a0fd41c8ba9e1cb213122b2ae9b75184ef1e245b6d5d63e49b10211cbfcdf505","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/dro.glade","inputs":["linuxcnc/configs/sim/gmoccapy/dro.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/dro.glade","source_sha":"1a30d2d02e66a346495c477af8298d4d1acb3c13822cca78f06042cbedc304bc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini","source_sha":"627537d0a342075ecd45765b4d8b256b065f2568902a585cfe5161efec53a126","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini","source_sha":"627537d0a342075ecd45765b4d8b256b065f2568902a585cfe5161efec53a126","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy.txt","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy.txt","source_sha":"c2989ddf8c03a240ceb9fb2d4af5400a59ac20cb40ba762bc7f0ea203b97d593","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy2.glade","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy2.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy2.glade","source_sha":"f307b3553656db0ed4bbc714c355ed9d73ee9cbe079819172c61b1e942b61476","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini","source_sha":"33b4ad6792d9037f2a0bb9eb179aff7b3d8ecac64bfa0b1cc71633a88cf868d9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini","source_sha":"33b4ad6792d9037f2a0bb9eb179aff7b3d8ecac64bfa0b1cc71633a88cf868d9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.txt","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.txt","source_sha":"91edc2d47f90710a9262598b28c90aee7fb52bffcf0d040ffe2535b7694fcf04","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini","source_sha":"c8047ee290a94944481545a78104e9ead1036ca04f965a729ad4a870e7fe69a1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini","source_sha":"daf2ffcab7fb3af60f5dd38256c8e9bb3347d885771ba414da2b4277c8ebce4a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini","source_sha":"8a860f885f6afc18b0d1ff8081d356d56897456298cfd58fc7394ec519f71e83","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini","source_sha":"3e458b639557d33bc2b637fb2f63b88e1cade3dd7543306b96e166c5b50bb08e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini","source_sha":"7b8a607c978ad1758a51d60b04d3bed46a9597661060a6a906b4411abe02e857","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini","source_sha":"ea336e14be5b1b62a6b540070624b6c35cd076b16d170725fc4dacb9754e6790","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini","source_sha":"c8047ee290a94944481545a78104e9ead1036ca04f965a729ad4a870e7fe69a1","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini","source_sha":"daf2ffcab7fb3af60f5dd38256c8e9bb3347d885771ba414da2b4277c8ebce4a","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini","source_sha":"8a860f885f6afc18b0d1ff8081d356d56897456298cfd58fc7394ec519f71e83","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini","source_sha":"3e458b639557d33bc2b637fb2f63b88e1cade3dd7543306b96e166c5b50bb08e","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini","source_sha":"7b8a607c978ad1758a51d60b04d3bed46a9597661060a6a906b4411abe02e857","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini","source_sha":"ea336e14be5b1b62a6b540070624b6c35cd076b16d170725fc4dacb9754e6790","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/README","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/README","source_sha":"5a25e58d433c629316f5a865d025ad50f602343d99bf6c4fd983b6ce09f21828","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/README_es","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/README_es","source_sha":"2c2ca93c048f0ad170829caad82ea311fc69a5abb2bd2524ef1943380d55fc85","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini","source_sha":"b006d05ea125442e3258a76b9e95d28a3488d25f1f652828c470de82aaa9d077","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini","source_sha":"b006d05ea125442e3258a76b9e95d28a3488d25f1f652828c470de82aaa9d077","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_postgui.hal","source_sha":"7191fdb835d3e6de04907348a35e6a744695cba95b9e22e19b26a0d803a698c5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.glade","source_sha":"19c848753644c6fad57a29919604aeec783562441533a659cc93cd7a831cddeb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/plasma.hal","source_sha":"591736242661bd061f3ad3130174feea805a9d3afd514d741c5e61fc47383913","test_id":null,"web_status":"planned"} @@ -875,13 +879,13 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torch.svg","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torch.svg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torch.svg","source_sha":"3fe8a65414e4d8db67ad049c24dc4bcd0afa1de53c479cd0332b2ea59594bd78","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/torches.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_postgui.hal","source_sha":"32d5cfa8c02a1be05348d4b6af621fff3a62e2adf44de5b82d2600b41839198c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini","source_sha":"2f62b1a0e2bcdf2b587e142ea8c4212c28b8024161c38b13e5cb39e15c984ce7","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini","source_sha":"2f62b1a0e2bcdf2b587e142ea8c4212c28b8024161c38b13e5cb39e15c984ce7","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.txt","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.txt","source_sha":"1ab3bb80e449bab939de76b4c43e0749251b2d0abb266bbdfc3450936b5233b2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini","source_sha":"c155ba8047c3011c6ec023dd911fa571ec52b5352b789b7c88542c8d418e15bc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini","source_sha":"7469a0e05ea85c83d99f11ef552482c29d93313a358d8a7801a2eabbae1f9af0","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini","source_sha":"4caf0e746fd09bceafa4f2bdced6a9be063b7ee51334fbb75d4c6914d94db7b9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini","source_sha":"c155ba8047c3011c6ec023dd911fa571ec52b5352b789b7c88542c8d418e15bc","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini","source_sha":"7469a0e05ea85c83d99f11ef552482c29d93313a358d8a7801a2eabbae1f9af0","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini","source_sha":"4caf0e746fd09bceafa4f2bdced6a9be063b7ee51334fbb75d4c6914d94db7b9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.para","source_sha":"29c6fefac9ed01d575e97a84b8efc48f0e3103a4d8daa6d0348b83baa000ad1d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini","source_sha":"a080a9008bef88d61fee5473f8531df64bfe3fd365540e1055e3377ce59f99d9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini","source_sha":"a080a9008bef88d61fee5473f8531df64bfe3fd365540e1055e3377ce59f99d9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.txt","inputs":["linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.txt","source_sha":"6a9bd64b9cc0ff875fe8ab29dcf4a6abfe6fc996f33c74a9128a8a5c70811c50","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade","inputs":["linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/h_buttonlist.glade","source_sha":"3e7468c9b45f41f3c3af05ad39eebc165181dae6eb888590c9b309b99be29dc3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal","inputs":["linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/h_buttonlist.hal","source_sha":"94121fd144fdbe230261586b9519528f5b8cee4bba4efb0c2c54d70e9a326b3b","test_id":null,"web_status":"planned"} @@ -892,26 +896,26 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/README","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/README","source_sha":"6dfd0352ff951bb42b2504d82982ad646bcf9650996919e040fb1655fa478c44","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/boring.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/boring.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/boring.ngc","source_sha":"8b373a5125d30f07caef25a5e8928643255245aa1839d8ddef23bdd7c82e564a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/chamfer.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/chamfer.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/chamfer.ngc","source_sha":"caf3bed8993cb390b0ffdbc8c173562546fa825172d1ce1b1e8f7b5122dc1b3d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal","source_sha":"614ebb8b029a9a234821cc08ae7cdc506b774dde5db8e75966df64f694540df0","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal","source_sha":"c4761c123f7e367bf5cc74a0016340c2dc553ef61a19005af47ec4e05fd54ffb","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal","source_sha":"14065d0eed908856d59c52fe9782d3c487dbba4535b2c4209554c72046eff3c9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe.hal","source_sha":"614ebb8b029a9a234821cc08ae7cdc506b774dde5db8e75966df64f694540df0","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_C.hal","source_sha":"c4761c123f7e367bf5cc74a0016340c2dc553ef61a19005af47ec4e05fd54ffb","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/core_sim_lathe_CW.hal","source_sha":"14065d0eed908856d59c52fe9782d3c487dbba4535b2c4209554c72046eff3c9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/drilling.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/drilling.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/drilling.ngc","source_sha":"69df94bfc1f55b7e803068e75deac4a36d2ea831b24b2f2a730d9ffab7e109bd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/facing.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/facing.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/facing.ngc","source_sha":"76eb4c7d27855d787b7de807bfad1a98b07dbd6df4777c1f0aa2954488a65162","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_lathe.pref","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_lathe.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_lathe.pref","source_sha":"3f0ba81ce7555edd733bc8a279aab9f0149c5c099bafe285b0adf3a8907eff09","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_lathe_c.pref","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_lathe_c.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_lathe_c.pref","source_sha":"63f7d20c0f7f5790e44e541f0a11a554d0acb1a417c57f1fa5ed0590ae08c7dd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/gmoccapy_postgui.hal","source_sha":"c6aacd0c3c91411d03d3368db70d90ebf6c7bbbe00121402d2f86dacf52fd513","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/grooving.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/grooving.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/grooving.ngc","source_sha":"39ce59c5d4f6b926f157a5103984d0066551a92a62320ef6b8171cf73c72d060","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini","source_sha":"b6971dfdf96fb2d502378d143da6c7a2f404fe796f41f96f629b9db15a44bb66","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini","source_sha":"b6971dfdf96fb2d502378d143da6c7a2f404fe796f41f96f629b9db15a44bb66","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.pref","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.pref","source_sha":"3b26904d5578dde8d9618b3d851936e4d3395bcd7f7b05d31407f0a176ecae95","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.tbl","source_sha":"feb0002bb8663770be5987f24add9853042faeadf3af972433c03720c1942775","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini","source_sha":"c2f67186fc6c84f266d2ad1d6fcf487249182a2385f8d3099f51f9fab1cc8bb4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini","source_sha":"df718eefdbd91308b9182f6858150abb8fa4a2d030105db954702c280cddac70","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini","source_sha":"5d7e04fd075e28534afe817e64259a2e7df809d5fdf893f39c9cc5ffcd35ed71","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini","source_sha":"c2f67186fc6c84f266d2ad1d6fcf487249182a2385f8d3099f51f9fab1cc8bb4","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini","source_sha":"df718eefdbd91308b9182f6858150abb8fa4a2d030105db954702c280cddac70","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini","source_sha":"5d7e04fd075e28534afe817e64259a2e7df809d5fdf893f39c9cc5ffcd35ed71","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_c.pref","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_c.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_c.pref","source_sha":"65ef8d72c4be99ee5aa038ece7f2f7f107a0c06c95047fcb09e186815d6d0466","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_cw.pref","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_cw.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_cw.pref","source_sha":"89e009db509cee3e7ab681b0bf294389caa0930712457ac424337a343bf063bf","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini","source_sha":"503bf2241ed1c1f70410015a7f3aab5a922dc571b1ded36f5431c538d5d4e628","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini","source_sha":"503bf2241ed1c1f70410015a7f3aab5a922dc571b1ded36f5431c538d5d4e628","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.pref","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.pref","source_sha":"d9e838aebb01a81108de5efcbb637f4b88725bc6697db3baf0875106e8fdf19b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini","source_sha":"b3d9c8451a9281e9863e30f7d0138d5779028a06d981c2f1bd30bf6c7bded0e0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini","source_sha":"b3d9c8451a9281e9863e30f7d0138d5779028a06d981c2f1bd30bf6c7bded0e0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathehandler.py","source_sha":"dbd025086e24bfaaa83900b84d1416db85fa0d97f9aa48a9f4de424c493425d7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathemacro.ui","source_sha":"e9d946edccc6d809e5efa72f334e1d0efd25fcd86e02c09a77a115d5b3041477","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/lathe_configs/radius.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/lathe_configs/radius.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/lathe_configs/radius.ngc","source_sha":"a96e939049e222ea1bd04e7cdb116e51eb1180b3a080b1b3f325bb3c64d55dd0","test_id":null,"web_status":"planned"} @@ -950,8 +954,8 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/macros/macro_9.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/macros/macro_9.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/macros/macro_9.ngc","source_sha":"b7ede9af0cadff0e49594e270c530f1d2b3af128d0b47b484e1e38bc1bfd4482","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/macros/macro_Instructions.txt","inputs":["linuxcnc/configs/sim/gmoccapy/macros/macro_Instructions.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/macros/macro_Instructions.txt","source_sha":"c8a26259f6e68a2242ce33dd819be96cd18ede964265016dd356e5d84ef191ce","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/macros/on_abort.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/macros/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/macros/on_abort.ngc","source_sha":"e120b55018a8f01b0409a2c0385afec32668e77cf4feeb74cb5e66f3636dde7a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal","source_sha":"5da3e7f6e95f26df831f046a5c7c9ed3e073579748812140a15085dd558b42b0","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini","source_sha":"303f0fb1b9a70ba3cc6dbc11003bed2c59579ddfe2e4d9a300a5fcd4da570e65","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.hal","source_sha":"5da3e7f6e95f26df831f046a5c7c9ed3e073579748812140a15085dd558b42b0","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini","source_sha":"303f0fb1b9a70ba3cc6dbc11003bed2c59579ddfe2e4d9a300a5fcd4da570e65","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gmoccapy_GANTRY_sim.pref","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gmoccapy_GANTRY_sim.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gmoccapy_GANTRY_sim.pref","source_sha":"6b63fa2d6e0a0f09b5ead8b0b329f6ee9df5a3f16f0f55a416d7ca2354b91f61","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gmoccapy_postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gmoccapy_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gmoccapy_postgui.hal","source_sha":"d8de40b38c349012779d9fa30bc1d466635f1ad2c05c9cf3e9a85e7bf64b916c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/tool.tbl","source_sha":"f0c933ba509282003dad7ce1b0d9e7dde58a899fa6463e8ddc113532e42ae567","test_id":null,"web_status":"planned"} @@ -960,11 +964,11 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/README_es","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/README_es","source_sha":"4096945df4926fca88e9cd90cbf54a183c6eea8921f2cd60cc01927f9bee17b8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/postgui.hal","source_sha":"8f7a374778a3100b7f2234f821adeca566f4d0f8d364d760836ed5484539fbe3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.glade","source_sha":"327c8fef2c9ecfb5372160a617156abb06b5a849d4469683c2341530e6d1a251","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini","source_sha":"3c5a9c56f4c50a987f7b2a21b6968ab77eeb586a894f8ffff73dec74eb680092","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.ini","source_sha":"3c5a9c56f4c50a987f7b2a21b6968ab77eeb586a894f8ffff73dec74eb680092","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_panel.hal","source_sha":"69c13f23a5434680e7d0ea69ee78801e697261ddd4c13af6c9f8b10bfde3551f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_postgui.hal","source_sha":"69db8232c9384cffcaec0b07f7616d439e4a63bd23daa9d48f7f24a2c8afa66d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal","source_sha":"f327896d862537f129cf7424e540eb7a7e689a8fbc58521a3e3d6f26c4c1915b","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/scara_sim_4.hal","source_sha":"f327896d862537f129cf7424e540eb7a7e689a8fbc58521a3e3d6f26c4c1915b","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/spindle_sim.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/spindle_sim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/scara/spindle_sim.hal","source_sha":"fa4799af70e6d611efc438fb5e25c360d8163f498e511f443925738f194639c7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/README","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/README","source_sha":"a371181446fdc09de6ebe5d81611c51d8d1e5d91b99f08767db8510b686fa1ab","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/README_es","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/README_es","source_sha":"3ea3f2c3e3605057928e600f233f796b27cd84ebfa0605dd87a4078def2617be","test_id":null,"web_status":"planned"} @@ -975,14 +979,14 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/examples/test-xyzbc.ngc","source_sha":"ac389cfa886a30c2b0fab4f579df2ce2fd101b924a7777747b2bacd67446a900","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal","source_sha":"f62636323218a0cdcdae48dbdf1a8c595365566062122f36e403fd71393ed57e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/sim-xyzac-trt.pref","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/sim-xyzac-trt.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/sim-xyzac-trt.pref","source_sha":"74cc0709e6f6275858d841f2bf03975a709595ad4256fc5dcbc3a928c7cd6a48","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini","source_sha":"af315891e9e561812f267f9c44c752c265ad00c862adbcd7dd42c2b07e60cd38","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini","source_sha":"af315891e9e561812f267f9c44c752c265ad00c862adbcd7dd42c2b07e60cd38","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl","inputs":["linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.tbl","source_sha":"100595ddcdddf0e269a4b6041954f19349b593ffcdaf185fbcff8cde91311176","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/pendant.glade","inputs":["linuxcnc/configs/sim/gmoccapy/pendant.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/pendant.glade","source_sha":"a7095c6742d976bd73c7860f0a5754f8e0604f4d0c24a90638a347d6d67a6dd1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/pendant.hal","inputs":["linuxcnc/configs/sim/gmoccapy/pendant.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/pendant.hal","source_sha":"a52d56ea8675c1ba332d2e46c6efc0d1890cf74395683036e1a3ac200b007baa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/README","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/README","source_sha":"5a25e58d433c629316f5a865d025ad50f602343d99bf6c4fd983b6ce09f21828","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/README_es","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/README_es","source_sha":"aec7a284383822374e8653f5b482fbe84f60c0774ac6e2337b5ce33eff396c09","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy.pref","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy.pref","source_sha":"7c123d22d53e65a3d930b8c41056db551752e4b26f2e50428409fb3a32bd96dc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini","source_sha":"7d53c570ccb85f086e67eb511c28bb9cec47e02cf42395e71bb2ff89e9d0d671","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini","source_sha":"7d53c570ccb85f086e67eb511c28bb9cec47e02cf42395e71bb2ff89e9d0d671","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_postgui.hal","source_sha":"7191fdb835d3e6de04907348a35e6a744695cba95b9e22e19b26a0d803a698c5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.glade","source_sha":"19c848753644c6fad57a29919604aeec783562441533a659cc93cd7a831cddeb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal","inputs":["linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gmoccapy/plasma_config/plasma.hal","source_sha":"591736242661bd061f3ad3130174feea805a9d3afd514d741c5e61fc47383913","test_id":null,"web_status":"planned"} @@ -1012,11 +1016,11 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/README","inputs":["linuxcnc/configs/sim/gscreen/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/README","source_sha":"301b1ba6120d23fd893dad534c1b8fe68b0de310c1131db3d9600b12ad04f018","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/README_es","inputs":["linuxcnc/configs/sim/gscreen/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/README_es","source_sha":"dcfd356d9da5c2ab8e148ff870b348a3f3f58686bc5a8a7b066291dbdbd04bc0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gladevcp-test.ui","inputs":["linuxcnc/configs/sim/gscreen/gladevcp-test.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gladevcp-test.ui","source_sha":"3d9518f31e0479edf63d0b0328e1b0b6180fa17c8c0fd0a9f82886ae3b87638f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen.ini","source_sha":"5501604c0c6d0288cea28720da271fd44900ea50ddcccf6acf0743e7e2daf016","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini","source_sha":"2ffde65bf13a116a14d2b75a841f197cd67f6281c6b5c2c548487e779a166ef0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen.ini","source_sha":"5501604c0c6d0288cea28720da271fd44900ea50ddcccf6acf0743e7e2daf016","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini","source_sha":"2ffde65bf13a116a14d2b75a841f197cd67f6281c6b5c2c548487e779a166ef0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/README","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/README","source_sha":"80364af66e920d0af3f7ac61756e66e771cf552de25f5a642329fdb525c5a28e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/README_es","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/README_es","source_sha":"c0b7f7ace5a5989cd50298666a0ca804f1e1fc14a69a057d88416e6b1cb643a1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini","source_sha":"93faa3f0a5727d1468381add40a7b35ac5e80b44d8c9c17bfb1e18754daa5498","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini","source_sha":"93faa3f0a5727d1468381add40a7b35ac5e80b44d8c9c17bfb1e18754daa5498","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_postgui.hal","source_sha":"df8ba7c940c4116fe0c0ffc9f3f4ac75060b8d321eed07080f8f88099b2440d4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/arrow_down1.png","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/arrow_down1.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/arrow_down1.png","source_sha":"ca17724a0d9c34a1b42a32cd011add598f6b2418814fff49210f2a06f1cbf453","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/arrow_down2.png","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/arrow_down2.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/arrow_down2.png","source_sha":"891d4a7350d51fe3c06a9336e082d47b30d8454e0b87b45eb8a70d922169bc08","test_id":null,"web_status":"planned"} @@ -1053,20 +1057,20 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/trough.png","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/trough.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/trough.png","source_sha":"3981090797aad1eedc681998334f6de8e0f051a47176fcf6060614be28bf8d89","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/up.png","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/up.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/up.png","source_sha":"b25ea4709d5333a6a92d1f10b7905e0f3b4f0bcaf111e57593135d3837e70a8d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/yellow_button2.png","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/yellow_button2.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_theme/gtk-2.0/yellow_button2.png","source_sha":"2f4bb7aa92b34e00ce521f3ee8c740e7a3f9782060b72aa3f6d52ecabb2165c4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini","source_sha":"8b37aef313551ab9dcd3a414d582b399669dfb4375d08fe5ee709bf327c53d43","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini","source_sha":"ceab463ee55d534c84a5abf5b98d0caee56f9ef71ed67e5ceabea84cf998b725","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini","source_sha":"8b37aef313551ab9dcd3a414d582b399669dfb4375d08fe5ee709bf327c53d43","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini","source_sha":"ceab463ee55d534c84a5abf5b98d0caee56f9ef71ed67e5ceabea84cf998b725","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial_postgui.hal","source_sha":"0d8d6fbd3bd04c048d08718b1330f0392bd8d70f51e8953f7a72f74ec68ed9d4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.tbl","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini","source_sha":"94c5bb5c621e8074f96004b1abbe5bc66ee5df6aa672f2cf3542c3d38047ac70","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini","source_sha":"bc459d4d659a562f22da247a2734116000e4c8fa71ea13014ca61885dc5bf2ea","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini","source_sha":"94c5bb5c621e8074f96004b1abbe5bc66ee5df6aa672f2cf3542c3d38047ac70","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini","source_sha":"bc459d4d659a562f22da247a2734116000e4c8fa71ea13014ca61885dc5bf2ea","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal","inputs":["linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_postgui.hal","source_sha":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini","source_sha":"bf9e089a8d61194462bb418efe1176eaf624faee8e42f0cfd791b62b9b906e24","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_mm.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini","source_sha":"f4e86efc8aea695f7c931742a41b48851a29fced4aff1dab67b001934245e297","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini","source_sha":"bf9e089a8d61194462bb418efe1176eaf624faee8e42f0cfd791b62b9b906e24","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini","inputs":["linuxcnc/configs/sim/gscreen/gscreen_mm.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini","source_sha":"f4e86efc8aea695f7c931742a41b48851a29fced4aff1dab67b001934245e297","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_theme/gtk-3.0/gtk.css","inputs":["linuxcnc/configs/sim/gscreen/gscreen_theme/gtk-3.0/gtk.css"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_theme/gtk-3.0/gtk.css","source_sha":"e51b16bef0233d69de0a69f79003b3281c2ac3b403d4edb3ad59c99d3fce8f29","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/gscreen_theme/gtk-3.0/gtkrc","inputs":["linuxcnc/configs/sim/gscreen/gscreen_theme/gtk-3.0/gtkrc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/gscreen_theme/gtk-3.0/gtkrc","source_sha":"99d8d1cb4988615a6af388eff03ddb370613d283ce53b1f2f01f9ad8419871fd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/README","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/README","source_sha":"68ae909e13dddb01e3fa63e0a60749d17b2e4c4727a847a67d439cc0e8df86f8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/README_es","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/README_es","source_sha":"0cc6089fbbfedf0c8c8808f2047592a300b7289bfe637c7abf3c294c15347756","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini","source_sha":"4c807ff8b3faa4e97574c4c7add99fe6b7654e980bb73737e46f563b5170b422","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini","source_sha":"4c807ff8b3faa4e97574c4c7add99fe6b7654e980bb73737e46f563b5170b422","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe-fanucy.tbl","source_sha":"c2bbe843627abe1fac88d91c92c67d34befa62fb80ae043cbc3d045bcd33caa3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/lathe_postgui.hal","source_sha":"42635f5a9b67b72db8f2e83b3e0318dd8887d930add4fa2059ecb80654444623","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/remap.py","inputs":["linuxcnc/configs/sim/gscreen/industrial_lathe_wear/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/remap.py","source_sha":"35e925376904264fc83dfb496f9c092b0d01fbba1bd929a98bc031fb1082fb00","test_id":null,"web_status":"planned"} @@ -1078,10 +1082,10 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/README_es","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/README_es","source_sha":"02d46e39a6fcb42da2ff4914caa861df42a7fe1094850bb3dfd94013749f0391","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/gremlin_view.ui","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/gremlin_view.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/gremlin_view.ui","source_sha":"e1fe2cbb71145031e8c31059fedefedc8097f67954adb3ed881f240faed1a8c6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui.ui","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui.ui","source_sha":"750620e4b79b57a6cf057d0e39170a4d06f088fa934f4f7635d132f09e018fe3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini","source_sha":"01ea7f117f038a59dccb25a01c4d693222e807474e2e6aec338975aa6bed5841","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini","source_sha":"01ea7f117f038a59dccb25a01c4d693222e807474e2e6aec338975aa6bed5841","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.txt","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.txt","source_sha":"3a0f9af9c1cc7ab4c1d9724fd07f72eb9f9e53507a080211548297c2b5cd07c4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_es.txt","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_es.txt","source_sha":"3ac48862b08636054c5f634bb78ea358831786fdb7cd0878d6f0b0ab4fd85946","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini","source_sha":"d6fd8d018be34826fb7bccdad4987a8968dbfdf7a2b5794b75c809c56a18ad63","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini","source_sha":"d6fd8d018be34826fb7bccdad4987a8968dbfdf7a2b5794b75c809c56a18ad63","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.txt","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.txt","source_sha":"4f0ff4ebd412b55296004ae9ec7502ed29e111c7b11fa910dd0315e326b1451f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard_es.txt","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard_es.txt","source_sha":"f18d056a7a344c1416053bbe4693723d83b56b6971871c5f3f41d2e5067815f1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_popupkeyboard.ui","inputs":["linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_popupkeyboard.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_popupkeyboard.ui","source_sha":"395a07ca51c30ae53007565c64d888c3e3ae812cbc72bebbda30a72ba707e1e3","test_id":null,"web_status":"planned"} @@ -1092,7 +1096,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/macros/laserzero.ngc","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/macros/laserzero.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/macros/laserzero.ngc","source_sha":"9bbe0f1ec8e77753df57ac833f335c6a9c5004443a3923eabcf3035555868210","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/macros/tool_sensor.ngc","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/macros/tool_sensor.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/macros/tool_sensor.ngc","source_sha":"1f739f2812627f723277b31736801769293a5fec1de412c17698d4fd81e2c147","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/macros/touch_plate.ngc","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/macros/touch_plate.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/macros/touch_plate.ngc","source_sha":"0b64da6a32490aa084527e69b703d5d4d28bd5c5515e01d65ef62ff5e297541a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini","source_sha":"d1ed1b802162281fc742b0146be7bb3b5daba2fc944d4b4c8f8ccdb096cffc77","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini","source_sha":"d1ed1b802162281fc742b0146be7bb3b5daba2fc944d4b4c8f8ccdb096cffc77","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-down-disable.png","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-down-disable.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-down-disable.png","source_sha":"9927cdf4022b8f6bd4ce782a56bcd8d07952c5af58606f4cb5e56d8c3d9ee6f2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-down.png","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-down.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-down.png","source_sha":"c575aa2013361e270c6883ce9d2e719eff5847135e97810ff220660aedb84e4c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-left.png","inputs":["linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-left.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon_theme/gtk-2.0/arrow/arrow-left.png","source_sha":"3e7f736c5b72238346039b0e7f80f2241a311a848d5487abd347bda3ab20e128","test_id":null,"web_status":"planned"} @@ -1200,8 +1204,8 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/custom.hal","inputs":["linuxcnc/configs/sim/gscreen/spartan/custom.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/custom.hal","source_sha":"75712730030c086e0d963e3e536b84afeb45567be1a180b0fb61dba5a366f09d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal","inputs":["linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/custom_postgui.hal","source_sha":"250042edf67f396f43004ebe55953a163519c3d5a0eacb649039102af66b7a9d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal","inputs":["linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/sim_hardware.hal","source_sha":"d08b93cc41428d35794cdd867acdc8b60c8a935b3ad4f4c38e715959b78e56e6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal","inputs":["linuxcnc/configs/sim/gscreen/spartan/spartan.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal","source_sha":"f1e74499c2521c81b861d26008c8941140bf35d4498c921ab00d992999697b67","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini","inputs":["linuxcnc/configs/sim/gscreen/spartan/spartan.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini","source_sha":"eddaf2a70b2e1147f8e4cb781abbb56a87243fdfad4932fc8ddecbeb5f5d42e1","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal","inputs":["linuxcnc/configs/sim/gscreen/spartan/spartan.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/spartan.hal","source_sha":"f1e74499c2521c81b861d26008c8941140bf35d4498c921ab00d992999697b67","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini","inputs":["linuxcnc/configs/sim/gscreen/spartan/spartan.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini","source_sha":"eddaf2a70b2e1147f8e4cb781abbb56a87243fdfad4932fc8ddecbeb5f5d42e1","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/spartan/tool.tbl","inputs":["linuxcnc/configs/sim/gscreen/spartan/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/spartan/tool.tbl","source_sha":"05d9bf3abc2618b7921568926a546054ff4f15c8e666373a3751f11c3a25f626","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/gscreen/vcp_box.glade","inputs":["linuxcnc/configs/sim/gscreen/vcp_box.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/gscreen/vcp_box.glade","source_sha":"a93aab6499e1c7b0a9062129ebcf6e187d75b84b1b6814ec4d2bf5001f9792b8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/hitcounter.py","inputs":["linuxcnc/configs/sim/hitcounter.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/hitcounter.py","source_sha":"0c845c646e72f859621081e2d2ce43232270f166e615014fb8610bbc77b9e988","test_id":null,"web_status":"planned"} @@ -1219,76 +1223,76 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/README_es","inputs":["linuxcnc/configs/sim/pyvcp_demo/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/README_es","source_sha":"aabf2f022dbb3d9f22beaba3a846b1104aa99ecea48b5a8b27ef915d302de3ff","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/custom.hal","inputs":["linuxcnc/configs/sim/pyvcp_demo/custom.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/custom.hal","source_sha":"5038331daf744d4d816302386dabff9f7a729802f3e19572c7e59d4d90f77c7f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.hal","source_sha":"40bf9193047fbb8fa2cb173fcd10db1315dd93cade097bf81991a1bfed599e2a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini","source_sha":"75dc8d6f9dc89d6725aabdb7c59cb0965d2d054b2e1e4baa71de3538b4f77c85","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini","source_sha":"75dc8d6f9dc89d6725aabdb7c59cb0965d2d054b2e1e4baa71de3538b4f77c85","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.xml","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.xml","source_sha":"2d2d72e2b69d018bf54199807379108c4e2394cc0e7d6fa1e77e4ef41ebeec42","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini","source_sha":"5ec9203047e509b1e633dadcebba91909c3aee8ad65465ea2c0bd8bc409bb9a0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini","source_sha":"5ec9203047e509b1e633dadcebba91909c3aee8ad65465ea2c0bd8bc409bb9a0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.xml","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.xml","source_sha":"c50205f590aba77eb37c46e2686405691b296bc1ec467660119de70296d038b9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.hal","source_sha":"fd9d90c0e7987658854ce5993298bd07cbbd2d1f39e66ad203277f6d3f354d76","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini","source_sha":"4da521d1e8bc2fdb0155f86afc1b1c0dffdd31402ade0ab7519bbfd30145cfbe","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini","source_sha":"4da521d1e8bc2fdb0155f86afc1b1c0dffdd31402ade0ab7519bbfd30145cfbe","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_1.xml","source_sha":"dfabd546e3dd65731f4f67eb7c7209064304176c0d237042007bdf3935fbb579","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml","inputs":["linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab_2.xml","source_sha":"d19f45818aa34d2914c3ebf02e626810e0a660491ba9f1eb00fa601f7e90d552","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/pyvcp_demo/sim_mm.tbl","inputs":["linuxcnc/configs/sim/pyvcp_demo/sim_mm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/pyvcp_demo/sim_mm.tbl","source_sha":"1816cbb02cc6585d86676bb2d88f85b10b439cf42212e0b4c144f3846a3dcf30","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini","inputs":["linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini","source_sha":"0b06ae360b37859343763adb960e6304a812ebc658a2056fc4df280ccd793c37","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini","inputs":["linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini","source_sha":"0b06ae360b37859343763adb960e6304a812ebc658a2056fc4df280ccd793c37","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/gantry/sim.tbl","inputs":["linuxcnc/configs/sim/qtaxis/gantry/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/gantry/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/428remap.ngc","inputs":["linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/428remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/428remap.ngc","source_sha":"4cce2dc177f32e7149bc755dca78798d9f0e64970919042ac03ce3adcf1e84d4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/429remap.ngc","inputs":["linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/429remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/429remap.ngc","source_sha":"892fd318d9edd64728aa0f267b07206eb58b22ebccb8d7091530fab925250df8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/430remap.ngc","inputs":["linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/430remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/remap_subs/430remap.ngc","source_sha":"6a1f6fcc04558897515642a1cbe8584d849f932fdd24607b776bec719cb82d70","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini","inputs":["linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini","source_sha":"1f4fa4d1a1ccd5cf299948b824101430bd1a41cb8ea74a3311373ce9ef17a7c1","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini","inputs":["linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.ini","source_sha":"1f4fa4d1a1ccd5cf299948b824101430bd1a41cb8ea74a3311373ce9ef17a7c1","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl","inputs":["linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/non-trivial/scara/scara.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal","inputs":["linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/xyz/check_constraints.hal","source_sha":"6ddb9e14e9e83a7eb969b744c80e9f070a0cbc7801d746902d6d9d8deeed0a80","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini","inputs":["linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini","source_sha":"c764f544082a217a19a9fc26d0552f209dcb4548e80d2f544b1e00489472819a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini","inputs":["linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini","source_sha":"c764f544082a217a19a9fc26d0552f209dcb4548e80d2f544b1e00489472819a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/xyz/qtvcp_postgui.hal","source_sha":"3cb43ba387140cb556463a8584bac7291fea5bea2a92195f5328aeb8a75b66f7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtaxis/xyz/sim.tbl","inputs":["linuxcnc/configs/sim/qtaxis/xyz/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtaxis/xyz/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/README","inputs":["linuxcnc/configs/sim/qtdragon/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/README","source_sha":"ea0a11d3bd931df2528ff6c13125289917ed8b7988029b389603ce6c1f43628b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/README","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/README","source_sha":"b7744c38dcb9e0becbc3e82fadb01894efb8e9579ad7f0869cb070f1febdbc92","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc","source_sha":"eba521d144e00f7753560333d6a81967e2b23a4bef497ee118b990d0cbc675ef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_postgui.hal","source_sha":"aaf710d77b5b2648b968ee48126589256f01222a07d49c3df27c98640ad2665a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini","source_sha":"6e37414ca98a0a0551b8b54980fbc77417b618aeba039e3c38ac4c4b9b1b6b68","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini","source_sha":"f657495b776ab5f371bf59106bbbfa230f1cbc72061caaf036bc6b38fbb79421","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini","source_sha":"7835bceebe51c9881328896c9f4a6fe4fc91e49a025a26a95e6b7c1716e2edf2","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini","source_sha":"6e37414ca98a0a0551b8b54980fbc77417b618aeba039e3c38ac4c4b9b1b6b68","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini","source_sha":"f657495b776ab5f371bf59106bbbfa230f1cbc72061caaf036bc6b38fbb79421","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini","source_sha":"7835bceebe51c9881328896c9f4a6fe4fc91e49a025a26a95e6b7c1716e2edf2","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/tool.tbl","source_sha":"ae25e80a7bb1642cb3c20b1678fa8ed2f6a1079346fb856ab94c8ebdb7b88d3f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/README","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/README","source_sha":"f2bb1356d59a6977a8bfc0cc283b4ce8087d148975d05b645af89c90365ff210","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini","source_sha":"3000ec032956226a8281fe0e76304c56d3d6d4d0fbef6b7b2c226a15f2eb9674","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini","source_sha":"3000ec032956226a8281fe0e76304c56d3d6d4d0fbef6b7b2c226a15f2eb9674","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_postgui.hal","source_sha":"aaf710d77b5b2648b968ee48126589256f01222a07d49c3df27c98640ad2665a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/tool.tbl","source_sha":"1ddc8b44ba3f7ed43f7e98472795d4889fccf47fc7ed085d0a4ceb0dbf6525d9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/README","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/README","source_sha":"2f613474c5fff0394ede51b7be368c27ec08e537e55448369b03533c2a5d48de","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc","source_sha":"eba521d144e00f7753560333d6a81967e2b23a4bef497ee118b990d0cbc675ef","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini","source_sha":"e36b608260f3eca2f2439d83b0e32786a2d1bd5f395c3705ee3fe3a1fa0ad94c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini","source_sha":"3565f4863be6f1dc25ef216c8a6f96e69f133681676131ab883007c80aef7c66","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini","source_sha":"e36b608260f3eca2f2439d83b0e32786a2d1bd5f395c3705ee3fe3a1fa0ad94c","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini","source_sha":"3565f4863be6f1dc25ef216c8a6f96e69f133681676131ab883007c80aef7c66","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_postgui.hal","source_sha":"aaf710d77b5b2648b968ee48126589256f01222a07d49c3df27c98640ad2665a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini","source_sha":"592aaee3190a65fab8b200b45f5ec221ab58edf0b754e2db227352cebea0dae2","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini","source_sha":"592aaee3190a65fab8b200b45f5ec221ab58edf0b754e2db227352cebea0dae2","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/tool.tbl","source_sha":"ae25e80a7bb1642cb3c20b1678fa8ed2f6a1079346fb856ab94c8ebdb7b88d3f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/.gitignore","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/.gitignore"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/.gitignore","source_sha":"0bae5388404466f1bbed28acd55bda4b108a87d88795cea78ec5608b6f578359","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/README","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/README","source_sha":"10ebbcdd3a2f7adf8ef7aeebbd1c9ad535f323cde72dee1d2166daed600bf894","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal","source_sha":"dd4e5d5f1485462f4de861b637535cf7ab0f3fe1b3611e1b574be4c977b35dfb","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal","source_sha":"f292b7245fe5a1da22666f618fa7e07032268d5919fb4a8d9ba175dfc635c505","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAB.hal","source_sha":"dd4e5d5f1485462f4de861b637535cf7ab0f3fe1b3611e1b574be4c977b35dfb","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/core_sim_XYZAC.hal","source_sha":"f292b7245fe5a1da22666f618fa7e07032268d5919fb4a8d9ba175dfc635c505","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/on_abort.ngc","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/on_abort.ngc","source_sha":"eba521d144e00f7753560333d6a81967e2b23a4bef497ee118b990d0cbc675ef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_postgui.hal","source_sha":"aaf710d77b5b2648b968ee48126589256f01222a07d49c3df27c98640ad2665a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini","source_sha":"d5597a9bc8ef786bebd2dbc79300253117e814e214e17d067eddc1049ac1cf95","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini","source_sha":"c8ec9fc577cee73a46981d2a7c5eaebc596bddba19b395b87eb0e4eba2a0c3ba","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini","source_sha":"b25b195fd6d211053b3eb091a513c01ea83550969a29c6b446fdbb2577c1c7a2","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini","source_sha":"d5597a9bc8ef786bebd2dbc79300253117e814e214e17d067eddc1049ac1cf95","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini","source_sha":"c8ec9fc577cee73a46981d2a7c5eaebc596bddba19b395b87eb0e4eba2a0c3ba","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini","source_sha":"b25b195fd6d211053b3eb091a513c01ea83550969a29c6b446fdbb2577c1c7a2","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/simulated_home.hal","source_sha":"74b8a8952dc8c74ea5901e1414244f83da5fb246b727244738d62da5a4530a40","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl","inputs":["linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/tool.tbl","source_sha":"ae25e80a7bb1642cb3c20b1678fa8ed2f6a1079346fb856ab94c8ebdb7b88d3f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/README","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/README","source_sha":"442a77299a824942888e34490056ffdc84eacb29d9c61609237b4f8694c0b1fb","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal","source_sha":"dd4e5d5f1485462f4de861b637535cf7ab0f3fe1b3611e1b574be4c977b35dfb","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal","source_sha":"f292b7245fe5a1da22666f618fa7e07032268d5919fb4a8d9ba175dfc635c505","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAB.hal","source_sha":"dd4e5d5f1485462f4de861b637535cf7ab0f3fe1b3611e1b574be4c977b35dfb","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/core_sim_XYZAC.hal","source_sha":"f292b7245fe5a1da22666f618fa7e07032268d5919fb4a8d9ba175dfc635c505","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc","source_sha":"eba521d144e00f7753560333d6a81967e2b23a4bef497ee118b990d0cbc675ef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_postgui.hal","source_sha":"8520b2e4b5735a106e6276e8a6db833bf1e8202025d1ec897882e7dd6c76e156","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini","source_sha":"6cfb7b2c847368e117d28ecd99027c4158ed2e02a08bbba787bee73bd1f3ad7d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini","source_sha":"da745eb5892bbda71c4555b11c50bc8ff9f32a28f97a51951a892b4de5604fcc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini","source_sha":"9f9f7b2a62ebd1cf0fffa4d97af9dca42bc25d9678ee52978b4f24d10df7daa7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini","source_sha":"c836bd0309d143fa80a70fa37c1e92714437d5b3931ad50f47aad820bf597253","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini","source_sha":"6cfb7b2c847368e117d28ecd99027c4158ed2e02a08bbba787bee73bd1f3ad7d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini","source_sha":"da745eb5892bbda71c4555b11c50bc8ff9f32a28f97a51951a892b4de5604fcc","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini","source_sha":"9f9f7b2a62ebd1cf0fffa4d97af9dca42bc25d9678ee52978b4f24d10df7daa7","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini","source_sha":"c836bd0309d143fa80a70fa37c1e92714437d5b3931ad50f47aad820bf597253","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/tool.tbl","source_sha":"ae25e80a7bb1642cb3c20b1678fa8ed2f6a1079346fb856ab94c8ebdb7b88d3f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/README","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/README","source_sha":"8ca3441175567cf8d69f96047ecca9d07c5362a86eeb2a6b50973e9306197f76","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc","source_sha":"eba521d144e00f7753560333d6a81967e2b23a4bef497ee118b990d0cbc675ef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/probe_points.txt","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/probe_points.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/probe_points.txt","source_sha":"54ebb6d39a58de46edf61029af39c5bfc43bace0cc8030d4fcd8b6d75c12f666","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_postgui.hal","source_sha":"8520b2e4b5735a106e6276e8a6db833bf1e8202025d1ec897882e7dd6c76e156","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini","source_sha":"7285f86b7a2d30318c529985c0f34851e017ce69a23ca06ffb456d9d422f7503","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini","source_sha":"7285f86b7a2d30318c529985c0f34851e017ce69a23ca06ffb456d9d422f7503","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl","inputs":["linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/tool.tbl","source_sha":"ae25e80a7bb1642cb3c20b1678fa8ed2f6a1079346fb856ab94c8ebdb7b88d3f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/.gitignore","inputs":["linuxcnc/configs/sim/qtplasmac/.gitignore"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/.gitignore","source_sha":"fc52139c5549947da51fabf3b43bfa7ba54b92573ad3151632924f8d82bf21f8","test_id":null,"web_status":"planned"} @@ -1303,10 +1307,10 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/metric_tool.tbl","inputs":["linuxcnc/configs/sim/qtplasmac/metric_tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/metric_tool.tbl","source_sha":"f14789a3a632ac15a1d28461dcb453335c4cf44e09c5371ff55f3f4f6f2aeb31","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac-imperial.prefs","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac-imperial.prefs"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac-imperial.prefs","source_sha":"1c0ab00a7c2b200e2a0ae08141dab8699224094f0ccd1a040ff22331e4b7327b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac-metric.prefs","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac-metric.prefs"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac-metric.prefs","source_sha":"939df5bebe3ff88154734dd93b7ae79993db5c8eb748b3f74fbf38b6e35de746","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc","source_sha":"adff77feb496f8c9c97763b1f7ecff79f8c9d8c81c12c68326dae5124c0bbf4a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc","source_sha":"adff77feb496f8c9c97763b1f7ecff79f8c9d8c81c12c68326dae5124c0bbf4a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_l_imperial.ini","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_l_imperial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_l_imperial.ini","source_sha":"2b563e2a090572d2bf02256b8dc3c99054fb0388167482ede5ce7ce5932db898","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_l_metric.ini","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_l_metric.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_l_metric.ini","source_sha":"abe6e751f739076432b586af48512946175298676e5ed23d6a30e1dac77958ee","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc","source_sha":"b44c3c811992f6fc531b07e0ee1ce6504868d42e91a9778231a565c520193b11","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc","source_sha":"b44c3c811992f6fc531b07e0ee1ce6504868d42e91a9778231a565c520193b11","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_p_imperial.ini","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_p_imperial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_p_imperial.ini","source_sha":"7e45dee1b8eec3ae9eea1ddf2eb9a47e40fb0fe32dcd93a126441d4cfd1d62b0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_p_metric.ini","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_p_metric.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_p_metric.ini","source_sha":"52b0aa0d4132f0fdfad5af82dbef598d33f655e3f65c721cd6e3c231146dfbdf","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/qtplasmac_s_imperial.ini","inputs":["linuxcnc/configs/sim/qtplasmac/qtplasmac_s_imperial.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/qtplasmac_s_imperial.ini","source_sha":"00694329d1f037d0f7a51a246b04d1743b9b4ba2983acf1edddd88fd9161d48f","test_id":null,"web_status":"planned"} @@ -1315,7 +1319,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/sim_no_stepgen.tcl","inputs":["linuxcnc/configs/sim/qtplasmac/sim_no_stepgen.tcl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/sim_no_stepgen.tcl","source_sha":"b096d1bf97eebadfb80b36862550329871540fa411bd2de911e3c8caf67b59e5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/sim_postgui.hal","inputs":["linuxcnc/configs/sim/qtplasmac/sim_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/sim_postgui.hal","source_sha":"f8bc180767d5b48e4380849cd83702df37fbdb9be4630d5382c3ce96500ea514","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtplasmac/sim_stepgen.tcl","inputs":["linuxcnc/configs/sim/qtplasmac/sim_stepgen.tcl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtplasmac/sim_stepgen.tcl","source_sha":"04af6a0db650bb9bd52b9fa6f483fc683fc38d812a49371f0278691831858004","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qttouchy/qttouchy.ini","inputs":["linuxcnc/configs/sim/qttouchy/qttouchy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qttouchy/qttouchy.ini","source_sha":"1398796a9ef4d41bf2d9841656b588dd12818cfac9e390a8fd9d6aa6e2185acc","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qttouchy/qttouchy.ini","inputs":["linuxcnc/configs/sim/qttouchy/qttouchy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qttouchy/qttouchy.ini","source_sha":"1398796a9ef4d41bf2d9841656b588dd12818cfac9e390a8fd9d6aa6e2185acc","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qttouchy/qttouchy.pref","inputs":["linuxcnc/configs/sim/qttouchy/qttouchy.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qttouchy/qttouchy.pref","source_sha":"5968e7692d37e00dc18af4fbd1c51997e2bd3cbc01ef53213ca73bbedd8fe7a3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qttouchy/qtvcp_postgui.hal","source_sha":"01a032ab845c393808affdbae13cb3c33682600aec658a368706fce077e4ae83","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qttouchy/sim.tbl","inputs":["linuxcnc/configs/sim/qttouchy/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qttouchy/sim.tbl","source_sha":"feb2d8dd63bd34f9e547d4e622434b102241376a67e8f48cd693e8ae6b9b7d03","test_id":null,"web_status":"planned"} @@ -1323,11 +1327,11 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/README","inputs":["linuxcnc/configs/sim/qtvcp_screens/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/README","source_sha":"fc50890c3063e49f1a432b303fa1a76aefff4b12a860e7970fadfa9d610f3688","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/README_es","inputs":["linuxcnc/configs/sim/qtvcp_screens/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/README_es","source_sha":"25167e54063b6cd0e90eac07de6a5369f95726b91d077fe5fda75aceefb650c4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/background.png","inputs":["linuxcnc/configs/sim/qtvcp_screens/background.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/background.png","source_sha":"0a312274b434fc617c5c8b5f3632eba933a765ec58911f1bc32a2bf0bc1939cc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/blender.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/blender.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/blender.ini","source_sha":"15fc1681185d59a5f9d8ae14c2d9773bf749373bd6c71b6c614607ce7f35393d","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/blender.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/blender.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/blender.ini","source_sha":"15fc1681185d59a5f9d8ae14c2d9773bf749373bd6c71b6c614607ce7f35393d","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/check_constraints.hal","source_sha":"6ddb9e14e9e83a7eb969b744c80e9f070a0cbc7801d746902d6d9d8deeed0a80","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/README","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/README","source_sha":"68ae909e13dddb01e3fa63e0a60749d17b2e4c4727a847a67d439cc0e8df86f8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/README_es","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/README_es","source_sha":"0cc6089fbbfedf0c8c8808f2047592a300b7289bfe637c7abf3c294c15347756","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini","source_sha":"378d5e9e04608240a6884a011ec32caf8de0e3d67bae6b568f33e9e292e94ce5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini","source_sha":"378d5e9e04608240a6884a011ec32caf8de0e3d67bae6b568f33e9e292e94ce5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/lathe-wear.tbl","source_sha":"8f7a76bd4d165fa329101f45b687ef17eab72bc2ced199214a8a203e5654650e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/qtvcp_postgui.hal","source_sha":"d1d2ef2b59e7cc76e61eb3d911bc303035e1d37f1976a245ab305ec74554847f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/remap.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/remap.py","source_sha":"62ad98d348b4cee74a397444d7ba9558823e83479e6ef3e5fb49bf932074f820","test_id":null,"web_status":"planned"} @@ -1336,10 +1340,10 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/428remap.ngc","inputs":["linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/428remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/428remap.ngc","source_sha":"4cce2dc177f32e7149bc755dca78798d9f0e64970919042ac03ce3adcf1e84d4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/429remap.ngc","inputs":["linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/429remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/429remap.ngc","source_sha":"892fd318d9edd64728aa0f267b07206eb58b22ebccb8d7091530fab925250df8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/430remap.ngc","inputs":["linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/430remap.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/remap_subs/430remap.ngc","source_sha":"6a1f6fcc04558897515642a1cbe8584d849f932fdd24607b776bec719cb82d70","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini","source_sha":"1e6a080a7718813d9946acdd7cf7c033e896a318702a5dc5f86f8d45012b2aea","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini","source_sha":"7235c5081d278551bff8b2b30bd577175251f5dbc81c9dcd4d64c4cb3c832858","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini","source_sha":"0c97b43e267300f8565a601fe578d6239b9c5eee3f2122ccfa4b536faeffb254","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini","source_sha":"51b5cb7c790d2eb07550ed1e5ee77314133ab99628c23e7cbee27eaf3466bd2a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini","source_sha":"1e6a080a7718813d9946acdd7cf7c033e896a318702a5dc5f86f8d45012b2aea","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini","source_sha":"7235c5081d278551bff8b2b30bd577175251f5dbc81c9dcd4d64c4cb3c832858","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini","source_sha":"0c97b43e267300f8565a601fe578d6239b9c5eee3f2122ccfa4b536faeffb254","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini","source_sha":"51b5cb7c790d2eb07550ed1e5ee77314133ab99628c23e7cbee27eaf3466bd2a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/lathe-wear.tbl","source_sha":"8f7a76bd4d165fa329101f45b687ef17eab72bc2ced199214a8a203e5654650e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/axis-16x16.png","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/axis-16x16.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/axis-16x16.png","source_sha":"e04bd399be0fdcc393f74fa1b7c76f3856e2cff1cc803af317f35be42a1f9ed0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/axis-24x24.png","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/axis-24x24.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/axis-24x24.png","source_sha":"6e93c66f952cc36e060eea621afb37547bd65a12b8cedfbe85125aa8a875989d","test_id":null,"web_status":"planned"} @@ -1379,67 +1383,67 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/uparrow.xbm","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/uparrow.xbm"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/images/uparrow.xbm","source_sha":"8e4f0d76206b159d88e119560f2d2cb7c0058879b12d69ef8e7109bae50c5d4c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis.ui","source_sha":"611dfe5ab7a64fa72bf1945fb9e6950487c7e74d28277a86397c8c5f19626fc3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis/qtaxis_handler.py","source_sha":"c1e7da37297c14f774e496fa8066552af1f54eb02a5a084a91ed03813b061900","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini","source_sha":"96607f9e45ebb60e6c8c30a3b827f33273159780e31b6e6dcd187e69d9316ee2","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini","source_sha":"96607f9e45ebb60e6c8c30a3b827f33273159780e31b6e6dcd187e69d9316ee2","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtvcp_postgui.hal","source_sha":"d1d2ef2b59e7cc76e61eb3d911bc303035e1d37f1976a245ab305ec74554847f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/remap.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/remap.py","source_sha":"62ad98d348b4cee74a397444d7ba9558823e83479e6ef3e5fb49bf932074f820","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/toplevel.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/toplevel.py","source_sha":"38a0a17d08adcdc6891df688ae7454c8376f3be0a4c98f49bb19c3588301347b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini","source_sha":"a7e3781694cca98ef9451e2100fa213380088ebe750eea1935e5db09792a4264","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini","source_sha":"64b856e76d997a0096533b198666109c059eea4b02e2ac3f3967cef22667ccb9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini","source_sha":"ec8344fad2445df3a8822c624dd0aa514e3900ba60879c5443a5d6f7c495f84a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini","source_sha":"3f1ea1c180d85118c09a821ea03b007fc8901c40685148a77714c76278db185b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini","source_sha":"a49b1cf91a6fb17c5bbb80eea44b6c46e76ae182e7e3ac67b96b4fab2cfaea88","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini","source_sha":"a7e3781694cca98ef9451e2100fa213380088ebe750eea1935e5db09792a4264","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini","source_sha":"64b856e76d997a0096533b198666109c059eea4b02e2ac3f3967cef22667ccb9","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini","source_sha":"ec8344fad2445df3a8822c624dd0aa514e3900ba60879c5443a5d6f7c495f84a","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini","source_sha":"3f1ea1c180d85118c09a821ea03b007fc8901c40685148a77714c76278db185b","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini","source_sha":"a49b1cf91a6fb17c5bbb80eea44b6c46e76ae182e7e3ac67b96b4fab2cfaea88","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/README","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/README","source_sha":"a4addd5c5f1c9bdc1be886c070cd4f6796528f17065bd0ddbfa907fc6a63e485","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal","source_sha":"54fe4002d5db8db0d8e365b63b747602f34ec955c372023df9c848f3529e10a2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal","source_sha":"e8e99f55218eee9219cac7d049f35a7a8024de99ce1117cce9a797b746434b43","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/core_sim.hal","source_sha":"54fe4002d5db8db0d8e365b63b747602f34ec955c372023df9c848f3529e10a2","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/gantrysim.hal","source_sha":"e8e99f55218eee9219cac7d049f35a7a8024de99ce1117cce9a797b746434b43","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/on_abort.ngc","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/on_abort.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/on_abort.ngc","source_sha":"eba521d144e00f7753560333d6a81967e2b23a4bef497ee118b990d0cbc675ef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/qt_auto_probe_tool.ngc","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/qt_auto_probe_tool.ngc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/qt_auto_probe_tool.ngc","source_sha":"b1deafc9a83baaa38e7b130afd1ef40ed912a0d80195fdbc7ade0c8a3d157d9a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/remap.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/remap.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/remap.py","source_sha":"9abca6500672c670a292402c0962aadfce81da833f7777bf88b80c7ec4f772a4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/stdglue.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/stdglue.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/stdglue.py","source_sha":"cb47811db72032c63ecafd2cc06a395a1298f0b9937638ec59eecf88b9e8bcb1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/toplevel.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/toplevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/python/toplevel.py","source_sha":"7dfdbf0cbe04515b0e67c2a23a3d9946c13b10a25b008c3a7150912160004ff9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini","source_sha":"103a9d0f4c329e00d532fcf0f3ef1e90a37f4476b8950a2b52325d8a42bc4b91","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini","source_sha":"86f2c3f594d0c4bc03da44b9b9ad1445782a9290c8024837a77b83a49e3c55de","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini","source_sha":"c2b23e16477e4de6f3cbd6cdbca56f4a0c80f2482648ee48493349326ef9f1f2","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini","source_sha":"103a9d0f4c329e00d532fcf0f3ef1e90a37f4476b8950a2b52325d8a42bc4b91","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini","source_sha":"86f2c3f594d0c4bc03da44b9b9ad1445782a9290c8024837a77b83a49e3c55de","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini","source_sha":"c2b23e16477e4de6f3cbd6cdbca56f4a0c80f2482648ee48493349326ef9f1f2","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd_postgui.hal","source_sha":"d22c9120006b521cfccacba2e57d26db32c1a48f43d168f5c9b39b053d322b87","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini","source_sha":"c52570c11f2c503a5aa4ac054fe751035a4d95951c8a24d357d544b08674d8cd","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini","source_sha":"c52570c11f2c503a5aa4ac054fe751035a4d95951c8a24d357d544b08674d8cd","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui.hal","source_sha":"f74e45d4088ab9fe2f5c61d858826bea41d75f29dc5d1b9b6dbc5a3cf52fee36","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_postgui_ya.hal","source_sha":"e1e505604c05f1349de89dd9db77ea42d38b6c10cd2a60292b6693c5318bb77e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini","source_sha":"8919a7050ba4357c8e663c51a761fe6d78ff6d7da1e820800eb95e3319cefb64","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini","source_sha":"416ec9cb44f3c9f301d874b5d7e860d82bd460633902e3bcc9037d262a464e9b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini","source_sha":"8b72d1ec92b54e2d5dcf333d5638907141340f942e7e1cbfb26be22d8a28e8aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini","source_sha":"a301f964957d63716ac527504ab80d627161ff9d8a57b6b77f4ae59f12798a5c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini","source_sha":"1f2b5583b7e1d1ef0339f0a05e8bac2a6d503cfbf977127de64738926c8cc161","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini","source_sha":"8919a7050ba4357c8e663c51a761fe6d78ff6d7da1e820800eb95e3319cefb64","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini","source_sha":"416ec9cb44f3c9f301d874b5d7e860d82bd460633902e3bcc9037d262a464e9b","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini","source_sha":"8b72d1ec92b54e2d5dcf333d5638907141340f942e7e1cbfb26be22d8a28e8aa","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini","source_sha":"a301f964957d63716ac527504ab80d627161ff9d8a57b6b77f4ae59f12798a5c","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini","source_sha":"1f2b5583b7e1d1ef0339f0a05e8bac2a6d503cfbf977127de64738926c8cc161","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/silver_dragon.png","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/silver_dragon.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/silver_dragon.png","source_sha":"1282157f54564d3eddfe90c6cfc4a78a80cf695709d3a9126639349f24756262","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/tool.tbl","source_sha":"ae25e80a7bb1642cb3c20b1678fa8ed2f6a1079346fb856ab94c8ebdb7b88d3f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/check_constraints.hal","source_sha":"6ddb9e14e9e83a7eb969b744c80e9f070a0cbc7801d746902d6d9d8deeed0a80","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/pyngcgui.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/pyngcgui.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/pyngcgui.ui","source_sha":"2d3220c0394fba0f2232c717a66963dab8b2c394e7186ed2bd7c4e9e1f02384c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini","source_sha":"142a7c8f7ba86085afd4e331d0deb8030df8e53ea64bfc96a71b049a8dba1096","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini","source_sha":"142a7c8f7ba86085afd4e331d0deb8030df8e53ea64bfc96a71b049a8dba1096","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc.ui","source_sha":"80d71484e82ebd3f3a80870f8b69862de3b30213fd8bf6ef6f85ebf766379cef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc/qtdefault_ngc_handler.py","source_sha":"3fb8126975e2372faea49fa972c5798a1f8724c56ead64bff1f9b8b25b497341","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtvcp_postgui.hal","source_sha":"3cb43ba387140cb556463a8584bac7291fea5bea2a92195f5328aeb8a75b66f7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/LatheMacro.svg","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/LatheMacro.svg"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/LatheMacro.svg","source_sha":"3e1761065ac7523ec56696dbb84faaf98e732f5739257ffafb5f58f3837a281e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/check_constraints.hal","source_sha":"6ddb9e14e9e83a7eb969b744c80e9f070a0cbc7801d746902d6d9d8deeed0a80","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.glade","source_sha":"411f1c823decd11f463c1124de1d8d1a2895d6149bcfe1e3708803671dde02df","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini","source_sha":"ea20d3e12b0a800739c060bca467c8745e29e8d318c47bfa64becd3555af6cca","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini","source_sha":"ea20d3e12b0a800739c060bca467c8745e29e8d318c47bfa64becd3555af6cca","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gvcp.glade","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gvcp.glade"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gvcp.glade","source_sha":"97b717d06d5fd5adb1489ccc48e7706e0149c8cc97f9e938ff0259d36302a2b6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gvcp_handler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gvcp_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gvcp_handler.py","source_sha":"0c1ee1c97739dd6d85c53dc716b591005745d561f03c6c13fa9edadc77b20976","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathehandler.py","source_sha":"32ef93501000b99d7304259213efcccfa37ce5e9a7da06aa5826029060f1e1c2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/lathemacro.ui","source_sha":"97b717d06d5fd5adb1489ccc48e7706e0149c8cc97f9e938ff0259d36302a2b6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/pyngcgui.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/pyngcgui.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/pyngcgui.ui","source_sha":"2d3220c0394fba0f2232c717a66963dab8b2c394e7186ed2bd7c4e9e1f02384c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini","source_sha":"77f1a4a5294dc202d4afc6764a14dc89d8e1174424667c5b72742ae3a0975645","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini","source_sha":"77f1a4a5294dc202d4afc6764a14dc89d8e1174424667c5b72742ae3a0975645","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp.ui","source_sha":"b6f62d08f2556145a1a306aa603170cc2de186bfc507e7e7cfd00e528432830e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp/qtdefault_gladevcp_handler.py","source_sha":"6c4b6a651fbd107192a423a77ebf0ad651fdde1670d178fff6bcfb060a466421","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler.py","source_sha":"17335f824938e3c763b42ff721ed7cd05d7f84e41a3b2a4c08349fdfe9a24ce0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp_handler_1.py","source_sha":"e93aaf4f7f6f2f771af880b8681c98130965bcf78141af8db2084654d46424d8","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini","source_sha":"142a7c8f7ba86085afd4e331d0deb8030df8e53ea64bfc96a71b049a8dba1096","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini","source_sha":"142a7c8f7ba86085afd4e331d0deb8030df8e53ea64bfc96a71b049a8dba1096","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc.ui","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc.ui","source_sha":"80d71484e82ebd3f3a80870f8b69862de3b30213fd8bf6ef6f85ebf766379cef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc/qtdefault_ngc_handler.py","source_sha":"530c862397f1bf458b7fa616929c301504bea7d14206a3a0bd9b7814a39ebf5a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtvcp_postgui.hal","source_sha":"3cb43ba387140cb556463a8584bac7291fea5bea2a92195f5328aeb8a75b66f7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/savestate.sav","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/savestate.sav"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/savestate.sav","source_sha":"7fa9e67d1bee18db389470ffe65eecefea5ce53266f06849177cf64a3bdff4aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_postgui.hal","source_sha":"3cb43ba387140cb556463a8584bac7291fea5bea2a92195f5328aeb8a75b66f7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini","source_sha":"0909d95dd20251475be2a745ea9ff1a9bc11c05b6d4b880be7d4165c2686b40c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini","source_sha":"0909d95dd20251475be2a745ea9ff1a9bc11c05b6d4b880be7d4165c2686b40c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var","inputs":["linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/sim-9axis.var","source_sha":"163bbf80485fe2fe12700c1acb4b05eff774df68176d17e4eef5de8a7024c1ae","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl","inputs":["linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/sim_mm.tbl","source_sha":"1816cbb02cc6585d86676bb2d88f85b10b439cf42212e0b4c144f3846a3dcf30","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/tester.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/tester.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/tester.ini","source_sha":"74ffaa3444383a097aed37c22d5d6b6ef9d55b49a49a97e5861013d907a4f40d","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/qtvcp_screens/tester.ini","inputs":["linuxcnc/configs/sim/qtvcp_screens/tester.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/qtvcp_screens/tester.ini","source_sha":"74ffaa3444383a097aed37c22d5d6b6ef9d55b49a49a97e5861013d907a4f40d","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/schema-simple.sql","inputs":["linuxcnc/configs/sim/schema-simple.sql"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/schema-simple.sql","source_sha":"ba4f7792cefec68cc6f69083f079c988eb32ac9617c518f47cb8399b5587566d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/screwcompX.dat","inputs":["linuxcnc/configs/sim/screwcompX.dat"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/screwcompX.dat","source_sha":"346e7a2bbb16fdf4b1c6c88994dedc3a56463b5a4120710651e05690e57c205a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/sim.tbl","inputs":["linuxcnc/configs/sim/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} @@ -1449,24 +1453,24 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/test.vcp","inputs":["linuxcnc/configs/sim/test.vcp"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/test.vcp","source_sha":"49155aaae1cad8cd9da8f046c45a7f6066e5b795322e4f3400bfe073cf14556c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/README","inputs":["linuxcnc/configs/sim/tklinuxcnc/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/README","source_sha":"4c1b3b22b48e29b3c16a174dbdf72b3d9508a19b801dad17703d1b9b21812af2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/README_es","inputs":["linuxcnc/configs/sim/tklinuxcnc/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/README_es","source_sha":"a7d247d2b0af5d35026c47e11479b1418fbbbda15fcdf0587ae0500ab37d1c5f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/ldelta.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini","source_sha":"0e23dee0f4df839c028f5bfba95c5941f2f8623ce502d6fdfc90dfdef63d8967","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/ldelta.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/ldelta.ini","source_sha":"0e23dee0f4df839c028f5bfba95c5941f2f8623ce502d6fdfc90dfdef63d8967","test_id":"audit:K4-DELTA-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/screwcompX.dat","inputs":["linuxcnc/configs/sim/tklinuxcnc/screwcompX.dat"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/screwcompX.dat","source_sha":"346e7a2bbb16fdf4b1c6c88994dedc3a56463b5a4120710651e05690e57c205a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini","source_sha":"0f8b15328616a4fd5be7561738273a9c04e0c5524423d424257c5ffda73fa25e","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini","source_sha":"0f8b15328616a4fd5be7561738273a9c04e0c5524423d424257c5ffda73fa25e","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/sim.tbl","inputs":["linuxcnc/configs/sim/tklinuxcnc/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini","source_sha":"12f9c72fe2f8ab1ac7d6fcb553c902b4a2df1cecbf3ecc896fa9c0ad7a8f41b3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/tripod.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini","source_sha":"8da7280a981d80e9b7d4b608a357fc87dbb9d83535636794e1ae97d5ebcb8f01","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini","source_sha":"12f9c72fe2f8ab1ac7d6fcb553c902b4a2df1cecbf3ecc896fa9c0ad7a8f41b3","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/tripod-kinematics.report.json","coverage/delta-kinematics.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-tripod","golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/tripod.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/tripod-kinematics.report.json","status":"blocked"},"outputs":["coverage/tripod-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/tripod.ini","source_sha":"8da7280a981d80e9b7d4b608a357fc87dbb9d83535636794e1ae97d5ebcb8f01","test_id":"audit:K4-TRIPOD-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/README","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/README","source_sha":"e9afae93b31ed7d81d95b0551a78b2743245fdb13b3db485244225d45d345b25","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/README_es","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/README_es","source_sha":"b1d48645881fb14e35763cbef989628eb152f3ae10156e7d4b5938289c6f6438","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini","source_sha":"07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini","source_sha":"07f5257557a540b02781de3a641dd1830a78a4cbb15a9cc68ad8d2c6eae8ec81","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.tbl","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.tbl","source_sha":"06fd24c26897d06c7c5b65cc81911a1854118900f791c692600ceeaa61d2026e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini","source_sha":"d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini","source_sha":"d75c9e05e2a781d1344b3840ba82adc6d7d8d47f53aa11b04c3b918d20c5faae","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xzbase.inc","inputs":["linuxcnc/configs/sim/tklinuxcnc/trivkins/xzbase.inc"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xzbase.inc","source_sha":"5095b8433391c4dee84259d408769d1221f7e7c2c67b2e61de77fbb57159f8ae","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/README","inputs":["linuxcnc/configs/sim/touchy/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/README","source_sha":"cb18b82cb96b977ed9b7ecbc52301a8d3e2e3241b5aba8e7b6c4c4e8723a1415","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/README_es","inputs":["linuxcnc/configs/sim/touchy/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/README_es","source_sha":"1fe275766c21ad0a89e5e131913bcc053af909b10d35ff1deb115f860d76e524","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/README","inputs":["linuxcnc/configs/sim/touchy/gladevcp/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/README","source_sha":"b4b5524ca257f85e33be8c033fa6db47a4e32e469150e4a7fd8a914f553ca732","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/README_es","inputs":["linuxcnc/configs/sim/touchy/gladevcp/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/README_es","source_sha":"ed8038fb5401fd9ba767fb599c81bb7630cede64498158672391aab47008c20f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal","inputs":["linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp-touchy.hal","source_sha":"08ced1feef4ed2c36b3a094b5cc74d6cf49a899208f96a41d77ad12a66e45f64","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini","inputs":["linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini","source_sha":"e7098eb237c6ad9bed4c240f95d313f6ae3221d322b514509f5a7c34373b6011","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini","inputs":["linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini","source_sha":"e7098eb237c6ad9bed4c240f95d313f6ae3221d322b514509f5a7c34373b6011","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/hitcounter.py","inputs":["linuxcnc/configs/sim/touchy/gladevcp/hitcounter.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/hitcounter.py","source_sha":"0c845c646e72f859621081e2d2ce43232270f166e615014fb8610bbc77b9e988","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/manual-example.hal","inputs":["linuxcnc/configs/sim/touchy/gladevcp/manual-example.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/manual-example.hal","source_sha":"0aa986efa4fb0271c714e5427ff2f87b18fbb968b7ffe73f0927f5db2a1e0c98","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/manual-example.ui","inputs":["linuxcnc/configs/sim/touchy/gladevcp/manual-example.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/manual-example.ui","source_sha":"15b9305090ef22db63899c58624c36900523d1c7d531a0e4bbf641ad0d7ebc3d","test_id":null,"web_status":"planned"} @@ -1474,25 +1478,25 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui","inputs":["linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/touchy-gremlin.ui","source_sha":"2c384a9c2f6deda864a91ee2a7f33685c48138a0c4408c915ca580efcbef91ad","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal","inputs":["linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.hal","source_sha":"21061f773789f23825c1204b3eb5e5f7e540a50db45a167b093a9fd25c1e6d24","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui","inputs":["linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/touchy-misc.ui","source_sha":"ea358bc896d2559ecb6da2b15b8bd9769bc0e327a3cd6ba87bc4f1f556ac586f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini","inputs":["linuxcnc/configs/sim/touchy/gladevcp/touchy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini","source_sha":"65c7aa3b61d553f8aa9f2d43977329ef89d4b58d088729561a0bf7165b6a68a9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini","inputs":["linuxcnc/configs/sim/touchy/gladevcp/touchy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini","source_sha":"65c7aa3b61d553f8aa9f2d43977329ef89d4b58d088729561a0bf7165b6a68a9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/README","inputs":["linuxcnc/configs/sim/touchy/ngcgui/README"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/README","source_sha":"16c252e67b70bc879b8be939239483bcea90a9c34bdee691cf9a8447299e028b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/README_es","inputs":["linuxcnc/configs/sim/touchy/ngcgui/README_es"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/README_es","source_sha":"61ceacea26d13a40c4d407e4fab3d69c783ae877ba6351d488d7ae4eaeb066f4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/gremlin_view.ui","inputs":["linuxcnc/configs/sim/touchy/ngcgui/gremlin_view.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/gremlin_view.ui","source_sha":"e1fe2cbb71145031e8c31059fedefedc8097f67954adb3ed881f240faed1a8c6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh","inputs":["linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/hwsim.sh","source_sha":"95eac4c062a2bda6571baf0d4e43060be6b7c6c23374d86bf0cab9f416f09a27","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/lathe.tbl","inputs":["linuxcnc/configs/sim/touchy/ngcgui/lathe.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/lathe.tbl","source_sha":"9b1499a1bc08d24890618ba4ed07ce58aa5a2239a3f5d55d593948e3ee5ce504","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini","source_sha":"6bd6bc6daa9146eb1c662ead43e69edac26cd8a95121c00371607f4bc5f5be0b","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini","source_sha":"6bd6bc6daa9146eb1c662ead43e69edac26cd8a95121c00371607f4bc5f5be0b","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.txt","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.txt","source_sha":"b3c001939b82cc5bda78f731b7f5adb4cb1a4f48bcff9f5b29741a6844f78cb6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_es.txt","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_es.txt","source_sha":"4480477903306e0c80be4a5419482080ebd0453e9996664cfae396bf3b0fff18","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini","source_sha":"5985f5a6c3bf70d493c897a45a9f0864d1edc6449018185c5787ccfd9d78749a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini","source_sha":"5985f5a6c3bf70d493c897a45a9f0864d1edc6449018185c5787ccfd9d78749a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.txt","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.txt","source_sha":"6fd2f7ed72b88efe4e9158e2852d35d28dcab722804f528791dfa1d53cfad6b4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe_es.txt","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe_es.txt","source_sha":"8ba5978d69f18e228a2e658b79dc057fff64b3ad7d9b4fedeafaf81e20ee5bcc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini","source_sha":"b27d37a31e597d71ea9065f31d4c5e150ac12fbdef2f2567b74b97cb4cbe651e","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini","source_sha":"b27d37a31e597d71ea9065f31d4c5e150ac12fbdef2f2567b74b97cb4cbe651e","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.txt","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.txt","source_sha":"45ab226d76f54d647e2ca6661a9f0f912cb6b249af632d14ca3db50e68effc3c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff_es.txt","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff_es.txt","source_sha":"33dd1feb0e4dbdac6bf718d8c6f27c8cd0920ca8339be397d9f608e35bedd48a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui","inputs":["linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_popupkeyboard.ui","source_sha":"ec1738cd811c50f563d7fa504ef2d2cef0635f7b4383d3ae5f29a0e4eaaf3006","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/ngcgui/sim.tbl","inputs":["linuxcnc/configs/sim/touchy/ngcgui/sim.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/ngcgui/sim.tbl","source_sha":"a4af26629deb1da73fc6809057a1b414b5476226b10cd1d409af65e051012f63","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/simpockets.tbl","inputs":["linuxcnc/configs/sim/touchy/simpockets.tbl"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/simpockets.tbl","source_sha":"e81a30f74f1c91fcece180e607f7e2cd63468bf4d432cc5cad2bc65eb7152150","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/touchy.ini","inputs":["linuxcnc/configs/sim/touchy/touchy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/touchy.ini","source_sha":"0624683449cbafe697042c42e2f23fdc9513b02dd56aa8f452e386e496ab4571","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/touchy.ini","inputs":["linuxcnc/configs/sim/touchy/touchy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/touchy.ini","source_sha":"0624683449cbafe697042c42e2f23fdc9513b02dd56aa8f452e386e496ab4571","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/touchy.txt","inputs":["linuxcnc/configs/sim/touchy/touchy.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/touchy.txt","source_sha":"7a9505d6a67dc8c9e19f100462f35dbcfc99a434893bee6987943d1a57993062","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/touchy_es.txt","inputs":["linuxcnc/configs/sim/touchy/touchy_es.txt"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/touchy_es.txt","source_sha":"248155ba6ce3402b3c8e8a637de0a2691205314d7078caad4978740eb0746a14","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/touchy/touchy_postgui.hal","inputs":["linuxcnc/configs/sim/touchy/touchy_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/touchy/touchy_postgui.hal","source_sha":"41192157d0b78cbc0f923cf8f6cddd9cb05915ed4db904788d6379751e215103","test_id":null,"web_status":"planned"} @@ -1502,9 +1506,9 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py","inputs":["linuxcnc/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/1280x1024_5axis/woodpecker_handler.py","source_sha":"fb1908b3204fdfb3e61185b00193963d15ac6485c726203ac9418e2d00721ced","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/README.md","inputs":["linuxcnc/configs/sim/woodpecker/README.md"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/README.md","source_sha":"02231494f7ff7ae8c05a03e04b4495eaab295452e31f595467ece2e9c363735a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/compensate.py","inputs":["linuxcnc/configs/sim/woodpecker/compensate.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/compensate.py","source_sha":"139e7a8976b3e063ce7a647628d7198f927dc90b321e983ceb8e156d73ced377","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/core_sim.hal","inputs":["linuxcnc/configs/sim/woodpecker/core_sim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/core_sim.hal","source_sha":"54fe4002d5db8db0d8e365b63b747602f34ec955c372023df9c848f3529e10a2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal","inputs":["linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal","source_sha":"e1e131bf73a5a2727084c9121fcaf8ae95a65dd3b6a42bd44f747f8b8fe23a3d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/gantrysim.hal","inputs":["linuxcnc/configs/sim/woodpecker/gantrysim.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/gantrysim.hal","source_sha":"e8e99f55218eee9219cac7d049f35a7a8024de99ce1117cce9a797b746434b43","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/core_sim.hal","inputs":["linuxcnc/configs/sim/woodpecker/core_sim.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/core_sim.hal","source_sha":"54fe4002d5db8db0d8e365b63b747602f34ec955c372023df9c848f3529e10a2","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal","inputs":["linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/gantrysim-xyzab.hal","source_sha":"e1e131bf73a5a2727084c9121fcaf8ae95a65dd3b6a42bd44f747f8b8fe23a3d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/gantrysim.hal","inputs":["linuxcnc/configs/sim/woodpecker/gantrysim.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/gantrysim.hal","source_sha":"e8e99f55218eee9219cac7d049f35a7a8024de99ce1117cce9a797b746434b43","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/help_files/about.html","inputs":["linuxcnc/configs/sim/woodpecker/help_files/about.html"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/help_files/about.html","source_sha":"9625d9bd7875100e44029d789207f329cd1e35f1ba6956d29b8e6ee8b5f7a4c1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/help_files/database.html","inputs":["linuxcnc/configs/sim/woodpecker/help_files/database.html"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/help_files/database.html","source_sha":"472c891e470b1999c24891e138a97537e65acaada6f5a67e00cd0e01eefd5c7b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/help_files/facing_utility.html","inputs":["linuxcnc/configs/sim/woodpecker/help_files/facing_utility.html"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/help_files/facing_utility.html","source_sha":"a91922ba7fa2e95f3929c67cb7d749a1ecd5124fab803f60ef1bb39e029c2b78","test_id":null,"web_status":"planned"} @@ -1562,8 +1566,8 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/tool_icons/vbit-60.png","inputs":["linuxcnc/configs/sim/woodpecker/tool_icons/vbit-60.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/tool_icons/vbit-60.png","source_sha":"302fec591e3110cec0cb4d9ade80dfca9dafa91e1a5638c3d0b5f688fe2491f1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/tool_icons/vbit-90.png","inputs":["linuxcnc/configs/sim/woodpecker/tool_icons/vbit-90.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/tool_icons/vbit-90.png","source_sha":"582f2daafa6a491e51e59d0b8112be9d68bc379e5be132a97f513002257895e3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/tool_icons/vbit-90deg.png","inputs":["linuxcnc/configs/sim/woodpecker/tool_icons/vbit-90deg.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/tool_icons/vbit-90deg.png","source_sha":"e33869d5192338790147902c5fc46e0be73f4cd7dba7c689247a28c75c7c01ae","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker.hal","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker.hal","source_sha":"99f2bffdef7d778039e1872fba77e8972be3c9096db686ee45c6af9a1129bbc4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker.ini","source_sha":"1948487bf44a5c7d5b32186a6b9f330d55cb61bbab55da4a5834f95439cc0deb","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker.hal","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker.hal"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker.hal","source_sha":"99f2bffdef7d778039e1872fba77e8972be3c9096db686ee45c6af9a1129bbc4","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker.ini","source_sha":"1948487bf44a5c7d5b32186a6b9f330d55cb61bbab55da4a5834f95439cc0deb","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker.pref","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker.pref"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker.pref","source_sha":"01c4574e33aa203bbab1ad6331b6ac5981e73c56f7f0a429c94d61e7befcb890","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_/images/Left_arrow.png","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_/images/Left_arrow.png"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_/images/Left_arrow.png","source_sha":"37da23fbb104678389def08e5fbe61bbce22330ef596615d9b20f0ada94ddf66","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_/images/QTvcp Widgets.html","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_/images/QTvcp Widgets.html"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_/images/QTvcp Widgets.html","source_sha":"2c2cb96c89734fdda38be193ad63af0498241dba12827ebbdf7eb0a7f695fe7d","test_id":null,"web_status":"planned"} @@ -1637,14 +1641,14 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_dark.qss","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_dark.qss"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_dark.qss","source_sha":"05864a6af390f5a12f4b0554fef269a2b736bada5c8274b12fd5a343c2919322","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_flat.qss","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_flat.qss"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_flat.qss","source_sha":"0f13504022ebc119937eb705719e72dbc328b48b14c84dde9188b5a5d9ddc61f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_/woodpecker_handler.py","source_sha":"d0b880acfdbfe681376f305e7d8ced37f32261e708fa7380f378c6a12d8d9cec","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini","source_sha":"9c30092e3c73099af651616a4a9a003337230419bd029e606c10f2b2a2afdade","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini","source_sha":"9c30092e3c73099af651616a4a9a003337230419bd029e606c10f2b2a2afdade","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_postgui.hal","source_sha":"95d9a992e9883a1e0fa7c2ebffbdaeb0c9a9c915104f06da916ad2c9fa692508","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_postgui_ya.hal","source_sha":"f986d868596d52fd49449089513a39c82d64c3687014ac671c1eb3328dc5dd6b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini","source_sha":"5aeeb95a708ed2972ad3fa975f37df426129de279c4e8d347bcc2a589ac253ce","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini","source_sha":"410e1b03a771d7b98a0a75fc13303842af2a20d85b3ff6fe898e83f5a8630752","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini","source_sha":"3d4d7e2cb2729c9b385e6e6cee04a70ee933a52dcd7f3cf532b7c236bef06eb9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini","source_sha":"8374120e08569413c08816a5a5c9e0e8aa0cd0d5536593f6c0fb6d606cffdac5","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini","source_sha":"85a7cca0b4672cdac77822c584e738722656f565af8b48217a3cf1cac17f87ab","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini","source_sha":"5aeeb95a708ed2972ad3fa975f37df426129de279c4e8d347bcc2a589ac253ce","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini","source_sha":"410e1b03a771d7b98a0a75fc13303842af2a20d85b3ff6fe898e83f5a8630752","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini","source_sha":"3d4d7e2cb2729c9b385e6e6cee04a70ee933a52dcd7f3cf532b7c236bef06eb9","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini","source_sha":"8374120e08569413c08816a5a5c9e0e8aa0cd0d5536593f6c0fb6d606cffdac5","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini","inputs":["linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini"],"kind":"simulation_config","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini","source_sha":"85a7cca0b4672cdac77822c584e738722656f565af8b48217a3cf1cac17f87ab","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/zlevel.py","inputs":["linuxcnc/configs/sim/woodpecker/zlevel.py"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/zlevel.py","source_sha":"a59fabc031582a37b2c23c931414b04e23141269fc6bd90f46bfbdb2ad11cdb0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:config:linuxcnc/configs/sim/woodpecker/zlevel.ui","inputs":["linuxcnc/configs/sim/woodpecker/zlevel.ui"],"kind":"simulation_config","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"config:linuxcnc/configs/sim/woodpecker/zlevel.ui","source_sha":"629f5bdd5857402a70c72af5fed1df0dfb489c1ef1f4b9d84d3246cb2742a043","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:doc:linuxcnc/docs/.gitignore","inputs":["linuxcnc/docs/.gitignore"],"kind":"documentation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"doc:linuxcnc/docs/.gitignore","source_sha":"17a8e5a666da1de10f926889e8266363886262b3c039d76cd91e7ae7c3b1db78","test_id":null,"web_status":"planned"} @@ -3207,21 +3211,32 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:doc:linuxcnc/docs/src/xhtml11-latexmath.conf","inputs":["linuxcnc/docs/src/xhtml11-latexmath.conf"],"kind":"documentation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"doc:linuxcnc/docs/src/xhtml11-latexmath.conf","source_sha":"d31ed1d15f9ac1232af1e58c05d83feedd9cd73f9fe543d589f9340fdf0ad719","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:doc:linuxcnc/docs/src/xhtml11-links.conf","inputs":["linuxcnc/docs/src/xhtml11-links.conf"],"kind":"documentation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"doc:linuxcnc/docs/src/xhtml11-links.conf","source_sha":"debc4b462499fdd8286b3812c705e40267e53d87ae8062250e8c23cb7ad59afe","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:doc:linuxcnc/docs/src/xhtml11.conf","inputs":["linuxcnc/docs/src/xhtml11.conf"],"kind":"documentation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"doc:linuxcnc/docs/src/xhtml11.conf","source_sha":"c0222c552624bf3b7695e2f5c5db797be0e6cddcd77092293fd5e15b579f2ba9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/CMakeLists.txt","inputs":["wasm-core/CMakeLists.txt"],"kind":"web_wasm_build_or_test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/CMakeLists.txt","source_sha":"c289bad75abc394faf08b90d5cebb14c5293b4a9b64249a4aefd317acca036ac","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/CMakeLists.txt","inputs":["wasm-core/CMakeLists.txt"],"kind":"web_wasm_build_or_test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/CMakeLists.txt","source_sha":"e9296a3983a531e4e6864d05e2e97c8dbf29e0dc9e45942ecc1a0a7222b3a660","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_api.h","inputs":["wasm-core/include/sim_api.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_api.h","source_sha":"9dda70ef64afe0b398a3de5342e6bdf545c331bbef24f112be2a45acec327227","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_event.h","inputs":["wasm-core/include/sim_event.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_event.h","source_sha":"5406dbf7fb6a80924835d967641c9ed22cc8c25a13b72b76ce3d235abb0ad45d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_hal.h","inputs":["wasm-core/include/sim_hal.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_hal.h","source_sha":"f87fc7fb47a848516e1e9f41298ceb1a7af18d022619c9336cc390aebb0f9ab2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_posemath.h","inputs":["wasm-core/include/sim_posemath.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_posemath.h","source_sha":"71b092379fbfbbd46cf2280fb825fabe84219dd9a0fc1e16f0bf7232160dff05","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:implementation:wasm-core/include/sim_hal.h","inputs":["wasm-core/include/sim_hal.h"],"kind":"web_wasm_interface","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"implementation:wasm-core/include/sim_hal.h","source_sha":"f0b25fda1c267ed8078469c9966fa3b09721eba77c575affea77d489437a3e49","test_id":"audit:K2-HAL-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_interpreter.h","inputs":["wasm-core/include/sim_interpreter.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_interpreter.h","source_sha":"7bf24098340e3da2272061acf7a43376c6c40fe9dffc55d012e3af65ceffedbb","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:implementation:wasm-core/include/sim_kinematics.h","inputs":["wasm-core/include/sim_kinematics.h"],"kind":"web_wasm_interface","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"implementation:wasm-core/include/sim_kinematics.h","source_sha":"939d4088d9e7120e4a405be154eb3d98cd4e5925fc27d47641c115624c1bd994","test_id":"audit:K4-HEX-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_motion_queue.h","inputs":["wasm-core/include/sim_motion_queue.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_motion_queue.h","source_sha":"c26af2b5cff6cbc687f621d745601ff287eebd62011ea46fc7fa692b446a08cc","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_posemath.h","inputs":["wasm-core/include/sim_posemath.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_posemath.h","source_sha":"fef257b09f68e5649f0acacfcd3590d699d6f678927fbf8db7d103a40bf7da62","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/include/sim_protocol.h","inputs":["wasm-core/include/sim_protocol.h"],"kind":"web_wasm_interface","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/include/sim_protocol.h","source_sha":"d1dd3247159f0950a9aa2d903d25cfa184bccff1d7512de293868763b4035d35","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_api.c","inputs":["wasm-core/src/sim_api.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_api.c","source_sha":"072ffb5aa13c4924c638464bb8487e5c293db589a9735c4d39c3a6d9455a3e59","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_event.c","inputs":["wasm-core/src/sim_event.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_event.c","source_sha":"a0af4a75c9c3b71d4a59df675b64f313eda05f4589538fe999cd92607d104397","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_hal.c","inputs":["wasm-core/src/sim_hal.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_hal.c","source_sha":"5926e2cdc785d060bc199b2bdfa550c898facf8221204487fdc3ae841400a02e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_posemath.c","inputs":["wasm-core/src/sim_posemath.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_posemath.c","source_sha":"274445935ffc1bf7201879d0779c19e73a6eea70a19b10c5929208f77a6bde65","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:implementation:wasm-core/src/sim_hal.c","inputs":["wasm-core/src/sim_hal.c"],"kind":"web_wasm_implementation","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"implementation:wasm-core/src/sim_hal.c","source_sha":"76a057064546a8ee9ba1098952755a4cdc56e6e714f2761b8a1826898d3ae621","test_id":"audit:K2-HAL-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_interpreter.c","inputs":["wasm-core/src/sim_interpreter.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_interpreter.c","source_sha":"9f9f45f7c123be774dcf55a752a29e6cc1f873a1605cf89c4caa4f4ab125e6a4","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:implementation:wasm-core/src/sim_kinematics.c","inputs":["wasm-core/src/sim_kinematics.c"],"kind":"web_wasm_implementation","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"implementation:wasm-core/src/sim_kinematics.c","source_sha":"6abae835c16feb27ec1dc28a9ea5384f0bc5190217ba04a4997048d83066b905","test_id":"audit:K4-HEX-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_motion_queue.c","inputs":["wasm-core/src/sim_motion_queue.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_motion_queue.c","source_sha":"56074e27df90bc1b60134eac3cdf84c78149388f99a19a027f6714e3784b04ed","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_posemath.c","inputs":["wasm-core/src/sim_posemath.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_posemath.c","source_sha":"939b221ed6ede1229d26c170ab3514884d5bafc90854ab09db641925859b5e8d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/src/sim_protocol.c","inputs":["wasm-core/src/sim_protocol.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/src/sim_protocol.c","source_sha":"da63b458f64f997251323fc8b53a9c84d1f978f5e8ea5ed7c8dd6f5bceab60e4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_api_test.c","inputs":["wasm-core/tests/sim_api_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_api_test.c","source_sha":"5fe8aa04543be2943c9e577bd6ce8f9ae9a8c98c7c24e84fd589b761fe39170c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_event_test.c","inputs":["wasm-core/tests/sim_event_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_event_test.c","source_sha":"57fdb682dcb18632216b4093e6dfadf2736a0ab11a002438e3c269d4d4b5406d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_hal_test.c","inputs":["wasm-core/tests/sim_hal_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_hal_test.c","source_sha":"9dd08ea73df45d1d9cef14bb02138269a5b3e0a0e96de75c621f5c79f00318b9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_posemath_test.c","inputs":["wasm-core/tests/sim_posemath_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_posemath_test.c","source_sha":"419176eef28697eecdac1e2e666dc42da491e600b966a559bfe9e5b60a2d0c0a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:implementation:wasm-core/tests/sim_hal_test.c","inputs":["wasm-core/tests/sim_hal_test.c"],"kind":"web_wasm_implementation","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_hal_test.c","source_sha":"5044ed422b37499291ff85fd7c601acc6665621cf33e9ff4d26f0e8fd5b7d533","test_id":"audit:K2-HAL-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:implementation:wasm-core/tests/sim_hal_test_main.c","inputs":["wasm-core/tests/sim_hal_test_main.c"],"kind":"web_wasm_implementation","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_hal_test_main.c","source_sha":"86f625eaa0c6d6a195b97c0d4df17af6c57f5407bcec0a830e7521cb9823165a","test_id":"audit:K2-HAL-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_interpreter_test.c","inputs":["wasm-core/tests/sim_interpreter_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_interpreter_test.c","source_sha":"c4fc3ba11b751ed9f3f770ff1ff164ce18aa19986003cf85d17a26de7aecd3ce","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:implementation:wasm-core/tests/sim_kinematics_test.c","inputs":["wasm-core/tests/sim_kinematics_test.c"],"kind":"web_wasm_implementation","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_kinematics_test.c","source_sha":"c9e4d20973c6a487787504bd5de9a73829f53d8bbfd35f91e72c6c62c76f191e","test_id":"audit:K4-HEX-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:implementation:wasm-core/tests/sim_kinematics_test_main.c","inputs":["wasm-core/tests/sim_kinematics_test_main.c"],"kind":"web_wasm_implementation","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_kinematics_test_main.c","source_sha":"e567fe412145d3c9b04afc91d6efc6a53c3af3b3b52b7dda860cc289d42dbfc0","test_id":"audit:K4-HEX-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_motion_queue_test.c","inputs":["wasm-core/tests/sim_motion_queue_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_motion_queue_test.c","source_sha":"882c90f9963b2433b868859c50a91dbdecef93454039b05b11241c1f76c13f31","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_posemath_test.c","inputs":["wasm-core/tests/sim_posemath_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_posemath_test.c","source_sha":"751910f2bcd740c963b008e1ae4cb1dd058d2942ab1d63dd0a9f510a20a408d2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:wasm-core/tests/sim_protocol_test.c","inputs":["wasm-core/tests/sim_protocol_test.c"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:wasm-core/tests/sim_protocol_test.c","source_sha":"74c855e4bcae2091913847e2ba46ea5f0ae482229b53199baee5bbdcd3c0ef49","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:web/worker/capabilities.mjs","inputs":["web/worker/capabilities.mjs"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:web/worker/capabilities.mjs","source_sha":"175cb4dac10cc6b2eb80ed1cf24405151ae3fac6ff82f68e5e2e241d79f10c97","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:implementation:web/worker/error-map.mjs","inputs":["web/worker/error-map.mjs"],"kind":"web_wasm_implementation","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"implementation:web/worker/error-map.mjs","source_sha":"83ca215534eed48a9082cc07230507c7b38cbb99f9f2a52e7026b5d49da1d167","test_id":null,"web_status":"planned"} @@ -3281,44 +3296,44 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/iotask/Submakefile","inputs":["linuxcnc/src/emc/iotask/Submakefile"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/iotask/Submakefile","source_sha":"92ffaeb7870a8956eeb0a43bedff0023ecc627b283e62169d64b4d2844da69a5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/iotask/ioControl.cc","inputs":["linuxcnc/src/emc/iotask/ioControl.cc"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/iotask/ioControl.cc","source_sha":"f2f7d4f8a0e77815ca1ffb1ba2699b9d2ffa4297c8ec7718aadd197fe6ca06a9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/iotask/ioControl_v2.cc","inputs":["linuxcnc/src/emc/iotask/ioControl_v2.cc"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/iotask/ioControl_v2.cc","source_sha":"a33bcddcdcbcda843166bd547f7c7a5dfc7f9436426c5354f7124f42f6f75e5c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/5axiskins.c","inputs":["linuxcnc/src/emc/kinematics/5axiskins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/5axiskins.c","source_sha":"2e29fee21936cfbbafbb000290276e4b32eaba4831014e08d3fb833f2b3dac72","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/Submakefile","inputs":["linuxcnc/src/emc/kinematics/Submakefile"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/Submakefile","source_sha":"1c207052f7321b3380891762da32b8985592c3dba3cc894a8fd946229809db69","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/blend.fig","inputs":["linuxcnc/src/emc/kinematics/blend.fig"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/blend.fig","source_sha":"8ccf10df11d69958f286b3c8012fc239a07093d3789e5be9c96a6d487b92a89b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/corexykins.c","inputs":["linuxcnc/src/emc/kinematics/corexykins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/corexykins.c","source_sha":"507963e0ed464440fa530db11b1b15c6a663182eb016855d105554ae8125ae5b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/cubic.c","inputs":["linuxcnc/src/emc/kinematics/cubic.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/cubic.c","source_sha":"64f9070d413fa0ebf94668d753e13d17049317899777b59ea100b30db00acda3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/cubic.h","inputs":["linuxcnc/src/emc/kinematics/cubic.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/cubic.h","source_sha":"00a9d34bb44045890221eeb0f44bd93b76b695b6e788405a8b6f78deae338436","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genhexkins.c","inputs":["linuxcnc/src/emc/kinematics/genhexkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genhexkins.c","source_sha":"8df3d8bd812e040a06bc29ea91625fd143bacf26903b106ae6700430aca7f6b9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genhexkins.h","inputs":["linuxcnc/src/emc/kinematics/genhexkins.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genhexkins.h","source_sha":"580a2e1703a5c0efb683b4a26f805af434edcfe9d1ade7890e44307f8b0b236c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genserfuncs.c","inputs":["linuxcnc/src/emc/kinematics/genserfuncs.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genserfuncs.c","source_sha":"e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genserkins.c","inputs":["linuxcnc/src/emc/kinematics/genserkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genserkins.c","source_sha":"cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genserkins.h","inputs":["linuxcnc/src/emc/kinematics/genserkins.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genserkins.h","source_sha":"2e40cf061dafe050ad242f197b4acdbd916adcea41885e4edbb2b8c7b5423833","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/kinematics.h","inputs":["linuxcnc/src/emc/kinematics/kinematics.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/kinematics.h","source_sha":"33b3744b9ceeeef3d992e9ca9cda89d93a3357d2d0a2af2023ca728e4be8e428","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/kins_util.c","inputs":["linuxcnc/src/emc/kinematics/kins_util.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/kins_util.c","source_sha":"9a9dfbeb0f5d307b5fe99556b10a1869ccbcabc699be1bcfcfd80864ffb0288e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h","inputs":["linuxcnc/src/emc/kinematics/lineardeltakins-common.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h","source_sha":"7785bcd7d095b431169cdd0f753c177ece643ee825f7ff4b8cdb6f8cd4706df8","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/lineardeltakins.c","inputs":["linuxcnc/src/emc/kinematics/lineardeltakins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/lineardeltakins.c","source_sha":"792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/lineardeltakins.cc","inputs":["linuxcnc/src/emc/kinematics/lineardeltakins.cc"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/lineardeltakins.cc","source_sha":"77634457a4dd3f5617f91a66651965c5b8326fc0d4dfc916d9cd63b89b0ec0f1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/maxkins.c","inputs":["linuxcnc/src/emc/kinematics/maxkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/maxkins.c","source_sha":"01529e0db1b698af621d63c30bc8ae382757dd367f3e4babc9b959873344b4e7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/meson.build","inputs":["linuxcnc/src/emc/kinematics/meson.build"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/meson.build","source_sha":"a5de13a16e378a98c1c3df262881592396818510e835a5f2fe2101ed512072a3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pentakins.c","inputs":["linuxcnc/src/emc/kinematics/pentakins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pentakins.c","source_sha":"1b385c2ab3a1bcb106d1d22a2dfe14519dba9c4a5df4cb31071a180845cda4c6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pentakins.h","inputs":["linuxcnc/src/emc/kinematics/pentakins.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pentakins.h","source_sha":"af8551454177bbcc85e4e17377e059573ab8c15dc022de2a4be9b70dead74e2d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pumakins.c","inputs":["linuxcnc/src/emc/kinematics/pumakins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pumakins.c","source_sha":"5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pumakins.h","inputs":["linuxcnc/src/emc/kinematics/pumakins.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pumakins.h","source_sha":"a90cafe680533e0a8d43cf72c9f6bea380267d60090ea82ead4e3eb58bcddf58","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rosekins.c","inputs":["linuxcnc/src/emc/kinematics/rosekins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rosekins.c","source_sha":"1de39affa6b99f21c5e902fc67c8b1d8876d44fc8eff920afd816d7f956cfd78","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h","inputs":["linuxcnc/src/emc/kinematics/rotarydeltakins-common.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h","source_sha":"ba3e037fe2ad7eba29aa2b657492ac83f1979a38c9249fef52e598ba0d5c9136","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotarydeltakins.c","inputs":["linuxcnc/src/emc/kinematics/rotarydeltakins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotarydeltakins.c","source_sha":"64c8aeb6998a481f3c26743093dd157d2d22dc6769b258e3e6012b5c1f784773","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc","inputs":["linuxcnc/src/emc/kinematics/rotarydeltakins.cc"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc","source_sha":"7e2fd63a2a7f5718d706faa21f903b36007226b065ad6d234631d2514f653618","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotatekins.c","inputs":["linuxcnc/src/emc/kinematics/rotatekins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotatekins.c","source_sha":"b104c7e0eb726f48b83daa4d596db5ca8021d803ab17dd123db9b9410ce5f47c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/scarakins.c","inputs":["linuxcnc/src/emc/kinematics/scarakins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/scarakins.c","source_sha":"f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/scorbot-kins.c","inputs":["linuxcnc/src/emc/kinematics/scorbot-kins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/scorbot-kins.c","source_sha":"89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/switchkins.c","inputs":["linuxcnc/src/emc/kinematics/switchkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/switchkins.c","source_sha":"4de32a4a147e5ceee5346b9c6bf471dddf5c64ff58afe5044406c50bcd96b7f5","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/switchkins.h","inputs":["linuxcnc/src/emc/kinematics/switchkins.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/switchkins.h","source_sha":"f6e5323aa16daaac8e07bba622d0bf969102ad0d9c00d41621c08af31e0bb9b1","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/tripodkins.c","inputs":["linuxcnc/src/emc/kinematics/tripodkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/tripodkins.c","source_sha":"0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/trivkins.c","inputs":["linuxcnc/src/emc/kinematics/trivkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/trivkins.c","source_sha":"a08cd347b8dde7d7e201ddde93a1cdef47e8126e58f355d4270fccf6d48819bc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/trtfuncs.c","inputs":["linuxcnc/src/emc/kinematics/trtfuncs.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/trtfuncs.c","source_sha":"ced2f9d4732681e2e82153b2f6343eccdf6972222d558d1e277bf1ec0bdc87fd","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/ugenserkins.c","inputs":["linuxcnc/src/emc/kinematics/ugenserkins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/ugenserkins.c","source_sha":"dee63aebaa11f2867657bc4b9052f6a8e8bd875e06bd8a9df2d3edac9eb1c31d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/userkfuncs.c","inputs":["linuxcnc/src/emc/kinematics/userkfuncs.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/userkfuncs.c","source_sha":"146238645955f8d4e2cb0cd34ff44db3a9dad01e149f81c08f8a53c19f1609bc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c","inputs":["linuxcnc/src/emc/kinematics/xyzac-trt-kins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c","source_sha":"24c633613db9876c2ec246e1519a63d288fd27c68296d89f89f0368105634e69","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c","inputs":["linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c","source_sha":"d79c06db82930ef685809a87c7207398f7893f56a6a0dfe382df2c81eaeb9562","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/5axiskins.c","inputs":["linuxcnc/src/emc/kinematics/5axiskins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/5axiskins.c","source_sha":"2e29fee21936cfbbafbb000290276e4b32eaba4831014e08d3fb833f2b3dac72","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/Submakefile","inputs":["linuxcnc/src/emc/kinematics/Submakefile"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/Submakefile","source_sha":"1c207052f7321b3380891762da32b8985592c3dba3cc894a8fd946229809db69","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/blend.fig","inputs":["linuxcnc/src/emc/kinematics/blend.fig"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/blend.fig","source_sha":"8ccf10df11d69958f286b3c8012fc239a07093d3789e5be9c96a6d487b92a89b","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/corexykins.c","inputs":["linuxcnc/src/emc/kinematics/corexykins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/corexykins.c","source_sha":"507963e0ed464440fa530db11b1b15c6a663182eb016855d105554ae8125ae5b","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/cubic.c","inputs":["linuxcnc/src/emc/kinematics/cubic.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/cubic.c","source_sha":"64f9070d413fa0ebf94668d753e13d17049317899777b59ea100b30db00acda3","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/cubic.h","inputs":["linuxcnc/src/emc/kinematics/cubic.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/cubic.h","source_sha":"00a9d34bb44045890221eeb0f44bd93b76b695b6e788405a8b6f78deae338436","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genhexkins.c","inputs":["linuxcnc/src/emc/kinematics/genhexkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genhexkins.c","source_sha":"8df3d8bd812e040a06bc29ea91625fd143bacf26903b106ae6700430aca7f6b9","test_id":"audit:K4-HEX-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/genhex-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-genhex","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genhexkins.h","inputs":["linuxcnc/src/emc/kinematics/genhexkins.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/genhex-kinematics.report.json","status":"blocked"},"outputs":["coverage/genhex-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genhexkins.h","source_sha":"580a2e1703a5c0efb683b4a26f805af434edcfe9d1ade7890e44307f8b0b236c","test_id":"audit:K4-HEX-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genserfuncs.c","inputs":["linuxcnc/src/emc/kinematics/genserfuncs.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genserfuncs.c","source_sha":"e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genserkins.c","inputs":["linuxcnc/src/emc/kinematics/genserkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genserkins.c","source_sha":"cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/genserkins.h","inputs":["linuxcnc/src/emc/kinematics/genserkins.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/genserkins.h","source_sha":"2e40cf061dafe050ad242f197b4acdbd916adcea41885e4edbb2b8c7b5423833","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/kinematics.h","inputs":["linuxcnc/src/emc/kinematics/kinematics.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/kinematics.h","source_sha":"33b3744b9ceeeef3d992e9ca9cda89d93a3357d2d0a2af2023ca728e4be8e428","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/kins_util.c","inputs":["linuxcnc/src/emc/kinematics/kins_util.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/kins_util.c","source_sha":"9a9dfbeb0f5d307b5fe99556b10a1869ccbcabc699be1bcfcfd80864ffb0288e","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h","inputs":["linuxcnc/src/emc/kinematics/lineardeltakins-common.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/lineardeltakins-common.h","source_sha":"7785bcd7d095b431169cdd0f753c177ece643ee825f7ff4b8cdb6f8cd4706df8","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/lineardeltakins.c","inputs":["linuxcnc/src/emc/kinematics/lineardeltakins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/lineardeltakins.c","source_sha":"792caf5f3fb8bf06d97a4bb7262697ac22182d78d91fed19e7a9e537585aa748","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/lineardeltakins.cc","inputs":["linuxcnc/src/emc/kinematics/lineardeltakins.cc"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/lineardeltakins.cc","source_sha":"77634457a4dd3f5617f91a66651965c5b8326fc0d4dfc916d9cd63b89b0ec0f1","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/maxkins.c","inputs":["linuxcnc/src/emc/kinematics/maxkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/maxkins.c","source_sha":"01529e0db1b698af621d63c30bc8ae382757dd367f3e4babc9b959873344b4e7","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/meson.build","inputs":["linuxcnc/src/emc/kinematics/meson.build"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/meson.build","source_sha":"a5de13a16e378a98c1c3df262881592396818510e835a5f2fe2101ed512072a3","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pentakins.c","inputs":["linuxcnc/src/emc/kinematics/pentakins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pentakins.c","source_sha":"1b385c2ab3a1bcb106d1d22a2dfe14519dba9c4a5df4cb31071a180845cda4c6","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pentakins.h","inputs":["linuxcnc/src/emc/kinematics/pentakins.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pentakins.h","source_sha":"af8551454177bbcc85e4e17377e059573ab8c15dc022de2a4be9b70dead74e2d","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pumakins.c","inputs":["linuxcnc/src/emc/kinematics/pumakins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pumakins.c","source_sha":"5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/pumakins.h","inputs":["linuxcnc/src/emc/kinematics/pumakins.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/pumakins.h","source_sha":"a90cafe680533e0a8d43cf72c9f6bea380267d60090ea82ead4e3eb58bcddf58","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rosekins.c","inputs":["linuxcnc/src/emc/kinematics/rosekins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rosekins.c","source_sha":"1de39affa6b99f21c5e902fc67c8b1d8876d44fc8eff920afd816d7f956cfd78","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h","inputs":["linuxcnc/src/emc/kinematics/rotarydeltakins-common.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotarydeltakins-common.h","source_sha":"ba3e037fe2ad7eba29aa2b657492ac83f1979a38c9249fef52e598ba0d5c9136","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotarydeltakins.c","inputs":["linuxcnc/src/emc/kinematics/rotarydeltakins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotarydeltakins.c","source_sha":"64c8aeb6998a481f3c26743093dd157d2d22dc6769b258e3e6012b5c1f784773","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/delta-kinematics.report.json","coverage/kinematics-source-closure.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-delta","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc","inputs":["linuxcnc/src/emc/kinematics/rotarydeltakins.cc"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/delta-kinematics.report.json","status":"blocked"},"outputs":["coverage/delta-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotarydeltakins.cc","source_sha":"7e2fd63a2a7f5718d706faa21f903b36007226b065ad6d234631d2514f653618","test_id":"audit:K4-DELTA-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/rotatekins.c","inputs":["linuxcnc/src/emc/kinematics/rotatekins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/rotatekins.c","source_sha":"b104c7e0eb726f48b83daa4d596db5ca8021d803ab17dd123db9b9410ce5f47c","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/scarakins.c","inputs":["linuxcnc/src/emc/kinematics/scarakins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/scarakins.c","source_sha":"f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/scorbot-kins.c","inputs":["linuxcnc/src/emc/kinematics/scorbot-kins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/scorbot-kins.c","source_sha":"89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/switchkins.c","inputs":["linuxcnc/src/emc/kinematics/switchkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/switchkins.c","source_sha":"4de32a4a147e5ceee5346b9c6bf471dddf5c64ff58afe5044406c50bcd96b7f5","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/switchkins.h","inputs":["linuxcnc/src/emc/kinematics/switchkins.h"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/switchkins.h","source_sha":"f6e5323aa16daaac8e07bba622d0bf969102ad0d9c00d41621c08af31e0bb9b1","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/tripod-kinematics.report.json","coverage/delta-kinematics.report.json"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k4-tripod","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/tripodkins.c","inputs":["linuxcnc/src/emc/kinematics/tripodkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/tripod-kinematics.report.json","status":"blocked"},"outputs":["coverage/tripod-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/tripodkins.c","source_sha":"0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f","test_id":"audit:K4-TRIPOD-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/trivkins.c","inputs":["linuxcnc/src/emc/kinematics/trivkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/trivkins.c","source_sha":"a08cd347b8dde7d7e201ddde93a1cdef47e8126e58f355d4270fccf6d48819bc","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/trtfuncs.c","inputs":["linuxcnc/src/emc/kinematics/trtfuncs.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/trtfuncs.c","source_sha":"ced2f9d4732681e2e82153b2f6343eccdf6972222d558d1e277bf1ec0bdc87fd","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/ugenserkins.c","inputs":["linuxcnc/src/emc/kinematics/ugenserkins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/ugenserkins.c","source_sha":"dee63aebaa11f2867657bc4b9052f6a8e8bd875e06bd8a9df2d3edac9eb1c31d","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/userkfuncs.c","inputs":["linuxcnc/src/emc/kinematics/userkfuncs.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/userkfuncs.c","source_sha":"146238645955f8d4e2cb0cd34ff44db3a9dad01e149f81c08f8a53c19f1609bc","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c","inputs":["linuxcnc/src/emc/kinematics/xyzac-trt-kins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/xyzac-trt-kins.c","source_sha":"24c633613db9876c2ec246e1519a63d288fd27c68296d89f89f0368105634e69","test_id":"audit:K0-INV-01","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/source-index.jsonl","coverage/source-symbols.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c","inputs":["linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c"],"kind":"source","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-source-closure.report.json","coverage/trivkins-integration.report.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c","source_sha":"d79c06db82930ef685809a87c7207398f7893f56a6a0dfe382df2c81eaeb9562","test_id":"audit:K0-INV-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/linuxcnc.h","inputs":["linuxcnc/src/emc/linuxcnc.h"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/linuxcnc.h","source_sha":"2354d13e08489870f8008ef656021d2c40836fe2782cfd086113946b63047c99","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/motion-logger/README","inputs":["linuxcnc/src/emc/motion-logger/README"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/motion-logger/README","source_sha":"89fef6dda200656b8fd4d3796fcd3df117d27f21a473803aa865906ef900d4ef","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/emc/motion-logger/Submakefile","inputs":["linuxcnc/src/emc/motion-logger/Submakefile"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/emc/motion-logger/Submakefile","source_sha":"332e4b744d93f6c48684aa1d7d6629d0d339f887e805030915fa9bc59bee97bf","test_id":null,"web_status":"planned"} @@ -3836,7 +3851,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/conv_u64_s32.comp","inputs":["linuxcnc/src/hal/components/conv_u64_s32.comp"],"kind":"hal_component_source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/conv_u64_s32.comp","source_sha":"42edb00445089e74997dd8ff0cd039ac9450e5acdefe20036ff442fd1eadf8e9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/conv_u64_s64.comp","inputs":["linuxcnc/src/hal/components/conv_u64_s64.comp"],"kind":"hal_component_source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/conv_u64_s64.comp","source_sha":"2e34aea400ea610e6336bd0d54600b3a98b57ee97671dad4edb5dcf679a151bf","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/conv_u64_u32.comp","inputs":["linuxcnc/src/hal/components/conv_u64_u32.comp"],"kind":"hal_component_source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/conv_u64_u32.comp","source_sha":"b21e448eef013e7aa74caefd8a89e3ea9419d8f12d9bfb18abde9a776d069e11","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/corexy_by_hal.comp","inputs":["linuxcnc/src/hal/components/corexy_by_hal.comp"],"kind":"hal_component_source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/corexy_by_hal.comp","source_sha":"7cb585058976198779600ee1d27f6b4e225a89c1c6ebcc7ba699291c9463e5a8","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/coupled-kinematics.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"hal","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k2-hal","golden":null,"id":"seed:source:linuxcnc/src/hal/components/corexy_by_hal.comp","inputs":["linuxcnc/src/hal/components/corexy_by_hal.comp"],"kind":"hal_component_source","mapping_status":"verified_partial","oracle":{"report":"coverage/corexy-hal.report.json","status":"blocked"},"outputs":["coverage/corexy-hal.report.json"],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/corexy_by_hal.comp","source_sha":"7cb585058976198779600ee1d27f6b4e225a89c1c6ebcc7ba699291c9463e5a8","test_id":"audit:K2-HAL-01","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/counter.c","inputs":["linuxcnc/src/hal/components/counter.c"],"kind":"source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/counter.c","source_sha":"6f819a2f77751142b59f3a3f5e0abd030e09771f11d10482cc925d6e6da73f48","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/dbounce.comp","inputs":["linuxcnc/src/hal/components/dbounce.comp"],"kind":"hal_component_source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/dbounce.comp","source_sha":"6523f646f698fc4599c104e3caca9200edf1b51bc57b9d6d7ae20c07363882a0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:source:linuxcnc/src/hal/components/ddt.comp","inputs":["linuxcnc/src/hal/components/ddt.comp"],"kind":"hal_component_source","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"source:linuxcnc/src/hal/components/ddt.comp","source_sha":"7e7e22e012e885c13058400fedb96dbd53d6d9dc3a5a609eeacfd69cac0954dc","test_id":null,"web_status":"planned"} @@ -6368,16 +6383,16 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/.gitignore","inputs":["linuxcnc/tests/abort/feed-rate/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/.gitignore","source_sha":"db18984df78b1a6c40faac75b9fb24d6052b8dd13e1886f50f6cc5a571f80a64","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/README","inputs":["linuxcnc/tests/abort/feed-rate/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/README","source_sha":"2679e5d5ce109307dc2063bae489d620d37f65a2f10d28362e23457c6510c234","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/checkresult","inputs":["linuxcnc/tests/abort/feed-rate/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/core_sim.hal","inputs":["linuxcnc/tests/abort/feed-rate/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/core_sim.hal","inputs":["linuxcnc/tests/abort/feed-rate/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/test-ui.py","inputs":["linuxcnc/tests/abort/feed-rate/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/test-ui.py","source_sha":"319f73f04ad2b4ccb1551691a74f8ec65483db5c92269c659bfaa2010d2cdc27","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/test.ini","inputs":["linuxcnc/tests/abort/feed-rate/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/test.ini","source_sha":"379e15f8e7ebacb820e168ae77aad8f246cb80cbd905ca6f221addcb3bc578d6","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/test.ini","inputs":["linuxcnc/tests/abort/feed-rate/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/test.ini","source_sha":"379e15f8e7ebacb820e168ae77aad8f246cb80cbd905ca6f221addcb3bc578d6","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/feed-rate/test.sh","inputs":["linuxcnc/tests/abort/feed-rate/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/feed-rate/test.sh","source_sha":"c7904d36dcd3842ae2153fb00517f20aec6c71d77d2e6c97148ae391c1295fdd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/.gitignore","inputs":["linuxcnc/tests/abort/g64/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/.gitignore","source_sha":"db18984df78b1a6c40faac75b9fb24d6052b8dd13e1886f50f6cc5a571f80a64","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/README","inputs":["linuxcnc/tests/abort/g64/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/README","source_sha":"bacc2394ca7ad4afab4d4a22f1f217a66dcc3b7f41db086ceeab4528668c9f35","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/checkresult","inputs":["linuxcnc/tests/abort/g64/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/motion-test.hal","inputs":["linuxcnc/tests/abort/g64/motion-test.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/motion-test.hal","source_sha":"1d4ead890f13d5b8a042ede2fa61f3739e3153ae844f629807e6cec9f317bcb5","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/test-ui.py","inputs":["linuxcnc/tests/abort/g64/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/test-ui.py","source_sha":"a1789b128db2b4401062f717bc1b95a6c8731d87451d90623813791f857e37b3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/test.ini","inputs":["linuxcnc/tests/abort/g64/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/test.ini","source_sha":"adffddeda0142c14b942c1a6eff77f1c6ecf7a5c4b3725bea226d97758f045a5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/test.ini","inputs":["linuxcnc/tests/abort/g64/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/test.ini","source_sha":"adffddeda0142c14b942c1a6eff77f1c6ecf7a5c4b3725bea226d97758f045a5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/test.ngc","inputs":["linuxcnc/tests/abort/g64/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/test.ngc","source_sha":"3c6abd235793c6b801934f74e27410c1c04d806e7997ecbe19c5eb10d6a0916e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/g64/test.sh","inputs":["linuxcnc/tests/abort/g64/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/g64/test.sh","source_sha":"35c1ed150bf5b3e40a8d20aa0ae5ad59eac54ea686561e1dbbab66f9248b94bc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/.gitignore","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/.gitignore","source_sha":"2336ea15e539372f8ef61c25ed26e0b3b8a4b23f19be3bd3c6fb215217db1cf7","test_id":null,"web_status":"planned"} @@ -6389,7 +6404,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/simpockets.tbl","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/simpockets.tbl","source_sha":"3e4bf59bc27e80b68a62477291ff99e0e66e7808c760c8f35cf64cd4b10a662d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/subroutines/on_abort.ngc","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/subroutines/on_abort.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/subroutines/on_abort.ngc","source_sha":"2c8e15d6aaf7538efacd1dc4f172522c2251407ceb83ae75298726f5c58284e8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/test-ui.py","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/test-ui.py","source_sha":"8f146ab090d8f5973c578672c803ac8121ab1266301041f7bafccef1cca58e78","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini","source_sha":"17d9a85f9528ffbdea8d4fdd31ef5050fd986c50880fccb5769421bf45cb8561","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini","source_sha":"17d9a85f9528ffbdea8d4fdd31ef5050fd986c50880fccb5769421bf45cb8561","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/on_abort_command-crazy-move/test.sh","inputs":["linuxcnc/tests/abort/on_abort_command-crazy-move/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/on_abort_command-crazy-move/test.sh","source_sha":"72d568b401b401377edeaf30db76c636e75b58eeff02ac7899768e024a97d531","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/.gitignore","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/.gitignore","source_sha":"2336ea15e539372f8ef61c25ed26e0b3b8a4b23f19be3bd3c6fb215217db1cf7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/3D_Chips.ngc","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/3D_Chips.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/3D_Chips.ngc","source_sha":"e52671a1a4e0485473120673a4655b4aeec7495869fd13d8568d86cfddca34c5","test_id":null,"web_status":"planned"} @@ -6399,7 +6414,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/postgui.hal","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/postgui.hal","source_sha":"0ef59ade8cae9e28c45b2f75b878e5ecf9d0c49fa85be2276e2015d231f72c21","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/simpockets.tbl","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/simpockets.tbl","source_sha":"3e4bf59bc27e80b68a62477291ff99e0e66e7808c760c8f35cf64cd4b10a662d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/test-ui.py","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/test-ui.py","source_sha":"ff3a4b6e4e217fd9de95a17846fff29bc8dbf96a64ad1fc100a51d717acb0f5e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/test.ini","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/test.ini","source_sha":"db4d6e648d76220493158fe9b850fb0af344793689ce823c42b97fb879fd80f7","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/test.ini","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/test.ini","source_sha":"db4d6e648d76220493158fe9b850fb0af344793689ce823c42b97fb879fd80f7","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abort/stop-button-crazy-move/test.sh","inputs":["linuxcnc/tests/abort/stop-button-crazy-move/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abort/stop-button-crazy-move/test.sh","source_sha":"72d568b401b401377edeaf30db76c636e75b58eeff02ac7899768e024a97d531","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abs.0/expected","inputs":["linuxcnc/tests/abs.0/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abs.0/expected","source_sha":"e22258aad35e5a576cbd0fbfe0b41c78619588a266eb06feacf70df7fba9593c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/abs.0/runstreamer","inputs":["linuxcnc/tests/abs.0/runstreamer"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/abs.0/runstreamer","source_sha":"151e0fbeed24d027bcaa1c0f3b184428c91d46be019531ce73d8c26349c577df","test_id":null,"web_status":"planned"} @@ -6424,9 +6439,9 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/.gitignore","inputs":["linuxcnc/tests/ccomp/early-exit/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/.gitignore","source_sha":"db18984df78b1a6c40faac75b9fb24d6052b8dd13e1886f50f6cc5a571f80a64","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/README","inputs":["linuxcnc/tests/ccomp/early-exit/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/README","source_sha":"11712997ed4bc47fe238547646624c5895e942fbd2918835fa4ec31b903045d2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/checkresult","inputs":["linuxcnc/tests/ccomp/early-exit/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/core_sim.hal","inputs":["linuxcnc/tests/ccomp/early-exit/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/core_sim.hal","inputs":["linuxcnc/tests/ccomp/early-exit/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/test-ui.py","inputs":["linuxcnc/tests/ccomp/early-exit/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/test-ui.py","source_sha":"057c18650a3b891ed451aaa1813f70506f964c58caaa2d5dfb2577e2bc0fd3a5","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/test.ini","inputs":["linuxcnc/tests/ccomp/early-exit/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/test.ini","source_sha":"641de6b7da832c44088260e9bbfaada4e3e78a6c3ac2159773e54fb6b1bfe3b9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/test.ini","inputs":["linuxcnc/tests/ccomp/early-exit/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/test.ini","source_sha":"641de6b7da832c44088260e9bbfaada4e3e78a6c3ac2159773e54fb6b1bfe3b9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/early-exit/test.sh","inputs":["linuxcnc/tests/ccomp/early-exit/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/early-exit/test.sh","source_sha":"c7904d36dcd3842ae2153fb00517f20aec6c71d77d2e6c97148ae391c1295fdd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/lathe-comp/expected","inputs":["linuxcnc/tests/ccomp/lathe-comp/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/lathe-comp/expected","source_sha":"bd73dc38179b7ebbaf91cd97774b0ceeaca377813053485b6553e678f6f29756","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/ccomp/lathe-comp/test.ngc","inputs":["linuxcnc/tests/ccomp/lathe-comp/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/ccomp/lathe-comp/test.ngc","source_sha":"d40314817adf2b47bfa3583c88eae224658a140988a43ed15542a1788d35742f","test_id":null,"web_status":"planned"} @@ -6448,7 +6463,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/classicladder-estop-ui.py","inputs":["linuxcnc/tests/classicladder/estop/classicladder-estop-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/classicladder-estop-ui.py","source_sha":"c998e3ddf86894c9603e633023ffc85d742784b963e18a4c4f57f21a80a513d6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/classicladder-estop.clp","inputs":["linuxcnc/tests/classicladder/estop/classicladder-estop.clp"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/classicladder-estop.clp","source_sha":"e5ab35ca25d65868b976e9e6ddc9af241160c158f5084c938d9501ace9c2f157","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/classicladder-estop.hal","inputs":["linuxcnc/tests/classicladder/estop/classicladder-estop.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/classicladder-estop.hal","source_sha":"aec927b5809f5dd1425ed783ec5ef687070636186217a475fdcb919760b63f23","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/classicladder-estop.ini","inputs":["linuxcnc/tests/classicladder/estop/classicladder-estop.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/classicladder-estop.ini","source_sha":"7c6c95f5d6d70e0508e05b8cf5754fda32f55fee7ed16bbff2760b77373c4cd0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/classicladder-estop.ini","inputs":["linuxcnc/tests/classicladder/estop/classicladder-estop.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/classicladder-estop.ini","source_sha":"7c6c95f5d6d70e0508e05b8cf5754fda32f55fee7ed16bbff2760b77373c4cd0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/skip","inputs":["linuxcnc/tests/classicladder/estop/skip"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/skip","source_sha":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/classicladder/estop/test.sh","inputs":["linuxcnc/tests/classicladder/estop/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/classicladder/estop/test.sh","source_sha":"c84df79ae64ca9d8c5e5604699d47303874e76c4b0a484379ae7249bf83e754c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/counter-encoder.0/README","inputs":["linuxcnc/tests/counter-encoder.0/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/counter-encoder.0/README","source_sha":"32156b3a62fbb43c9a16acf5545c3dd748ea331a9e711c7297be5b674adbedbf","test_id":null,"web_status":"planned"} @@ -6559,12 +6574,12 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/.gitignore","inputs":["linuxcnc/tests/halui/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/.gitignore","source_sha":"380b2bd4a2eaf919d105755e06e9449a47f637a6db2c22f6dd6f740f54dc129e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/checkresult","inputs":["linuxcnc/tests/halui/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/checkresult","source_sha":"71d507e8d3af8b367c949b33e8fefca20c4453c6591a60f3132a6a16a412b553","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/jogging/checkresult","inputs":["linuxcnc/tests/halui/jogging/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/jogging/checkresult","source_sha":"71d507e8d3af8b367c949b33e8fefca20c4453c6591a60f3132a6a16a412b553","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/jogging/halui.ini","inputs":["linuxcnc/tests/halui/jogging/halui.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/jogging/halui.ini","source_sha":"b1313e1bd1c966f6ba2159d6566de6e3aa2fa2fd0a8c3462596b42bdbea3bd61","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/halui/jogging/halui.ini","inputs":["linuxcnc/tests/halui/jogging/halui.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/halui/jogging/halui.ini","source_sha":"b1313e1bd1c966f6ba2159d6566de6e3aa2fa2fd0a8c3462596b42bdbea3bd61","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/jogging/postgui.hal","inputs":["linuxcnc/tests/halui/jogging/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/jogging/postgui.hal","source_sha":"7663bd8e1084e71c61ceb999508ee87cad4deea6370ba823c10da88ba668d6f3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/jogging/test-ui.py","inputs":["linuxcnc/tests/halui/jogging/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/jogging/test-ui.py","source_sha":"4f44b31af5312b7e57ddce28847bba42786446b1d2860fc87b2c1d9892b20cd4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/jogging/test.sh","inputs":["linuxcnc/tests/halui/jogging/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/jogging/test.sh","source_sha":"290e2ba7a55c82e624283fe0fffd32fb0adf086fd20141bd2bce2e6fad688c65","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/mdi/checkresult","inputs":["linuxcnc/tests/halui/mdi/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/mdi/checkresult","source_sha":"71d507e8d3af8b367c949b33e8fefca20c4453c6591a60f3132a6a16a412b553","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/mdi/halui.ini","inputs":["linuxcnc/tests/halui/mdi/halui.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/mdi/halui.ini","source_sha":"3b634727eb2c771ed50f633d7afd68a71714b6b131e9c7ed33ff16c445f309e3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/halui/mdi/halui.ini","inputs":["linuxcnc/tests/halui/mdi/halui.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/halui/mdi/halui.ini","source_sha":"3b634727eb2c771ed50f633d7afd68a71714b6b131e9c7ed33ff16c445f309e3","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/mdi/postgui.hal","inputs":["linuxcnc/tests/halui/mdi/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/mdi/postgui.hal","source_sha":"1595be5ba214534ff35f936ce8e58fc40131cfab5290f6e2c8b3389482fb93fd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/mdi/test-ui.py","inputs":["linuxcnc/tests/halui/mdi/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/mdi/test-ui.py","source_sha":"4c7784c8c846d34138afc884ad07576ee6445bba12b600ac0059b11acecebfa8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/halui/mdi/test.sh","inputs":["linuxcnc/tests/halui/mdi/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/halui/mdi/test.sh","source_sha":"290e2ba7a55c82e624283fe0fffd32fb0adf086fd20141bd2bce2e6fad688c65","test_id":null,"web_status":"planned"} @@ -6572,8 +6587,8 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/.gitignore","inputs":["linuxcnc/tests/hard-limits/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/.gitignore","source_sha":"61bb1926e70ced316d74931e01b2c27dd67338116548536384e5fe540d79e28d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/README","inputs":["linuxcnc/tests/hard-limits/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/README","source_sha":"5986bdf28c832eaedf3e90a35fbbb6b210c61a9d0f17291ee2a7ebfdd7803717","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/checkresult","inputs":["linuxcnc/tests/hard-limits/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/checkresult","source_sha":"928f7d32ba9bd32b991ffd9de98a75e824f8523a8cc38f69774065a929e33897","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/hard-limits.hal","inputs":["linuxcnc/tests/hard-limits/hard-limits.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/hard-limits.hal","source_sha":"edd3f749b8cdcabd9a2372de84974ac07c17f089d5b69075660cdda960526851","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/hard-limits.ini","inputs":["linuxcnc/tests/hard-limits/hard-limits.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/hard-limits.ini","source_sha":"891059113a5ca0ccf655d35fd0f658c55cb94041fb884deee9d9aef0d3e494c9","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/hard-limits.hal","inputs":["linuxcnc/tests/hard-limits/hard-limits.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/hard-limits.hal","source_sha":"edd3f749b8cdcabd9a2372de84974ac07c17f089d5b69075660cdda960526851","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/hard-limits.ini","inputs":["linuxcnc/tests/hard-limits/hard-limits.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/hard-limits.ini","source_sha":"891059113a5ca0ccf655d35fd0f658c55cb94041fb884deee9d9aef0d3e494c9","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/test-ui.py","inputs":["linuxcnc/tests/hard-limits/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/test-ui.py","source_sha":"fdfef92ba3ceb7c585ff58c01844bb41f76483f30d02695caf03b57bf7813641","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hard-limits/test.sh","inputs":["linuxcnc/tests/hard-limits/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hard-limits/test.sh","source_sha":"bb5ddfad3ddc8437fe82d28ec0a3c0fe83e85b0fb6e7899c7bad2c419f1afed8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/hm2-idrom/.gitignore","inputs":["linuxcnc/tests/hm2-idrom/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/hm2-idrom/.gitignore","source_sha":"f978b561c65fe820eb48df119d8cf9bdca7cb3a2e823ba14ee161affc3179c1f","test_id":null,"web_status":"planned"} @@ -6816,7 +6831,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/expected","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/expected","source_sha":"3b80d2551355b24eb1d83a57fc07121dd9069dab7e770a3bf336df6e08da6b21","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/expected.motion-logger","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/expected.motion-logger"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/expected.motion-logger","source_sha":"9afd026350388f44b97de20750d7dc0b3c90defecf3fb0b8aebe6142e398a4a9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/mock-motion.hal","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/mock-motion.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/mock-motion.hal","source_sha":"4b164f91258e94c73295178dcc8812c0a8801659ae3574edfb0222bedacf466f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini","source_sha":"ee4c76072d3da518d3691c12a76ed28e7a1af7f3d934d9a57907db794a13a2bb","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini","source_sha":"ee4c76072d3da518d3691c12a76ed28e7a1af7f3d934d9a57907db794a13a2bb","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test-ui.py","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test-ui.py","source_sha":"e76381f8e39138e7ea984ca1416cae8378d49472f9490b1c6271e7e1e868b623","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test.ngc","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test.ngc","source_sha":"7c40c0139a832a5edce5e80e0298a28d60b96c946988d4b6460f373dce0ff837","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test.sh","inputs":["linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/test.sh","source_sha":"8fbdde490eea9db9e34ac9cbd76ae3e9721534cb048b57242f5477edf070adc1","test_id":null,"web_status":"planned"} @@ -6833,7 +6848,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/magic_comments/param_format_printing/test.sh","inputs":["linuxcnc/tests/interp/magic_comments/param_format_printing/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/magic_comments/param_format_printing/test.sh","source_sha":"5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/.gitignore","inputs":["linuxcnc/tests/interp/mdi-oword-m66/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/.gitignore","source_sha":"4cc7e289dadcebf7d5664be28937a722bb67e90f2646ae55123ba97ae2a0554b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/checkresult","inputs":["linuxcnc/tests/interp/mdi-oword-m66/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/interp.ini","inputs":["linuxcnc/tests/interp/mdi-oword-m66/interp.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/interp.ini","source_sha":"5d37a151be4a0f612c0b628c6d31d8be261eb656ecb54ece7dd24ff5acb25797","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/interp.ini","inputs":["linuxcnc/tests/interp/mdi-oword-m66/interp.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/interp.ini","source_sha":"5d37a151be4a0f612c0b628c6d31d8be261eb656ecb54ece7dd24ff5acb25797","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/simpockets.tbl","inputs":["linuxcnc/tests/interp/mdi-oword-m66/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/subs/obug.ngc","inputs":["linuxcnc/tests/interp/mdi-oword-m66/subs/obug.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/subs/obug.ngc","source_sha":"cd24496ef6c76c976b26ae58832db170c62ff0e8e8b7605bda35e137ae0e58b2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/mdi-oword-m66/test-ui.py","inputs":["linuxcnc/tests/interp/mdi-oword-m66/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/mdi-oword-m66/test-ui.py","source_sha":"6ad8efa62eac669ae3d07de3150eed80469f099997d0d453a77949fd58036d98","test_id":null,"web_status":"planned"} @@ -6854,7 +6869,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/README","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/README","source_sha":"a6d428f0281627723acaad1b2229a4cacd2e637647f61e2ab462c50b59dae6ab","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/checkresult","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/checkresult","source_sha":"9bea1356236619704e627d8ac1ded2a502c2887757014794abcb8077ff020ac2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/edit.sh","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/edit.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/edit.sh","source_sha":"4627d8a87ad92c967a7659e0a3c0148a7f85c2998e7e99d67b38d7a5c23ad6b8","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini","source_sha":"062e300ffc8f9e357550e63a1358bb157797383cb17e0e1e9b200e274a4a3e24","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini","source_sha":"062e300ffc8f9e357550e63a1358bb157797383cb17e0e1e9b200e274a4a3e24","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/simpockets.tbl","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/subs/test1-orig.ngc","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/subs/test1-orig.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/subs/test1-orig.ngc","source_sha":"4e212de4948574120f817914251cc93f5ff66e747e97adaa9fa9c65cd5690217","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/oword-mdi-sub-update/test-ui.py","inputs":["linuxcnc/tests/interp/oword-mdi-sub-update/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/oword-mdi-sub-update/test-ui.py","source_sha":"9b7bb423f0ed54facf215fc21e24032718a9b48a570298b5467c5d5dac19f986","test_id":null,"web_status":"planned"} @@ -6914,7 +6929,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/sequence-number/test.sh","inputs":["linuxcnc/tests/interp/sequence-number/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/sequence-number/test.sh","source_sha":"535038cbdd815beb8a8fdf3878a4a2246039b19975791e4e8fa6a5a8103aaf34","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/.gitignore","inputs":["linuxcnc/tests/interp/subroutine-return/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/.gitignore","source_sha":"4cc7e289dadcebf7d5664be28937a722bb67e90f2646ae55123ba97ae2a0554b","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/checkresult","inputs":["linuxcnc/tests/interp/subroutine-return/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/interp.ini","inputs":["linuxcnc/tests/interp/subroutine-return/interp.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/interp.ini","source_sha":"4241950a539befa83703214592a0666cd16722c59bbc4a822eba3d92d2fc90d8","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/interp.ini","inputs":["linuxcnc/tests/interp/subroutine-return/interp.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/interp.ini","source_sha":"4241950a539befa83703214592a0666cd16722c59bbc4a822eba3d92d2fc90d8","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/orig.ngc","inputs":["linuxcnc/tests/interp/subroutine-return/orig.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/orig.ngc","source_sha":"441c1cd22a919b05e5b92f82c7fb62c990b42d9aaf71bc06fe943e39c4999303","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/simpockets.tbl","inputs":["linuxcnc/tests/interp/subroutine-return/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/interp/subroutine-return/subs/orig-sub.ngc","inputs":["linuxcnc/tests/interp/subroutine-return/subs/orig-sub.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/interp/subroutine-return/subs/orig-sub.ngc","source_sha":"1c7abc081ccd5a51a20476cd50349629084f35da6c9117ac1aabdf167fa197b2","test_id":null,"web_status":"planned"} @@ -6934,32 +6949,32 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/checkresult","inputs":["linuxcnc/tests/io-startup/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/checkresult","inputs":["linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/expected-startup-tool-number","inputs":["linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/expected-startup-tool-number"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/expected-startup-tool-number","source_sha":"9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.ini","source_sha":"76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.ini","source_sha":"76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.sh","inputs":["linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/test.sh","source_sha":"e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/tool.tbl.original","inputs":["linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/no-tool-in-P0/tool.tbl.original","source_sha":"1db74ae9166fe086158f4b19442a2360785b55202cb48bf7230df7b9da610f8c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/test.ini","inputs":["linuxcnc/tests/io-startup/nonrandom/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/test.ini","source_sha":"76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/test.ini","inputs":["linuxcnc/tests/io-startup/nonrandom/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/test.ini","source_sha":"76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/checkresult","inputs":["linuxcnc/tests/io-startup/nonrandom/tool-in-P0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/expected-startup-tool-number","inputs":["linuxcnc/tests/io-startup/nonrandom/tool-in-P0/expected-startup-tool-number"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/expected-startup-tool-number","source_sha":"9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.ini","source_sha":"76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.ini","source_sha":"76d7285e12c851859615c98dda9df6969fc38b30f4f8186b2ea9f53680e28da3","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.sh","inputs":["linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/test.sh","source_sha":"e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/tool.tbl.original","inputs":["linuxcnc/tests/io-startup/nonrandom/tool-in-P0/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/nonrandom/tool-in-P0/tool.tbl.original","source_sha":"509dee0e1ce678f6aa08c6612fae0f537959885f0858f0d94faa32d388c887c1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/postgui.hal","inputs":["linuxcnc/tests/io-startup/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/postgui.hal","source_sha":"5fd30646a778a3aa0f70a16a8f64cdc6d9ab4f7954aa34777e8372da32794272","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/no-tool-in-P0/checkresult","inputs":["linuxcnc/tests/io-startup/random/no-tool-in-P0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/no-tool-in-P0/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/no-tool-in-P0/expected-startup-tool-number","inputs":["linuxcnc/tests/io-startup/random/no-tool-in-P0/expected-startup-tool-number"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/no-tool-in-P0/expected-startup-tool-number","source_sha":"ee3aa64bb94a50845d5024cd4bd20202a4567aed5cd5328c0d97e9920775fc28","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/no-tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/random/no-tool-in-P0/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/no-tool-in-P0/test.ini","source_sha":"085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/no-tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/random/no-tool-in-P0/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/no-tool-in-P0/test.ini","source_sha":"085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/no-tool-in-P0/test.sh","inputs":["linuxcnc/tests/io-startup/random/no-tool-in-P0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/no-tool-in-P0/test.sh","source_sha":"e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/no-tool-in-P0/tool.tbl.original","inputs":["linuxcnc/tests/io-startup/random/no-tool-in-P0/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/no-tool-in-P0/tool.tbl.original","source_sha":"1db74ae9166fe086158f4b19442a2360785b55202cb48bf7230df7b9da610f8c","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/test.ini","inputs":["linuxcnc/tests/io-startup/random/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/test.ini","source_sha":"085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/test.ini","inputs":["linuxcnc/tests/io-startup/random/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/test.ini","source_sha":"085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/tool-in-P0/checkresult","inputs":["linuxcnc/tests/io-startup/random/tool-in-P0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/tool-in-P0/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/tool-in-P0/expected-startup-tool-number","inputs":["linuxcnc/tests/io-startup/random/tool-in-P0/expected-startup-tool-number"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/tool-in-P0/expected-startup-tool-number","source_sha":"53c234e5e8472b6ac51c1ae1cab3fe06fad053beb8ebfd8977b010655bfdd3c3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/random/tool-in-P0/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/tool-in-P0/test.ini","source_sha":"085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/tool-in-P0/test.ini","inputs":["linuxcnc/tests/io-startup/random/tool-in-P0/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/tool-in-P0/test.ini","source_sha":"085a5128526dce7a1d10b39fb547abb3ec8b9f6a214e4cb8d41c22b373300c48","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/tool-in-P0/test.sh","inputs":["linuxcnc/tests/io-startup/random/tool-in-P0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/tool-in-P0/test.sh","source_sha":"e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/random/tool-in-P0/tool.tbl.original","inputs":["linuxcnc/tests/io-startup/random/tool-in-P0/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/random/tool-in-P0/tool.tbl.original","source_sha":"509dee0e1ce678f6aa08c6612fae0f537959885f0858f0d94faa32d388c887c1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/shared-test.sh","inputs":["linuxcnc/tests/io-startup/shared-test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/shared-test.sh","source_sha":"e96aefc914933c4aa51d0c94c642a9698c404f6a9863d05fa4073cb98956e006","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/io-startup/test-ui.py","inputs":["linuxcnc/tests/io-startup/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/io-startup/test-ui.py","source_sha":"623d518be9cc645fef567535cde45c95410df7b0631f9cbd9f42e8a9f42f0af2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/lathe/.gitignore","inputs":["linuxcnc/tests/lathe/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/lathe/.gitignore","source_sha":"6474e06f3b4b859c15c048595ed43b729ae23c4600f40f4a9167ea25421f76b7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/lathe/checkresult","inputs":["linuxcnc/tests/lathe/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/lathe/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/lathe/lathe.ini","inputs":["linuxcnc/tests/lathe/lathe.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/lathe/lathe.ini","source_sha":"d276df38c324690d1eb10c7f3e4d0a40ef2dc5efd02631b7bf7634eac702b6c8","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/lathe/lathe.ini","inputs":["linuxcnc/tests/lathe/lathe.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/lathe/lathe.ini","source_sha":"d276df38c324690d1eb10c7f3e4d0a40ef2dc5efd02631b7bf7634eac702b6c8","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/lathe/test-ui.py","inputs":["linuxcnc/tests/lathe/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/lathe/test-ui.py","source_sha":"62c54baddbc969bd47d1edab7f7341f1383c906c01f93571d1c5422455bc7690","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/lathe/test.sh","inputs":["linuxcnc/tests/lathe/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/lathe/test.sh","source_sha":"7eb572de3d6f67c4dd1ec5fcbeae73ecdd21cf3fc05ae06220be57f1834cf160","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/limit3/checkresult","inputs":["linuxcnc/tests/limit3/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/limit3/checkresult","source_sha":"059a90ea5405718de637aaffad487eeb801dff5672ae90c98aaa43f2cdeb7619","test_id":null,"web_status":"planned"} @@ -6986,7 +7001,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/.gitignore","inputs":["linuxcnc/tests/linuxcncrsh-tcp/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/.gitignore","source_sha":"ae478ebdc5a07fd7a072d3c96b21d37de726b2b479df7b19384e4596ac28091e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/checkresult","inputs":["linuxcnc/tests/linuxcncrsh-tcp/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/expected-gcode-output","inputs":["linuxcnc/tests/linuxcncrsh-tcp/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/expected-gcode-output","source_sha":"2d5f955109305ff5a78b4ed0ecf649612de393119f1cbbe401625456867ff6a3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini","source_sha":"98586fcd5086492f2a59249eb7aef85f70b3192c7c4f1b24430163feabb0c43c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini","source_sha":"98586fcd5086492f2a59249eb7aef85f70b3192c7c4f1b24430163feabb0c43c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/lots-of-gcode","inputs":["linuxcnc/tests/linuxcncrsh-tcp/lots-of-gcode"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/lots-of-gcode","source_sha":"28c4a672d52bfefa8bc20ae72ae582d53725f666739122d331bb685b98774c22","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/subs/M100","inputs":["linuxcnc/tests/linuxcncrsh-tcp/subs/M100"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/subs/M100","source_sha":"b28fa76e50068da9168e39642911e9d00ecba61ef5add92066889f5ea78ffb5c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh-tcp/tcp.nml","inputs":["linuxcnc/tests/linuxcncrsh-tcp/tcp.nml"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh-tcp/tcp.nml","source_sha":"284dc9c2e28bfdb544031a2003285e72f43c6759f9719e757fb151bb92175763","test_id":null,"web_status":"planned"} @@ -6994,7 +7009,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/.gitignore","inputs":["linuxcnc/tests/linuxcncrsh/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/.gitignore","source_sha":"ae478ebdc5a07fd7a072d3c96b21d37de726b2b479df7b19384e4596ac28091e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/checkresult","inputs":["linuxcnc/tests/linuxcncrsh/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/expected-gcode-output","inputs":["linuxcnc/tests/linuxcncrsh/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/expected-gcode-output","source_sha":"2d5f955109305ff5a78b4ed0ecf649612de393119f1cbbe401625456867ff6a3","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini","source_sha":"d34ed8cc76ebada979fdb05188d965f72cd0f8abb15b3885152e7c4b2f6af9dc","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini","source_sha":"d34ed8cc76ebada979fdb05188d965f72cd0f8abb15b3885152e7c4b2f6af9dc","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/lots-of-gcode","inputs":["linuxcnc/tests/linuxcncrsh/lots-of-gcode"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/lots-of-gcode","source_sha":"28c4a672d52bfefa8bc20ae72ae582d53725f666739122d331bb685b98774c22","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/subs/M100","inputs":["linuxcnc/tests/linuxcncrsh/subs/M100"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/subs/M100","source_sha":"b28fa76e50068da9168e39642911e9d00ecba61ef5add92066889f5ea78ffb5c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/linuxcncrsh/test.sh","inputs":["linuxcnc/tests/linuxcncrsh/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/linuxcncrsh/test.sh","source_sha":"181e3dfd1daf85d8e291472d13ac3283ecf43fbd7cf2e0ec09a4cc6bf305abb6","test_id":null,"web_status":"planned"} @@ -7020,9 +7035,9 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/m70-m73/m73autorestore.0/test.sh","inputs":["linuxcnc/tests/m70-m73/m73autorestore.0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/m70-m73/m73autorestore.0/test.sh","source_sha":"5aca3854d97d0124e6dd9289ed71922ec287c2fcea27f7836ee6a4c21a1479fd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/README","inputs":["linuxcnc/tests/matrixkins/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/README","source_sha":"3ef06d3af7a4e338a4b74f19c8024af853c129de41a409a171577697154d3728","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/checkresult","inputs":["linuxcnc/tests/matrixkins/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/core_sim.hal","inputs":["linuxcnc/tests/matrixkins/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/core_sim.hal","source_sha":"d86a435fc0e55166541ddc67f57ee31035f38f13c1893c24f145b1ea9b96cbe1","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/core_sim.hal","inputs":["linuxcnc/tests/matrixkins/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/core_sim.hal","source_sha":"d86a435fc0e55166541ddc67f57ee31035f38f13c1893c24f145b1ea9b96cbe1","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/test-ui.py","inputs":["linuxcnc/tests/matrixkins/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/test-ui.py","source_sha":"56f22c5de2655977ae380b57b29ce01213303effe37b484e650b2cd9bc376552","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/test.ini","inputs":["linuxcnc/tests/matrixkins/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/test.ini","source_sha":"8d799f31b43250680a79d2a4c252d863bea1d2647d8e95e8cf345c2c47bd9fea","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/test.ini","inputs":["linuxcnc/tests/matrixkins/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/test.ini","source_sha":"8d799f31b43250680a79d2a4c252d863bea1d2647d8e95e8cf345c2c47bd9fea","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/matrixkins/test.sh","inputs":["linuxcnc/tests/matrixkins/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/matrixkins/test.sh","source_sha":"c7904d36dcd3842ae2153fb00517f20aec6c71d77d2e6c97148ae391c1295fdd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mb2hal/mb2hal.1a/checkresult","inputs":["linuxcnc/tests/mb2hal/mb2hal.1a/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mb2hal/mb2hal.1a/checkresult","source_sha":"6ea4d0d55d816481c30cd3a56fc90cf83206cb0329161589e610cdad0c51a5ba","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mb2hal/mb2hal.1a/expected","inputs":["linuxcnc/tests/mb2hal/mb2hal.1a/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mb2hal/mb2hal.1a/expected","source_sha":"23ae69a4c452c877f9a09d1b57474dac81c742b03ea8b66579f8592c17326a08","test_id":null,"web_status":"planned"} @@ -7047,20 +7062,20 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/.gitignore","inputs":["linuxcnc/tests/mdi-queue-length/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/.gitignore","source_sha":"476e4aa8b0bd503115417f2accc8ec4f353d4fdc3b638d533eb7b6cae312eace","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/README","inputs":["linuxcnc/tests/mdi-queue-length/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/README","source_sha":"eb0cea25bf5e34a96cb6234e6bc2cc84c85a9da24437c6d5ed691bcc64835988","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/checkresult","inputs":["linuxcnc/tests/mdi-queue-length/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/core_sim.hal","inputs":["linuxcnc/tests/mdi-queue-length/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/core_sim.hal","source_sha":"0aca271274de128e3f51e4f1f6874627a98c2e85db793b8d1d3ab7721badb3e8","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/core_sim.hal","inputs":["linuxcnc/tests/mdi-queue-length/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/core_sim.hal","source_sha":"0aca271274de128e3f51e4f1f6874627a98c2e85db793b8d1d3ab7721badb3e8","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/test-ui.py","inputs":["linuxcnc/tests/mdi-queue-length/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/test-ui.py","source_sha":"278ed706c86fb6d44ef335ee75f66b2215958a6dbfdf8578717d73480b297f0e","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/test.ini","inputs":["linuxcnc/tests/mdi-queue-length/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/test.ini","source_sha":"438595e3b9d7632ecf33c582befab258b76806a23c656965e278b7c51428f804","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/test.ini","inputs":["linuxcnc/tests/mdi-queue-length/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/test.ini","source_sha":"438595e3b9d7632ecf33c582befab258b76806a23c656965e278b7c51428f804","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue-length/test.sh","inputs":["linuxcnc/tests/mdi-queue-length/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue-length/test.sh","source_sha":"c7904d36dcd3842ae2153fb00517f20aec6c71d77d2e6c97148ae391c1295fdd","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/.gitignore","inputs":["linuxcnc/tests/mdi-queue/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/.gitignore","source_sha":"49f2a1ed1ac4e51d2d6efdc60e6f1aea7e768584a60cc65da6ec433583cd822d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini","source_sha":"42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini","source_sha":"42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/oword-queue-buster/checkresult","inputs":["linuxcnc/tests/mdi-queue/oword-queue-buster/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/oword-queue-buster/checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/oword-queue-buster/dummy.ngc","inputs":["linuxcnc/tests/mdi-queue/oword-queue-buster/dummy.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/oword-queue-buster/dummy.ngc","source_sha":"cae88266086f69df5f8f52f9b9313649803ce7ac2e8b550a16e06bfcfd8efb9b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/oword-queue-buster/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/mdi-queue/oword-queue-buster/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/oword-queue-buster/linuxcncrsh-test.ini","source_sha":"42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/oword-queue-buster/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/mdi-queue/oword-queue-buster/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/oword-queue-buster/linuxcncrsh-test.ini","source_sha":"42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/oword-queue-buster/test.sh","inputs":["linuxcnc/tests/mdi-queue/oword-queue-buster/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/oword-queue-buster/test.sh","source_sha":"d9e98bfc0f2092a72b51c8b436ea12ffb5ada39cb5153ac76c2c4faf0f99af15","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/oword-queue-buster/tool.tbl","inputs":["linuxcnc/tests/mdi-queue/oword-queue-buster/tool.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/oword-queue-buster/tool.tbl","source_sha":"8283d0384ced6e534210842db89d21ce22a8d263681f3c384357115a636bc97a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/shared-checkresult","inputs":["linuxcnc/tests/mdi-queue/shared-checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/shared-checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/simple-queue-buster/checkresult","inputs":["linuxcnc/tests/mdi-queue/simple-queue-buster/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/simple-queue-buster/checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/simple-queue-buster/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/mdi-queue/simple-queue-buster/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/simple-queue-buster/linuxcncrsh-test.ini","source_sha":"42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/simple-queue-buster/linuxcncrsh-test.ini","inputs":["linuxcnc/tests/mdi-queue/simple-queue-buster/linuxcncrsh-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/simple-queue-buster/linuxcncrsh-test.ini","source_sha":"42e8e1bf77457254686905ddbeb784e5ee0d2720967c42f463c13002555d1959","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/simple-queue-buster/test.sh","inputs":["linuxcnc/tests/mdi-queue/simple-queue-buster/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/simple-queue-buster/test.sh","source_sha":"c13ba0c6d87fb9110c1b6b762dde0a243f7a0ceba54c92575e8aeec90b8e7bf1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/simple-queue-buster/tool.tbl","inputs":["linuxcnc/tests/mdi-queue/simple-queue-buster/tool.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/simple-queue-buster/tool.tbl","source_sha":"8283d0384ced6e534210842db89d21ce22a8d263681f3c384357115a636bc97a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-queue/subs/M100","inputs":["linuxcnc/tests/mdi-queue/subs/M100"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-queue/subs/M100","source_sha":"8652a63f24e77ed09d3393c3c36f79b39d24fb8186955d4eb861bca26a204b0a","test_id":null,"web_status":"planned"} @@ -7069,11 +7084,11 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/.gitignore","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/.gitignore","source_sha":"573b9ca777c62ed0a5ebf0a9aad856fa4cf38cd56d9bbdb3f6c29008c8dff448","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/README","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/README","source_sha":"0395e55a063aad0ad3e8f4d0cbd75f77af6824e41a82a2445f50e17eb0ccb92d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/checkresult","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal","source_sha":"5d60097b8468be84daf711cb693f12db3c3186ddc078bd3ff210d058e6a03912","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/core_sim.hal","source_sha":"5d60097b8468be84daf711cb693f12db3c3186ddc078bd3ff210d058e6a03912","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/remap.py","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/remap.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/remap.py","source_sha":"831ae1ac8997e087fef05aa5e0b672ca497645fa381a4856890933d798bace35","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/simpockets.tbl","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test-ui.py","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test-ui.py","source_sha":"0b5b786e7b5a57db56690e94b6bc94110be9fb1f493b54639be0e5ae517b7b8a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini","source_sha":"2c64e0acf68a95a1e10c92d074054cc865170e7f72f4dd806847d297b97ad636","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini","source_sha":"2c64e0acf68a95a1e10c92d074054cc865170e7f72f4dd806847d297b97ad636","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.sh","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.sh","source_sha":"d3d754cdd99fd1f947f7858b2a0330a4be42bc02778009f38152c73995664fd0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mdi-while-queuebuster-waitflag/toplevel.py","inputs":["linuxcnc/tests/mdi-while-queuebuster-waitflag/toplevel.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mdi-while-queuebuster-waitflag/toplevel.py","source_sha":"3f682d12e460b98a6f6a5c76a80b43be6cbd0276951811c6fa08b6da9dc8d0f1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/modparam.0/expected","inputs":["linuxcnc/tests/modparam.0/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/modparam.0/expected","source_sha":"60eadedc44e304195ea61783cf5041fdb6675d3200afc6496cc8b205918a8967","test_id":null,"web_status":"planned"} @@ -7356,13 +7371,13 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/basic/reset.ngc","inputs":["linuxcnc/tests/motion-logger/basic/reset.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/basic/reset.ngc","source_sha":"afa22d549a5a775d94661b53d31dce524ce7657ff5bf1d9259b630275ff77753","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/basic/s.ngc","inputs":["linuxcnc/tests/motion-logger/basic/s.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/basic/s.ngc","source_sha":"c55ed38a07a3dcb5cda71258a24d689585a1b5f4212a66affc24cfdba5cdf32e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/basic/test-ui.py","inputs":["linuxcnc/tests/motion-logger/basic/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/basic/test-ui.py","source_sha":"76e056a818a71107ddfa1d5612ee0e15a8a910e8ad37f7c9626e49378801f6cc","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/basic/test.ini","inputs":["linuxcnc/tests/motion-logger/basic/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/basic/test.ini","source_sha":"0be45be55bd122664c96b9797cd17abc7eed593ffe5c8b488b31d7737d823936","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/basic/test.ini","inputs":["linuxcnc/tests/motion-logger/basic/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/basic/test.ini","source_sha":"0be45be55bd122664c96b9797cd17abc7eed593ffe5c8b488b31d7737d823936","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/basic/test.sh","inputs":["linuxcnc/tests/motion-logger/basic/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/basic/test.sh","source_sha":"46f57af48221b1c3f17e3b9e68d6cdd1c55052a0d37b3aa4ef4afc197f22f913","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/.gitignore","inputs":["linuxcnc/tests/motion-logger/mountaindew/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/.gitignore","source_sha":"511a2377c5ca42be42f404fe34e16de8cec40b5791d81c687bfe9934e58af2ca","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/checkresult","inputs":["linuxcnc/tests/motion-logger/mountaindew/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/checkresult","source_sha":"177380330f4a079d4e5e5198b43be508ccf9f335f5e3fe114dccb6c2dfc45fe6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/expected.motion-logger","inputs":["linuxcnc/tests/motion-logger/mountaindew/expected.motion-logger"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/expected.motion-logger","source_sha":"4a6ca9461343f24f674f2bc3263e86519a30ffd2949e6160f9b3a6fb529d647f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/mock-motion.hal","inputs":["linuxcnc/tests/motion-logger/mountaindew/mock-motion.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/mock-motion.hal","source_sha":"4b164f91258e94c73295178dcc8812c0a8801659ae3574edfb0222bedacf466f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini","inputs":["linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini","source_sha":"84a7790fc6ca275e545bd6a41ab047adb296a6bd9a8089aa71acf9912b20d6ea","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini","inputs":["linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini","source_sha":"84a7790fc6ca275e545bd6a41ab047adb296a6bd9a8089aa71acf9912b20d6ea","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ngc","inputs":["linuxcnc/tests/motion-logger/mountaindew/mountaindew.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ngc","source_sha":"da93d806539888fbe993ffd58e0c652b853f780670d9ac64638043c5296f40aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/subs/m442.ngc","inputs":["linuxcnc/tests/motion-logger/mountaindew/subs/m442.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/subs/m442.ngc","source_sha":"f8af6d44835db9720114b861fd58a6dfecf3d710602bb7d23d43f09690766dda","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/mountaindew/test-ui.py","inputs":["linuxcnc/tests/motion-logger/mountaindew/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/mountaindew/test-ui.py","source_sha":"c0feaa85dcfee8aba6c575880921d94d3e5c7f532f30c40d3cbafab15c159c14","test_id":null,"web_status":"planned"} @@ -7373,30 +7388,30 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/startup-gcode-abort/mock-motion.hal","inputs":["linuxcnc/tests/motion-logger/startup-gcode-abort/mock-motion.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/startup-gcode-abort/mock-motion.hal","source_sha":"4b164f91258e94c73295178dcc8812c0a8801659ae3574edfb0222bedacf466f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/startup-gcode-abort/nc_files/init.ngc","inputs":["linuxcnc/tests/motion-logger/startup-gcode-abort/nc_files/init.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/startup-gcode-abort/nc_files/init.ngc","source_sha":"80b41785f68766cb8e9ad0b5ff47bf3b51172888acf5601d40c28fc45395365a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/startup-gcode-abort/test-ui.py","inputs":["linuxcnc/tests/motion-logger/startup-gcode-abort/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/startup-gcode-abort/test-ui.py","source_sha":"99790f9e239500ce02e8e45cacf8cd5566e419d0b4dd0484a6c8204720ed59eb","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini","inputs":["linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini","source_sha":"4c38be12b4fed74481506483e6f30f87a8afc1a9e2d508fc3584fe196602ca0d","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini","inputs":["linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini","source_sha":"4c38be12b4fed74481506483e6f30f87a8afc1a9e2d508fc3584fe196602ca0d","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.sh","inputs":["linuxcnc/tests/motion-logger/startup-gcode-abort/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion-logger/startup-gcode-abort/test.sh","source_sha":"46f57af48221b1c3f17e3b9e68d6cdd1c55052a0d37b3aa4ef4afc197f22f913","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/.gitignore","inputs":["linuxcnc/tests/motion/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/.gitignore","source_sha":"6e553029f1da700def987a491d974ebefba5f86c9fe4bb9a333c25f61fbc678e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/README","inputs":["linuxcnc/tests/motion/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/README","source_sha":"c4c74c519341649b1e6b1c7b79dbf1a89a91e0626b8524f2a7254adbce2d0219","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/g0/checkresult","inputs":["linuxcnc/tests/motion/g0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/g0/checkresult","source_sha":"9b1f8ca4b2d769951bd1fa5af4462f835eaab0697810941f323092352f3ea9c1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/g0/motion-test.hal","inputs":["linuxcnc/tests/motion/g0/motion-test.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/g0/motion-test.hal","source_sha":"cbcfdd5d15154a2dffae132351aac59c3e2d2d8062585e4cf114b3e9423354a8","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/g0/motion-test.ini","inputs":["linuxcnc/tests/motion/g0/motion-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/g0/motion-test.ini","source_sha":"4f3e355edff4ad3bd618fc72f16b2be7ee17c992b32010b0ae5c998950dcda18","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/motion/g0/motion-test.ini","inputs":["linuxcnc/tests/motion/g0/motion-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/motion/g0/motion-test.ini","source_sha":"4f3e355edff4ad3bd618fc72f16b2be7ee17c992b32010b0ae5c998950dcda18","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/g0/test.sh","inputs":["linuxcnc/tests/motion/g0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/g0/test.sh","source_sha":"9ac98482540edd6a6ed464ac41549c017ff460d093e0ae31d2edb64ec87599be","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/.gitignore","inputs":["linuxcnc/tests/motion/jogwheel-axis/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/.gitignore","source_sha":"9f93b6940ef826947ac8bd4a8f88b2c8162a6e214434c2d88102cac598fd905c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/checkresult","inputs":["linuxcnc/tests/motion/jogwheel-axis/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/checkresult","source_sha":"71d507e8d3af8b367c949b33e8fefca20c4453c6591a60f3132a6a16a412b553","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini","inputs":["linuxcnc/tests/motion/jogwheel-axis/motion-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini","source_sha":"882025f154b01e29af2e2b1f56d29ee55921716e9018faaf40c7d516061867a6","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini","inputs":["linuxcnc/tests/motion/jogwheel-axis/motion-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini","source_sha":"882025f154b01e29af2e2b1f56d29ee55921716e9018faaf40c7d516061867a6","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/postgui.hal","inputs":["linuxcnc/tests/motion/jogwheel-axis/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/postgui.hal","source_sha":"8f8f8551a3c7473b8d3146629abca58c832c82d9356eee361689e1574089fa50","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/test-ui.py","inputs":["linuxcnc/tests/motion/jogwheel-axis/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/test-ui.py","source_sha":"219b484d6ea6f386e9a315b4fabeab55eed6a6a275baf2b4ee04e4b8af9adada","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-axis/test.sh","inputs":["linuxcnc/tests/motion/jogwheel-axis/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-axis/test.sh","source_sha":"b04629b6d0e8a4fc834863bdab1ccf4c80cafb324740837dd57da724d6f59469","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/.gitignore","inputs":["linuxcnc/tests/motion/jogwheel-joint/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/.gitignore","source_sha":"9f93b6940ef826947ac8bd4a8f88b2c8162a6e214434c2d88102cac598fd905c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/checkresult","inputs":["linuxcnc/tests/motion/jogwheel-joint/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/checkresult","source_sha":"71d507e8d3af8b367c949b33e8fefca20c4453c6591a60f3132a6a16a412b553","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini","inputs":["linuxcnc/tests/motion/jogwheel-joint/motion-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini","source_sha":"a52b8411b34e2d5b83669e936c4495cc2a6d4e4fdc6f6e7e707fad5f17e28e31","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini","inputs":["linuxcnc/tests/motion/jogwheel-joint/motion-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini","source_sha":"a52b8411b34e2d5b83669e936c4495cc2a6d4e4fdc6f6e7e707fad5f17e28e31","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/postgui.hal","inputs":["linuxcnc/tests/motion/jogwheel-joint/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/postgui.hal","source_sha":"460cb92fd84d0702958f8459dc38a1ab26c1ca9688c04b61ae2b2b0f02a99526","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/test-ui.py","inputs":["linuxcnc/tests/motion/jogwheel-joint/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/test-ui.py","source_sha":"b2633097321c568774c943ad6b5fe0fd37501479b00fa921bb93718dfa353d3d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/motion/jogwheel-joint/test.sh","inputs":["linuxcnc/tests/motion/jogwheel-joint/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/motion/jogwheel-joint/test.sh","source_sha":"b04629b6d0e8a4fc834863bdab1ccf4c80cafb324740837dd57da724d6f59469","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mqtt/checkresult","inputs":["linuxcnc/tests/mqtt/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mqtt/display.py","inputs":["linuxcnc/tests/mqtt/display.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/display.py","source_sha":"33c3293cda097be5d9d44e6c84ee16b10388675e3061f4ddfc9bde45e04eaa01","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mqtt/simulator.hal","inputs":["linuxcnc/tests/mqtt/simulator.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/simulator.hal","source_sha":"662e0bec716dfee210d63995cdaace0fceaf9285b1fa75a90dd813d2d3a3591d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mqtt/simulator.ini","inputs":["linuxcnc/tests/mqtt/simulator.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/simulator.ini","source_sha":"4411ba88a19c25808c58130387dd8b48349c1cb63aab262792f797af1cf8994c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mqtt/simulator.hal","inputs":["linuxcnc/tests/mqtt/simulator.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/simulator.hal","source_sha":"662e0bec716dfee210d63995cdaace0fceaf9285b1fa75a90dd813d2d3a3591d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/mqtt/simulator.ini","inputs":["linuxcnc/tests/mqtt/simulator.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/simulator.ini","source_sha":"4411ba88a19c25808c58130387dd8b48349c1cb63aab262792f797af1cf8994c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/mqtt/test.sh","inputs":["linuxcnc/tests/mqtt/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/mqtt/test.sh","source_sha":"5c044819a50b7747fe38657a1742ed08e4d4fa0e45f85a89bfe3b11e3daf071d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/multiclick/README","inputs":["linuxcnc/tests/multiclick/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/multiclick/README","source_sha":"c571f76e8edf6ed76b37c2802434d150dfd54e96b734d60ff8feb5fa011e07db","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/multiclick/expected","inputs":["linuxcnc/tests/multiclick/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/multiclick/expected","source_sha":"b1a12c93d9a9851c03bb9450cc02ed068c58cf97d6d1e087fcd3629d5608c1af","test_id":null,"web_status":"planned"} @@ -7540,7 +7555,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/predefined-named-params/test.ngc","inputs":["linuxcnc/tests/remap/predefined-named-params/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/predefined-named-params/test.ngc","source_sha":"8b9ea4527fb5fad006060a7f9fcf14035349154a276cfe1e17b8deb1b1c7d831","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/predefined-named-params/test.sh","inputs":["linuxcnc/tests/remap/predefined-named-params/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/predefined-named-params/test.sh","source_sha":"3925db250a9e34ddacce6e585f0d5bdbc74b618a273e2941fcdea9fcc6a00b7c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/README","inputs":["linuxcnc/tests/remap/remap-io/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/README","source_sha":"2135eb7b1734f52b38642b64f656eeaa21284d792d00be53c9e976c7a92d068d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/core_sim.hal","inputs":["linuxcnc/tests/remap/remap-io/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/core_sim.hal","source_sha":"ac762d6126e58f3f85f57da64c6764eea9d04251bffec460a056eaf5ac358eba","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/core_sim.hal","inputs":["linuxcnc/tests/remap/remap-io/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/core_sim.hal","source_sha":"ac762d6126e58f3f85f57da64c6764eea9d04251bffec460a056eaf5ac358eba","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/expected","inputs":["linuxcnc/tests/remap/remap-io/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/expected","source_sha":"64d216aaf7d78567423590088b31823e45ccea8e34b73da0fe675ee0749d024f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/io_input_m66.ngc","inputs":["linuxcnc/tests/remap/remap-io/io_input_m66.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/io_input_m66.ngc","source_sha":"105349100c0c9b70f3c432b7248b985d791654ed7ed64530b2c1533185542f04","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/io_output_m62.ngc","inputs":["linuxcnc/tests/remap/remap-io/io_output_m62.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/io_output_m62.ngc","source_sha":"2580c0de1544673549eff6ba664e20829ce69731ed7e790e0f7adc8abc4befa8","test_id":null,"web_status":"planned"} @@ -7552,18 +7567,18 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/postgui.hal","inputs":["linuxcnc/tests/remap/remap-io/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/postgui.hal","source_sha":"9e762529184062bd9fec3a3d13bba810770798ec5014a36213ea941ab3e4c452","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/remap.py","inputs":["linuxcnc/tests/remap/remap-io/remap.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/remap.py","source_sha":"5893f90e8f28f5887839926260a9bb91df105a0d8449388f7cedaa1e4f0d3950","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/simpockets.tbl","inputs":["linuxcnc/tests/remap/remap-io/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/test-ngc.ini","inputs":["linuxcnc/tests/remap/remap-io/test-ngc.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/test-ngc.ini","source_sha":"2bac0ac4b5190a27b6b1d002f3e8ceef089bc3cadc37d6a53a7ae582c351dece","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/test-py.ini","inputs":["linuxcnc/tests/remap/remap-io/test-py.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/test-py.ini","source_sha":"4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/test-ngc.ini","inputs":["linuxcnc/tests/remap/remap-io/test-ngc.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/test-ngc.ini","source_sha":"2bac0ac4b5190a27b6b1d002f3e8ceef089bc3cadc37d6a53a7ae582c351dece","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/test-py.ini","inputs":["linuxcnc/tests/remap/remap-io/test-py.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/test-py.ini","source_sha":"4cff1d633a2ec4d649cb3424450d4d9b523f2de6bb2da262b51f251377a98659","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/test-ui.py","inputs":["linuxcnc/tests/remap/remap-io/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/test-ui.py","source_sha":"de8afc8de80c6fb1cd37d343f621e420e370a7c9e3807bdfe8e3e078f0873e19","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/test.sh","inputs":["linuxcnc/tests/remap/remap-io/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/test.sh","source_sha":"02740469b425547c5bfebac9e3121e166e08648d209cb328f5ef6a34e38a0be4","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-io/toplevel.py","inputs":["linuxcnc/tests/remap/remap-io/toplevel.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-io/toplevel.py","source_sha":"c5731db5da3a5f5f61b094ac74ef36b3bb262db0bb3698dbf919bd57d60c1468","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/README","inputs":["linuxcnc/tests/remap/remap-reentry/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/README","source_sha":"77af18947bbc06522d68c5ad716ce64f036fbf17ac4fbf3a62a2d63e5c6c1600","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/core_sim.hal","inputs":["linuxcnc/tests/remap/remap-reentry/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/core_sim.hal","source_sha":"0aca271274de128e3f51e4f1f6874627a98c2e85db793b8d1d3ab7721badb3e8","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/core_sim.hal","inputs":["linuxcnc/tests/remap/remap-reentry/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/core_sim.hal","source_sha":"0aca271274de128e3f51e4f1f6874627a98c2e85db793b8d1d3ab7721badb3e8","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/expected","inputs":["linuxcnc/tests/remap/remap-reentry/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/expected","source_sha":"6289899eb3960862250eae2052e5c8ced0ddc25285bac4ab5a9fae6f83bebe08","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/remap.py","inputs":["linuxcnc/tests/remap/remap-reentry/remap.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/remap.py","source_sha":"cdad73ea45ffa1fe2145962eae611a35bf685d442a49aed127df42b060ae3c6f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/rm406.ngc","inputs":["linuxcnc/tests/remap/remap-reentry/rm406.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/rm406.ngc","source_sha":"5ba27c3aa90babed71aad6972a8db775dc76ba9e522e8cba07878c4b8439d043","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/simpockets.tbl","inputs":["linuxcnc/tests/remap/remap-reentry/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/test.ini","inputs":["linuxcnc/tests/remap/remap-reentry/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/test.ini","source_sha":"d72dd9707d576dec098e303fb91b84f7576e97dde5346455642f3720280a9ee4","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/test.ini","inputs":["linuxcnc/tests/remap/remap-reentry/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/test.ini","source_sha":"d72dd9707d576dec098e303fb91b84f7576e97dde5346455642f3720280a9ee4","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/test.ngc","inputs":["linuxcnc/tests/remap/remap-reentry/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/test.ngc","source_sha":"d04b2ac579653e66d5a7cb13e98565cd6272547663e4438f89195ccdd3de2681","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/test.sh","inputs":["linuxcnc/tests/remap/remap-reentry/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/test.sh","source_sha":"8e73b0225343bdf4e979264a469f6ae6e81497892605ea83855e74a212958836","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/remap-reentry/toplevel.py","inputs":["linuxcnc/tests/remap/remap-reentry/toplevel.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/remap-reentry/toplevel.py","source_sha":"3f682d12e460b98a6f6a5c76a80b43be6cbd0276951811c6fa08b6da9dc8d0f1","test_id":null,"web_status":"planned"} @@ -7599,10 +7614,10 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/remap/variable-injection/test.sh","inputs":["linuxcnc/tests/remap/variable-injection/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/remap/variable-injection/test.sh","source_sha":"d067b898bd3056d20cdb088322d409ee5aacfe9e86dda729acf9a840d71298d3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/.gitignore","inputs":["linuxcnc/tests/rs274ngc-startup/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/.gitignore","source_sha":"5979e63edb28f03e7ef2635b23fcf1288fa2195ee00d879c6f84f2cdcf06d1f9","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/checkresult","inputs":["linuxcnc/tests/rs274ngc-startup/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/core_sim.hal","inputs":["linuxcnc/tests/rs274ngc-startup/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/core_sim.hal","inputs":["linuxcnc/tests/rs274ngc-startup/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/simpockets.tbl","inputs":["linuxcnc/tests/rs274ngc-startup/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/simpockets.tbl","source_sha":"4d60126ae20ccd8b5d2eecc3352345b631013b06b000888ccdbacba4c5309905","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/test-ui.py","inputs":["linuxcnc/tests/rs274ngc-startup/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/test-ui.py","source_sha":"aa91291b111060f1423a586255d965ec8d0924b9884c41b1d88f278bc501c257","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/test.ini","inputs":["linuxcnc/tests/rs274ngc-startup/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/test.ini","source_sha":"a2458289d81a9396ebcfcc46aa6459f5e93d698f69dd044007a0c6662878cd5a","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/test.ini","inputs":["linuxcnc/tests/rs274ngc-startup/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/test.ini","source_sha":"a2458289d81a9396ebcfcc46aa6459f5e93d698f69dd044007a0c6662878cd5a","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rs274ngc-startup/test.sh","inputs":["linuxcnc/tests/rs274ngc-startup/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rs274ngc-startup/test.sh","source_sha":"713f957473f6a42937098dbdfcc945c3abe39937c4fb606d9985c335b282fa1f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rtapi-shmem/README.md","inputs":["linuxcnc/tests/rtapi-shmem/README.md"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rtapi-shmem/README.md","source_sha":"81192f3ddbc88777cb4dbc31a5ba276d3e03727801c4e4bf2ee8f971d853f00c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/rtapi-shmem/checkresult","inputs":["linuxcnc/tests/rtapi-shmem/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/rtapi-shmem/checkresult","source_sha":"c87c7a722d59a266b300850637a1cb77b46cc67c5add8a66aa9e79e198955808","test_id":null,"web_status":"planned"} @@ -7624,7 +7639,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/single-step/checkresult","inputs":["linuxcnc/tests/single-step/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/checkresult","source_sha":"34bb3c6a787b98da65b92c36d6c24ffd63a21cb9ea9f8db49e903626e7a9236a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/single-step/postgui.hal","inputs":["linuxcnc/tests/single-step/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/postgui.hal","source_sha":"0ec41fbbeb46021c59a903d5461656bfe136f7742320b35b3108c028ed939dbe","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/single-step/test-ui.py","inputs":["linuxcnc/tests/single-step/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/test-ui.py","source_sha":"5957946856bdfc137f13e0ebf70fad9bc8fefcab92ae9dd9508b98cced792e6d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/single-step/test.ini","inputs":["linuxcnc/tests/single-step/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/test.ini","source_sha":"c0b171b6fbe043c0fd4621ebdae9508e5e59de0936a4f69ad3baafd251888e19","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/single-step/test.ini","inputs":["linuxcnc/tests/single-step/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/test.ini","source_sha":"c0b171b6fbe043c0fd4621ebdae9508e5e59de0936a4f69ad3baafd251888e19","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/single-step/test.ngc","inputs":["linuxcnc/tests/single-step/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/test.ngc","source_sha":"785588f5af1152bed2b4e242b91b15129832c5eb9037aa0a1fab38fbe51ec4cf","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/single-step/test.sh","inputs":["linuxcnc/tests/single-step/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/single-step/test.sh","source_sha":"7098ec695449fc6b314717f1aa370d045f8e2c25ae5a3b3fc94d2051026379bc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/source.0/expected","inputs":["linuxcnc/tests/source.0/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/source.0/expected","source_sha":"21b7d4b5a3b4e4bee23a00ccb0f7a947782d03e0b74c6a3417a74f423956b24d","test_id":null,"web_status":"planned"} @@ -7634,18 +7649,18 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/.gitignore","inputs":["linuxcnc/tests/startup-state/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/.gitignore","source_sha":"9f93b6940ef826947ac8bd4a8f88b2c8162a6e214434c2d88102cac598fd905c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/README","inputs":["linuxcnc/tests/startup-state/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/README","source_sha":"7465a177ddc9c665349d9bb3858083d89b6ce2a7d23d7772477810048eb52c27","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/checkresult","inputs":["linuxcnc/tests/startup-state/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/core_sim.hal","inputs":["linuxcnc/tests/startup-state/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/startup-state/core_sim.hal","inputs":["linuxcnc/tests/startup-state/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/sim.var.pre","inputs":["linuxcnc/tests/startup-state/sim.var.pre"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/sim.var.pre","source_sha":"42dea732592b0928943eec5a8a40a7b4efd8b64cdc2fbfc703bfd791c8bb8712","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/test-ui.py","inputs":["linuxcnc/tests/startup-state/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/test-ui.py","source_sha":"291378112f4ed4e8c4eedf749d8ac2e0bcf1527d244afe08f1aac8b4472ae252","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/test.ini","inputs":["linuxcnc/tests/startup-state/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/test.ini","source_sha":"46e018eb470e9de4d343249e4bdb4d79e3311a414d69c839bd81d9c22579e986","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/startup-state/test.ini","inputs":["linuxcnc/tests/startup-state/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/test.ini","source_sha":"46e018eb470e9de4d343249e4bdb4d79e3311a414d69c839bd81d9c22579e986","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/startup-state/test.sh","inputs":["linuxcnc/tests/startup-state/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/startup-state/test.sh","source_sha":"d9fe496d837113483eb072efe65edc36df9e57ada7f8ae653073a087b9e1947f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/.gitignore","inputs":["linuxcnc/tests/statbuffer-g5x-abort/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/.gitignore","source_sha":"145ad3794d6620cc71a6975102e6f6825c33aaf6e81f39f2a432b08a10c5f43c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/README","inputs":["linuxcnc/tests/statbuffer-g5x-abort/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/README","source_sha":"9400c4e87b6a68c9ade49d79926bd497770c15814f49ffb3e996482e734971e8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/checkresult","inputs":["linuxcnc/tests/statbuffer-g5x-abort/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal","inputs":["linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal","inputs":["linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/core_sim.hal","source_sha":"d54764c0d5e9ba9d8edc67139941cdfbc54b91553448cc4838013e447972040c","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/simpockets.tbl","inputs":["linuxcnc/tests/statbuffer-g5x-abort/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/test-ui.py","inputs":["linuxcnc/tests/statbuffer-g5x-abort/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/test-ui.py","source_sha":"68c28e62e59b689cbeafca97ac03f306b1e378fdb5f5314312cdbf0463425200","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/test.ini","inputs":["linuxcnc/tests/statbuffer-g5x-abort/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/test.ini","source_sha":"f2983c08e63029261833fb691f1905add43a52d5e8ed62922832889e0311e380","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/test.ini","inputs":["linuxcnc/tests/statbuffer-g5x-abort/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/test.ini","source_sha":"f2983c08e63029261833fb691f1905add43a52d5e8ed62922832889e0311e380","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/test.ngc","inputs":["linuxcnc/tests/statbuffer-g5x-abort/test.ngc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/test.ngc","source_sha":"5cf58b6aa2df64d0de8dfd9c582fd841426618005100fbd74fc5ef8d999a1d0e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/statbuffer-g5x-abort/test.sh","inputs":["linuxcnc/tests/statbuffer-g5x-abort/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/statbuffer-g5x-abort/test.sh","source_sha":"713f957473f6a42937098dbdfcc945c3abe39937c4fb606d9985c335b282fa1f","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/stepgen.0/expected","inputs":["linuxcnc/tests/stepgen.0/expected"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/stepgen.0/expected","source_sha":"d0ac8160452c4668c2849cf0ac9b098932b6ed712655cb105147d0ccd8f0356b","test_id":null,"web_status":"planned"} @@ -7671,17 +7686,17 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/README","inputs":["linuxcnc/tests/t0/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/README","source_sha":"32bc1547f8bc88f34f91c25d7d4375a401fa1de2e92d20d108adfe6a7414f7d0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/nonrandom/checkresult","inputs":["linuxcnc/tests/t0/nonrandom/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/nonrandom/checkresult","source_sha":"94d1622eef40970870d1536ff9872bdcd3e98757b2f04798713bcef68d0d1961","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/nonrandom/expected-gcode-output","inputs":["linuxcnc/tests/t0/nonrandom/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/nonrandom/expected-gcode-output","source_sha":"f3d4bac75225c8f5a5b977e3dcce9f6485424e6df8679d144ae9844825c741ba","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/nonrandom/sim.ini","inputs":["linuxcnc/tests/t0/nonrandom/sim.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/nonrandom/sim.ini","source_sha":"46e50cbb4adccbb1b62ba0bdf35346836c241b74938e5640cd0707b8dbeabdd5","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/t0/nonrandom/sim.ini","inputs":["linuxcnc/tests/t0/nonrandom/sim.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/t0/nonrandom/sim.ini","source_sha":"46e50cbb4adccbb1b62ba0bdf35346836c241b74938e5640cd0707b8dbeabdd5","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/nonrandom/test.sh","inputs":["linuxcnc/tests/t0/nonrandom/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/nonrandom/test.sh","source_sha":"4cdf19b0619b54150685aaff7203a50fbd676e00e634b652843ee47fd7b66267","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/nonrandom/tool.tbl.original","inputs":["linuxcnc/tests/t0/nonrandom/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/nonrandom/tool.tbl.original","source_sha":"5d5f6d2f739317f7a9f28e95ed96c47f2dc4ca0f3697607c458524f519caa16d","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-with-t0/checkresult","inputs":["linuxcnc/tests/t0/random-with-t0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-with-t0/checkresult","source_sha":"94d1622eef40970870d1536ff9872bdcd3e98757b2f04798713bcef68d0d1961","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-with-t0/expected-gcode-output","inputs":["linuxcnc/tests/t0/random-with-t0/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-with-t0/expected-gcode-output","source_sha":"9478f375be5b784d8e653d1d9c61cae299b63779da97a4a83040bc92ea6fc4e0","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-with-t0/sim.ini","inputs":["linuxcnc/tests/t0/random-with-t0/sim.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-with-t0/sim.ini","source_sha":"ef5a92e4a86ff794671467be67c5dc3aca5730a5c2e6c38c4eade31a9e8c9a13","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/t0/random-with-t0/sim.ini","inputs":["linuxcnc/tests/t0/random-with-t0/sim.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-with-t0/sim.ini","source_sha":"ef5a92e4a86ff794671467be67c5dc3aca5730a5c2e6c38c4eade31a9e8c9a13","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-with-t0/test.sh","inputs":["linuxcnc/tests/t0/random-with-t0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-with-t0/test.sh","source_sha":"4cdf19b0619b54150685aaff7203a50fbd676e00e634b652843ee47fd7b66267","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-with-t0/tool.tbl.original","inputs":["linuxcnc/tests/t0/random-with-t0/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-with-t0/tool.tbl.original","source_sha":"28e386aa842bfcfd7f845ee3e8cef7c9fa0082bbbd39534b7e7fc81e55fe4a6a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-without-t0/checkresult","inputs":["linuxcnc/tests/t0/random-without-t0/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-without-t0/checkresult","source_sha":"94d1622eef40970870d1536ff9872bdcd3e98757b2f04798713bcef68d0d1961","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-without-t0/expected-gcode-output","inputs":["linuxcnc/tests/t0/random-without-t0/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-without-t0/expected-gcode-output","source_sha":"c81da4568e0a238490b74ede49b3579ced38ad1f8c705bf620d6d1aacd6d94e6","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-without-t0/sim.ini","inputs":["linuxcnc/tests/t0/random-without-t0/sim.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-without-t0/sim.ini","source_sha":"ef5a92e4a86ff794671467be67c5dc3aca5730a5c2e6c38c4eade31a9e8c9a13","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/t0/random-without-t0/sim.ini","inputs":["linuxcnc/tests/t0/random-without-t0/sim.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-without-t0/sim.ini","source_sha":"ef5a92e4a86ff794671467be67c5dc3aca5730a5c2e6c38c4eade31a9e8c9a13","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-without-t0/test.sh","inputs":["linuxcnc/tests/t0/random-without-t0/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-without-t0/test.sh","source_sha":"4cdf19b0619b54150685aaff7203a50fbd676e00e634b652843ee47fd7b66267","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/random-without-t0/tool.tbl.original","inputs":["linuxcnc/tests/t0/random-without-t0/tool.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/random-without-t0/tool.tbl.original","source_sha":"043b267b5d4e8b65fcbeae346ee68c9794bc9af1dc7ca2d19b1d8f9b25fde153","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/t0/shared-checkresult","inputs":["linuxcnc/tests/t0/shared-checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/t0/shared-checkresult","source_sha":"94d1622eef40970870d1536ff9872bdcd3e98757b2f04798713bcef68d0d1961","test_id":null,"web_status":"planned"} @@ -7699,33 +7714,33 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/timedelay.0/test.hal","inputs":["linuxcnc/tests/timedelay.0/test.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/timedelay.0/test.hal","source_sha":"cf6c271d4b372407f28fb3102c5595170eec54034ad13bee5da1fd0327d68fe3","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/.gitignore","inputs":["linuxcnc/tests/tlo/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/.gitignore","source_sha":"6939ac487d633faa58029feda6713ae68528774b61f03e096486ea69400fa889","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/checkresult","inputs":["linuxcnc/tests/tlo/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/g43-test.ini","inputs":["linuxcnc/tests/tlo/g43-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/g43-test.ini","source_sha":"f853d0db5dba1dc4d28c04377f2cd3eff90e56db0de7309deed32264b1fbc8c4","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/mod_core_sim.hal","inputs":["linuxcnc/tests/tlo/mod_core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/mod_core_sim.hal","source_sha":"03e49f8d7a9a5e895a820faa2a1e4ee5bcad289750238ca2c87dd6c6e763e847","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tlo/g43-test.ini","inputs":["linuxcnc/tests/tlo/g43-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/g43-test.ini","source_sha":"f853d0db5dba1dc4d28c04377f2cd3eff90e56db0de7309deed32264b1fbc8c4","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tlo/mod_core_sim.hal","inputs":["linuxcnc/tests/tlo/mod_core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/mod_core_sim.hal","source_sha":"03e49f8d7a9a5e895a820faa2a1e4ee5bcad289750238ca2c87dd6c6e763e847","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/postgui.hal","inputs":["linuxcnc/tests/tlo/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/postgui.hal","source_sha":"8fce83a68668fd2583137ea8ca5c9077df0ddf4c752dbdd98bc18f5e4ea4ac20","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/simpockets.tbl.original","inputs":["linuxcnc/tests/tlo/simpockets.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/simpockets.tbl.original","source_sha":"ab65a2ce821a431b51fcdc78266d2715f0f194a9f9c55ef4d0d24301da22cdde","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/test-ui.py","inputs":["linuxcnc/tests/tlo/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/test-ui.py","source_sha":"7e484a02ed65d7d4ad2841c0a67d5543902c2ee69afbe2febeebec31c91793a0","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tlo/test.sh","inputs":["linuxcnc/tests/tlo/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tlo/test.sh","source_sha":"186669f70c6d519f862a1df7ff8bff6d21b6636cc18c11e0a743d1e60370159e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/README","inputs":["linuxcnc/tests/tool-info/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/README","source_sha":"837802c60e193d972ff569f90389f4a9a34923b9c7c571cae1d8b97ee3354ccc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/checkresult","inputs":["linuxcnc/tests/tool-info/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/core_sim.hal","inputs":["linuxcnc/tests/tool-info/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/core_sim.hal","inputs":["linuxcnc/tests/tool-info/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/.gitignore","inputs":["linuxcnc/tests/tool-info/non-random/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/.gitignore","source_sha":"07e517c47f2ac06fd2e8b096fc183fc7e97d08847f05951fe146ca84b3cff0a1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/checkresult","inputs":["linuxcnc/tests/tool-info/non-random/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/core_sim.hal","inputs":["linuxcnc/tests/tool-info/non-random/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/core_sim.hal","inputs":["linuxcnc/tests/tool-info/non-random/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/test-ui.py","inputs":["linuxcnc/tests/tool-info/non-random/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/test-ui.py","source_sha":"d46ef26188e78e79f7f28d925cc02ec369433e9a2f370aaab5bd4ddcd7ad20c7","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/test.ini","inputs":["linuxcnc/tests/tool-info/non-random/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/test.ini","source_sha":"fa91327cbc49581c5323a854d328f2ae541f538bab4d2d1adc5d86f4d88551de","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/test.ini","inputs":["linuxcnc/tests/tool-info/non-random/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/test.ini","source_sha":"fa91327cbc49581c5323a854d328f2ae541f538bab4d2d1adc5d86f4d88551de","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/non-random/test.sh","inputs":["linuxcnc/tests/tool-info/non-random/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/non-random/test.sh","source_sha":"4ad6d5a3e767c41a8b4f62e8fe63f286e93c5e3d1c63b7835af9dd92f13e909c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/.gitignore","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/.gitignore","source_sha":"07e517c47f2ac06fd2e8b096fc183fc7e97d08847f05951fe146ca84b3cff0a1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/checkresult","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/core_sim.hal","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/core_sim.hal","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/test-ui.py","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/test-ui.py","source_sha":"437ef2e1cdf931fe478c5567b258b44f2dd90cbe03d178566b433c433ba3fa9b","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini","source_sha":"a72abf125d9caeccdda2c86f620ad5a2731e4c26725d946a3f5de82284955f07","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini","source_sha":"a72abf125d9caeccdda2c86f620ad5a2731e4c26725d946a3f5de82284955f07","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-no-startup-tool/test.sh","inputs":["linuxcnc/tests/tool-info/random-no-startup-tool/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-no-startup-tool/test.sh","source_sha":"4ad6d5a3e767c41a8b4f62e8fe63f286e93c5e3d1c63b7835af9dd92f13e909c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/.gitignore","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/.gitignore","source_sha":"07e517c47f2ac06fd2e8b096fc183fc7e97d08847f05951fe146ca84b3cff0a1","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/checkresult","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/core_sim.hal","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/core_sim.hal","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/core_sim.hal","source_sha":"316395f71f129c874251f8fc8af46132204807ea0687d0519fd8dfb926e21e62","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/simpockets.tbl.original","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/simpockets.tbl.original"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/simpockets.tbl.original","source_sha":"fcfff56f85a55aedc32ea3babc862e31346595cbd24410241d5ae7b3cde6f58e","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/test-ui.py","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/test-ui.py","source_sha":"4fda9632f587881ad9edf7cc4d3e363a578c35d90097bb5cc00e663c7d790d4f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini","source_sha":"a72abf125d9caeccdda2c86f620ad5a2731e4c26725d946a3f5de82284955f07","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini","source_sha":"a72abf125d9caeccdda2c86f620ad5a2731e4c26725d946a3f5de82284955f07","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/random-with-startup-tool/test.sh","inputs":["linuxcnc/tests/tool-info/random-with-startup-tool/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/random-with-startup-tool/test.sh","source_sha":"c6d1cc1e4e7c94aba31711580662ac607c9cb38aa9b56caedae4c847401ed7d8","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/shared-test.sh","inputs":["linuxcnc/tests/tool-info/shared-test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/shared-test.sh","source_sha":"4ad6d5a3e767c41a8b4f62e8fe63f286e93c5e3d1c63b7835af9dd92f13e909c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/tool-info/simpockets.tbl","inputs":["linuxcnc/tests/tool-info/simpockets.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/tool-info/simpockets.tbl","source_sha":"dda8bcdde8ace2474a350afef7a48599492bc3178ae34218374ce282fe92b272","test_id":null,"web_status":"planned"} @@ -7733,26 +7748,26 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/README","inputs":["linuxcnc/tests/toolchanger/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/README","source_sha":"7c9d3645b76880fbbf8569c9916b7c44f9654633de3e0138c094614efea11a54","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/.gitignore","inputs":["linuxcnc/tests/toolchanger/m61/.gitignore"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/.gitignore","source_sha":"476e4aa8b0bd503115417f2accc8ec4f353d4fdc3b638d533eb7b6cae312eace","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/checkresult","inputs":["linuxcnc/tests/toolchanger/m61/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/m61-test.ini","inputs":["linuxcnc/tests/toolchanger/m61/m61-test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/m61-test.ini","source_sha":"eee36d051ed62d0e3b47980001c1654b25616155a9b9d31547b13f333610e34d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal","inputs":["linuxcnc/tests/toolchanger/m61/mod_core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal","source_sha":"ea61e3971fcf818ba590c4434672c0ef91cd39ddc3e847825e0057f7aee5f5cf","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/m61-test.ini","inputs":["linuxcnc/tests/toolchanger/m61/m61-test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/m61-test.ini","source_sha":"eee36d051ed62d0e3b47980001c1654b25616155a9b9d31547b13f333610e34d","test_id":"audit:K0-INV-02","web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal","inputs":["linuxcnc/tests/toolchanger/m61/mod_core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal","source_sha":"ea61e3971fcf818ba590c4434672c0ef91cd39ddc3e847825e0057f7aee5f5cf","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/postgui.hal","inputs":["linuxcnc/tests/toolchanger/m61/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/postgui.hal","source_sha":"23c32fdd770225faf90bbdf481f73add0033c9a27d90bf260c10650a76d9cbeb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/test-ui.py","inputs":["linuxcnc/tests/toolchanger/m61/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/test-ui.py","source_sha":"800b0ef1bd1f7fdeb77af4de22d1cededfc21cb0441c18c879b661acecdc93f7","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/m61/test.sh","inputs":["linuxcnc/tests/toolchanger/m61/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/m61/test.sh","source_sha":"11aa8c2af0163b7c9a736507c3ea89bcdae717f30dcd86be61641e2ef1aa77bb","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/README","inputs":["linuxcnc/tests/toolchanger/reload-tool/README"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/README","source_sha":"bfbb490e4b691d77ab8990f9f0c64468bd9ffefc04754af6b8275afd35a1b8f2","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/checkresult","inputs":["linuxcnc/tests/toolchanger/reload-tool/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal","source_sha":"e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/core_sim.hal","source_sha":"e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/checkresult","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/core_sim.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/core_sim.hal","source_sha":"e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/core_sim.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/core_sim.hal","source_sha":"e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/postgui.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/postgui.hal","source_sha":"9a927cfff5c35dcc28093491358976909ce7000e154a7b093cab99fb258211dc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/test-ui.py","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/test-ui.py","source_sha":"7f6e05348cd47341881af30c9c5d5caf3f3097534b11e5bb4e12091ec99c3e6f","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini","source_sha":"507aad603649633df68014ad389074df224e1810e40f521fd76d7403d61e9d65","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini","source_sha":"507aad603649633df68014ad389074df224e1810e40f521fd76d7403d61e9d65","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/non-random/test.sh","inputs":["linuxcnc/tests/toolchanger/reload-tool/non-random/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/non-random/test.sh","source_sha":"9910355c53a7dc3468e403fb8bc2d19d1fb543c84c0f377c537746027643b8b6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/postgui.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/postgui.hal","source_sha":"9a927cfff5c35dcc28093491358976909ce7000e154a7b093cab99fb258211dc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/checkresult","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/checkresult","source_sha":"c210d3eea8c126de9ad24c7f528df7ca22fed21c48399d49f4c852116c6ab1aa","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/core_sim.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/core_sim.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/core_sim.hal","source_sha":"e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/core_sim.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/core_sim.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/core_sim.hal","source_sha":"e27f91fd6efff5fa6bcaed5020d4317b64fd2289796a854738cd99177b4d94f0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/postgui.hal","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/postgui.hal","source_sha":"9a927cfff5c35dcc28093491358976909ce7000e154a7b093cab99fb258211dc","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/test-ui.py","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/test-ui.py"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/test-ui.py","source_sha":"76a84c39fe22e270f1df7fbf19ace9b0341c55d97530270c849a83b511b18b81","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/test.ini","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/test.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/test.ini","source_sha":"1cb9b9dbef7c669563038541f7c5429c6df6630f7c793d224ea76ca0a87c411f","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/test.ini","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/test.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/test.ini","source_sha":"1cb9b9dbef7c669563038541f7c5429c6df6630f7c793d224ea76ca0a87c411f","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/random/test.sh","inputs":["linuxcnc/tests/toolchanger/reload-tool/random/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/random/test.sh","source_sha":"9910355c53a7dc3468e403fb8bc2d19d1fb543c84c0f377c537746027643b8b6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/shared-test.sh","inputs":["linuxcnc/tests/toolchanger/reload-tool/shared-test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/shared-test.sh","source_sha":"9910355c53a7dc3468e403fb8bc2d19d1fb543c84c0f377c537746027643b8b6","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/reload-tool/simpockets.tbl.save","inputs":["linuxcnc/tests/toolchanger/reload-tool/simpockets.tbl.save"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/reload-tool/simpockets.tbl.save","source_sha":"7e1a143f43c2e68e290574a905f6a26134eea4a5cbf9563ca65524cd3058775d","test_id":null,"web_status":"planned"} @@ -7761,11 +7776,11 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/subs/M100","inputs":["linuxcnc/tests/toolchanger/subs/M100"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/subs/M100","source_sha":"19d4112971ca201d040d50dde2286024f5d5feec9fb5870bfcec95bac69b3b5c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/checkresult","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/expected-gcode-output","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/expected-gcode-output","source_sha":"9aa6d68ef05feff93b03a8e1296e941e94320f456c86f00ca338d584c117be93","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini","source_sha":"ea2519d9dfdc8b56c695399117c6a43c27f9dcf9226d71b9cee0ee57ce5866d0","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini","source_sha":"ea2519d9dfdc8b56c695399117c6a43c27f9dcf9226d71b9cee0ee57ce5866d0","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/test.sh","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/test.sh","source_sha":"bd8f1a05ea6ee3d26f8594150845b533c18bfc7ee8b94011230e7a9a084cef9a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/checkresult","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/random/checkresult"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/checkresult","source_sha":"a64cd94c98057a706624c9b3017f3d7ecdc58f4d9a0a9b07c92e6c1a43bc7d18","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/expected-gcode-output","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/random/expected-gcode-output"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/expected-gcode-output","source_sha":"2d9565dd6539cdfa1de78e5a3d2e909d27ae72098818cf768df37325a72f782a","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini","source_sha":"29503195ae3105528e63e8cd307926ddf250ef9f394117b8b8a30f45d859f6fc","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini","source_sha":"29503195ae3105528e63e8cd307926ddf250ef9f394117b8b8a30f45d859f6fc","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/test.sh","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/random/test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/test.sh","source_sha":"bd8f1a05ea6ee3d26f8594150845b533c18bfc7ee8b94011230e7a9a084cef9a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/toolchanger/toolno-pocket-differ/shared-test.sh","inputs":["linuxcnc/tests/toolchanger/toolno-pocket-differ/shared-test.sh"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/toolchanger/toolno-pocket-differ/shared-test.sh","source_sha":"bd8f1a05ea6ee3d26f8594150845b533c18bfc7ee8b94011230e7a9a084cef9a","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/.octaverc","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/.octaverc"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/.octaverc","source_sha":"e2cf598877c6413b9b733ce935cdc170f7985882823cd6daf19abc24d14325d9","test_id":null,"web_status":"planned"} @@ -7788,7 +7803,7 @@ {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis-Y.tcl","source_sha":"c8189aae0fd7f13cec5790f49dbf352109f80c4a29d7e469847e79267be6f559","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis-Z.tcl","source_sha":"517cb74014aad5f4079b6a9a7074fd2c1ea482d3e4d0e8487522a1911593545c","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis_mm.ini","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis_mm.ini"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/axis_mm.ini","source_sha":"db7c8e9110aac7753820b30c648fbc049b3d5f9e37f9d3aeb0d953ed1333ac7d","test_id":null,"web_status":"planned"} -{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal","source_sha":"15e2610f7ef91309821d62443c603b4d6d7b7be7e277abcf050ae15491b40f52","test_id":null,"web_status":"planned"} +{"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":["coverage/kinematics-source-closure.report.json","coverage/config-resources.jsonl"],"difference":null,"domain":"kinematics","errors":["blocked:linuxcnc/unit_tests/kinematics missing from locked source"],"exclusion_reason":null,"feature_id":"feature:kinematics-k0","golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal"],"kind":"test","mapping_status":"audited_blocked","oracle":{"report":"coverage/kinematics-source-closure.report.json","status":"blocked"},"outputs":["coverage/kinematics-config-graph.report.json","coverage/kinematics-oracle-samples.jsonl","coverage/kinematics-oracle.report.json","coverage/kinematics-golden-schema.json","coverage/coupled-kinematics.report.json","coverage/fiveaxis-kinematics.report.json","coverage/trt-kinematics.report.json","coverage/robot-kinematics.report.json","coverage/genser-kinematics.report.json"],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal","source_sha":"15e2610f7ef91309821d62443c603b4d6d7b7be7e277abcf050ae15491b40f52","test_id":"audit:K0-INV-02","web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/postgui.hal","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/postgui.hal"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/postgui.hal","source_sha":"14d69f55b2fa3f29131f35c73ab5f9ca22a82018db7642585076eb541537a282","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/sim.tbl","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/sim.tbl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/sim.tbl","source_sha":"e5666eda5166acbeff04587bca4eb8716a971a9b684202f2897c67bb80f30029","test_id":null,"web_status":"planned"} {"adaptation":null,"context_id":null,"coverage_dimensions":[],"dependencies":[],"difference":null,"domain":"unassigned","errors":[],"exclusion_reason":null,"feature_id":null,"golden":null,"id":"seed:test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/test_status.tcl","inputs":["linuxcnc/tests/trajectory-planner/circular-arcs/configs/test_status.tcl"],"kind":"test","mapping_status":"needs_owner","oracle":null,"outputs":[],"sim_status":"planned","source":"test:linuxcnc/tests/trajectory-planner/circular-arcs/configs/test_status.tcl","source_sha":"1c3722d189da3f942d743e41b0cf8599a97c06fa6ee87c9ae099eab75aaa5762","test_id":null,"web_status":"planned"} diff --git a/coverage/motion-runtime.report.json b/coverage/motion-runtime.report.json new file mode 100644 index 0000000..8fe2595 --- /dev/null +++ b/coverage/motion-runtime.report.json @@ -0,0 +1,370 @@ +{ + "canonical": { + "byte_identical": true, + "deterministic_runs": 2, + "format": "fixed-order JSON", + "state_hash": "fnv1a64 over explicit state fields", + "state_hash_identical": true + }, + "error_boundaries": [ + "argument", + "nonfinite", + "range", + "geometry", + "motion_type", + "state", + "capacity", + "buffer" + ], + "golden_tolerance": "exact_for_fixed_tick_inputs", + "implementation": "linuxcnc/src/emc/tp + linuxcnc/src/emc/motion + linuxcnc/src/emc/task", + "inputs": { + "bytes": 1030532, + "file_count": 60, + "files": [ + { + "bytes": 11, + "path": "linuxcnc/src/emc/motion/.gitignore", + "sha256": "d3914918e9a01b5a71fe22bbbd13b428373ca2a6435b302e874f0c0dd78e05b2" + }, + { + "bytes": 253, + "path": "linuxcnc/src/emc/motion/Submakefile", + "sha256": "d1c3457c41726a616fce23ff177669f71d0f718b568658903ccd313399f715d3" + }, + { + "bytes": 23244, + "path": "linuxcnc/src/emc/motion/axis.c", + "sha256": "5c3fe99e672a72cc81c2ce74e36e225ff9e10a115c51f46729b135fd134922d8" + }, + { + "bytes": 2027, + "path": "linuxcnc/src/emc/motion/axis.h", + "sha256": "aba94067deedbd163cfcb8ed3dbc1843b947f4ef8828360490521039d784f2df" + }, + { + "bytes": 71866, + "path": "linuxcnc/src/emc/motion/command.c", + "sha256": "9d138ed5780a11ed037aa238781f4bfb4960a73ee23c0b0abf0724db068b3e3f" + }, + { + "bytes": 84689, + "path": "linuxcnc/src/emc/motion/control.c", + "sha256": "fa1b14689e2e4493c02d0939f982278366d4c1888da62e172cec030904c82c50" + }, + { + "bytes": 4525, + "path": "linuxcnc/src/emc/motion/dbuf.c", + "sha256": "605378315317999ee069477282134e64e9940e939892dbb5f433f77f103262ef" + }, + { + "bytes": 2169, + "path": "linuxcnc/src/emc/motion/dbuf.h", + "sha256": "7f15618d30d07040f58110a9c1130140f6fb14705971578e8af554e3ef6dda87" + }, + { + "bytes": 2202, + "path": "linuxcnc/src/emc/motion/emcmotcfg.h", + "sha256": "26ce8b18ae3b53e001215bc92330f65301de8832cc8764b239672c0a30e9e6f3" + }, + { + "bytes": 1112, + "path": "linuxcnc/src/emc/motion/emcmotglb.c", + "sha256": "3fe47c93af71036340c517046062b6ce955fdd78c7369bc26aeff2fe51e2c4ab" + }, + { + "bytes": 1314, + "path": "linuxcnc/src/emc/motion/emcmotglb.h", + "sha256": "7ba82587da304f62aa261e4647639cdcc8f7623699677462b82a19d503e7332f" + }, + { + "bytes": 1925, + "path": "linuxcnc/src/emc/motion/emcmotutil.c", + "sha256": "275d601af6fdf115ecf1ca580c3d307ed5a150a8c9d03cf8cf071268e715d020" + }, + { + "bytes": 1057, + "path": "linuxcnc/src/emc/motion/homemod.c", + "sha256": "df2e24e8d6c48d47448971b6e69471910a435d207a9d45f857a968aebf14ea5c" + }, + { + "bytes": 59456, + "path": "linuxcnc/src/emc/motion/homing.c", + "sha256": "ee73d38f2feb8d5523b9a733cb17d635d3904667aaa219f8a02d7fbffee1ba39" + }, + { + "bytes": 2265, + "path": "linuxcnc/src/emc/motion/homing.dot", + "sha256": "df3be34e18b97fdacef55e26dd8df9d1af9f1984d3782d460a3646e7e5dbe53d" + }, + { + "bytes": 2868, + "path": "linuxcnc/src/emc/motion/homing.h", + "sha256": "fe33498e5a9c2a5aee6aebdab57a93742cba61018af8bd83f1d79edb28dbe0ed" + }, + { + "bytes": 40, + "path": "linuxcnc/src/emc/motion/meson.build", + "sha256": "4b5493eb6bb0f9d745ede01e162b71a39c1572ab335ef493ced4c2554b6cc887" + }, + { + "bytes": 15972, + "path": "linuxcnc/src/emc/motion/mot_priv.h", + "sha256": "92ea1ec7f18374e2f8867348586776a680dfec724ea373a257d77f36cc640c6b" + }, + { + "bytes": 48444, + "path": "linuxcnc/src/emc/motion/motion.c", + "sha256": "c3d1404150b56cfb03ab35ecdf64694d60a6d37117d0617a8464d548133e79d3" + }, + { + "bytes": 31857, + "path": "linuxcnc/src/emc/motion/motion.h", + "sha256": "640f10ec3d02d2955f1ffacd86e5b7078a631ff3c6703f201e0d04b177a17225" + }, + { + "bytes": 1024, + "path": "linuxcnc/src/emc/motion/motion_struct.h", + "sha256": "2af32cecf7128793bbfcbb2840da8b7f32d836ce2b4524541581274bfd7ebe1f" + }, + { + "bytes": 2315, + "path": "linuxcnc/src/emc/motion/simple_tp.c", + "sha256": "5a0026f4d5bdd9d1bc55290c6ea9c399abd664633b69413c307f7353953d2603" + }, + { + "bytes": 2046, + "path": "linuxcnc/src/emc/motion/simple_tp.h", + "sha256": "a6b72ddaf4a14801f95b625d824c2ea1625db5dce765db2d3b1f96a4730afca7" + }, + { + "bytes": 3561, + "path": "linuxcnc/src/emc/motion/stashf.c", + "sha256": "3017fd1732c037729c9bd1eb998752b225774f51c11bf76f159b7669d9176fe2" + }, + { + "bytes": 1289, + "path": "linuxcnc/src/emc/motion/stashf.h", + "sha256": "5fcbde679a78958552430b3af95fbf4d3012669ecaf1a28c68f4ca9f16efbddd" + }, + { + "bytes": 2859, + "path": "linuxcnc/src/emc/motion/stashf_wrap.h", + "sha256": "625cc7d8df30b351f243bc3f1687f5ef9758cb4243efd0c2196d9c71c64c7793" + }, + { + "bytes": 4167, + "path": "linuxcnc/src/emc/motion/state_tag.h", + "sha256": "e53b2989929b43aeb90167e0b352aeaddbe55344b0e7e5ccdfb81881a7eaffd1" + }, + { + "bytes": 5895, + "path": "linuxcnc/src/emc/motion/teleop-notes", + "sha256": "6ac654e450157beb0ded79386f4b59ac08553f452be544f27b091f4b97030ae4" + }, + { + "bytes": 19321, + "path": "linuxcnc/src/emc/motion/usrmotintf.cc", + "sha256": "44e3413daef771bf6104eb48ae7279ff60625b87c19063bf3097639fb8e1d818" + }, + { + "bytes": 3058, + "path": "linuxcnc/src/emc/motion/usrmotintf.h", + "sha256": "1f5f6eb571ce0ea73084f0c8248182c3101359c855d6ca70ef46dde7ad94b3d3" + }, + { + "bytes": 1259, + "path": "linuxcnc/src/emc/task/Submakefile", + "sha256": "c0f97c488c655acffeb91208d6ba0592a7252d33bf856cdacd37876ffaca78fb" + }, + { + "bytes": 2725, + "path": "linuxcnc/src/emc/task/backtrace.cc", + "sha256": "07060b5eda02cead50c66edc20a2154fbd97cf432d27f98e31da08029c1875db" + }, + { + "bytes": 126928, + "path": "linuxcnc/src/emc/task/emccanon.cc", + "sha256": "87bc78d9594e1d0042b28e75b0faa01f650b33c901887dbe686a0927b0eba699" + }, + { + "bytes": 5337, + "path": "linuxcnc/src/emc/task/emcsvr.cc", + "sha256": "494cc0f5d5042c37ddd10da2f1e731b7c6c615027972a014ee4b9e6c7104482c" + }, + { + "bytes": 19313, + "path": "linuxcnc/src/emc/task/emctask.cc", + "sha256": "db3996e57edbf042cc0ff85580ac62728491fb55e7236219a3a76bfbee6beee9" + }, + { + "bytes": 105741, + "path": "linuxcnc/src/emc/task/emctaskmain.cc", + "sha256": "77490e65a1d3436086bedbfee68d6f467ca2d1a50139c64b3ace0dd4ed63022e" + }, + { + "bytes": 4344, + "path": "linuxcnc/src/emc/task/signalhandler.cc", + "sha256": "fee333fda054449c7d49fed107b741d5ffd87eabc5881631e522ca68baf32288" + }, + { + "bytes": 2194, + "path": "linuxcnc/src/emc/task/task.hh", + "sha256": "74a2c27fbf06d389d190ec8bca9d2163cca7645cec2fbc45761fc702f7441da8" + }, + { + "bytes": 21110, + "path": "linuxcnc/src/emc/task/taskclass.cc", + "sha256": "837dbf1ca0fabed601baeca6a3785e6880330e763b2cfd363d121a5099935431" + }, + { + "bytes": 2007, + "path": "linuxcnc/src/emc/task/taskclass.hh", + "sha256": "529f5d44ec108d3e523145a11da9fcf171486711ec98580e5067adaf8ee75799" + }, + { + "bytes": 56981, + "path": "linuxcnc/src/emc/task/taskintf.cc", + "sha256": "017db5aeb5f6dcfbf138927b5114bdf4385e385309fd544f62275e6280a45834" + }, + { + "bytes": 19270, + "path": "linuxcnc/src/emc/task/taskmodule.cc", + "sha256": "dd139359b01b3616e33dfa405203c2af4a854d2c71ebc2aa0943a3db46568216" + }, + { + "bytes": 225, + "path": "linuxcnc/src/emc/tp/Submakefile", + "sha256": "8af41d532de2a2bbcc6ec0238c88547fbf14ad80a666fa1fc5c39d2c27d016fc" + }, + { + "bytes": 58264, + "path": "linuxcnc/src/emc/tp/blendmath.c", + "sha256": "27b9b1192f273f77d52b7810dbd633e8ffd03f0e3127015eafae475e18b0666a" + }, + { + "bytes": 9443, + "path": "linuxcnc/src/emc/tp/blendmath.h", + "sha256": "48276307d04edfaf63a394e41aa62f698e29787884d1cd23673f18763c4088f1" + }, + { + "bytes": 136, + "path": "linuxcnc/src/emc/tp/meson.build", + "sha256": "1dba7d81a6cb02c6ed1dcd8d5e54f41a7c6bce3a46ddd95744c98409a4f6c6a7" + }, + { + "bytes": 6293, + "path": "linuxcnc/src/emc/tp/spherical_arc.c", + "sha256": "58a31693ffc61528c4e8842386fcd0267ab28edef4a27b2aa91d1b7af85fc934" + }, + { + "bytes": 2284, + "path": "linuxcnc/src/emc/tp/spherical_arc.h", + "sha256": "24369c82fd770cdfd392c8ae8a2e30a46e04b44a3ed6bbd8745d45bc85147801" + }, + { + "bytes": 28016, + "path": "linuxcnc/src/emc/tp/tc.c", + "sha256": "ff2a123adaa198c71dcd9a9c1a3a403ab25f9d6c217684afc4a093829adef2c1" + }, + { + "bytes": 3888, + "path": "linuxcnc/src/emc/tp/tc.h", + "sha256": "48caa2255744257b9b8e37812766f7feb3d012d1891dfdd6634edd32f1c65ba5" + }, + { + "bytes": 6363, + "path": "linuxcnc/src/emc/tp/tc_types.h", + "sha256": "5ce27b5a545d8b4acaf119bf314fc4fed9320c22f975d786b7b2ec94d8029cb5" + }, + { + "bytes": 8541, + "path": "linuxcnc/src/emc/tp/tcq.c", + "sha256": "2eb9de3c38d4d86338bda149baf52f9e9c87111cac9dff2b17884a2deb0feb05" + }, + { + "bytes": 2181, + "path": "linuxcnc/src/emc/tp/tcq.h", + "sha256": "61f516f51a78f505fc2d2ee60c967de2c35dce298def5466e4b8a5a9aa7fcbd2" + }, + { + "bytes": 121641, + "path": "linuxcnc/src/emc/tp/tp.c", + "sha256": "e0e4be6ef0b0a6c8b5eee32db9307986651938bc72c4e2c44750133b8da4dba8" + }, + { + "bytes": 3534, + "path": "linuxcnc/src/emc/tp/tp.h", + "sha256": "e36449a34f0ae67fa15e570b3c3117d39d3bada44c9e1ba61e7aa52533c46f17" + }, + { + "bytes": 1736, + "path": "linuxcnc/src/emc/tp/tp_debug.h", + "sha256": "033eab89f8378ed781b4c494ca4abba986282f83cb0ca7288bf56b5a5e4c6228" + }, + { + "bytes": 4556, + "path": "linuxcnc/src/emc/tp/tp_types.h", + "sha256": "2d552b57e2ae7cd71dede51c0a1adc86a01173dc24d49d8bbdb8467e0a85d18d" + }, + { + "bytes": 1025, + "path": "linuxcnc/src/emc/tp/tpmod.c", + "sha256": "1420f5777e0d1063709a6fdf4e391ec64abc43f9dd1da0838571052a92139d94" + }, + { + "bytes": 48, + "path": "linuxcnc/unit_tests/tp/meson.build", + "sha256": "625c4249c225fed116bc998530cc539703c341cb3426851aedaae58f4291de3d" + }, + { + "bytes": 2318, + "path": "linuxcnc/unit_tests/tp/test_blendmath.c", + "sha256": "0b2aaf0ec2506a4c2fd43a236f01c6c4e08fbf58998126926a8690a314d4d855" + } + ], + "fingerprint_sha256": "4c8f89826279721c328be9b167798e59c811568a3b830dd2d1faf5d39b1c34e1", + "roots": [ + "linuxcnc/src/emc/tp", + "linuxcnc/src/emc/motion", + "linuxcnc/src/emc/task", + "linuxcnc/unit_tests/tp" + ] + }, + "native_and_wasm": true, + "outputs": { + "bytes": 10996, + "file_count": 3, + "files": [ + { + "bytes": 1819, + "path": "wasm-core/include/sim_motion_queue.h", + "sha256": "c26af2b5cff6cbc687f621d745601ff287eebd62011ea46fc7fa692b446a08cc" + }, + { + "bytes": 7791, + "path": "wasm-core/src/sim_motion_queue.c", + "sha256": "56074e27df90bc1b60134eac3cdf84c78149388f99a19a027f6714e3784b04ed" + }, + { + "bytes": 1386, + "path": "wasm-core/tests/sim_motion_queue_test.c", + "sha256": "882c90f9963b2433b868859c50a91dbdecef93454039b05b11241c1f76c13f31" + } + ], + "fingerprint_sha256": "4c4afb2b2787d69c962edccf2db7dfc9a94a4e4bbf29ab095c409b7373d218cd" + }, + "queue": { + "capacity": 64, + "continuity_tolerance": 1e-12, + "motion_types": [ + 1, + 2, + 3, + 4 + ], + "tick": "fixed cycle_time" + }, + "schema": "motion-runtime-report.v1", + "status": "passed" +} diff --git a/coverage/pentapod-kinematics.report.json b/coverage/pentapod-kinematics.report.json new file mode 100644 index 0000000..1246333 --- /dev/null +++ b/coverage/pentapod-kinematics.report.json @@ -0,0 +1,248 @@ +{ + "configuration_candidate": { + "coordinates": "XYZAB", + "hal_geometry": { + "base": [ + -418.0, + 500.0, + -140.0, + 418.0, + 500.0, + -140.0, + 0.0, + 500.0, + -310.0, + 418.0, + 500.0, + 510.0, + -418.0, + 500.0, + 510.0 + ], + "effector_radius": [ + 80.3, + 80.3, + 80.3, + 80.3, + 80.3 + ], + "effector_z": [ + 87.0, + 114.5, + 140.5, + 232.5, + 258.5 + ] + }, + "hal_pins": [ + "last-iterations", + "max-iterations", + "limit-iterations", + "max-error", + "convergence-criterion", + "tool-offset" + ], + "joints": 5, + "kinematics": "pentakins", + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", + "scan": true + }, + "geometry": { + "orientation": "roll/pitch only; yaw fixed at zero", + "struts": 5, + "units": "configuration units; XYZ linear and AB degrees" + }, + "implementation_status": "verified", + "mapping": { + "coordinates": "XYZAB", + "extra_joint_policy": "rejected", + "joint_semantics": [ + "strut-0", + "strut-1", + "strut-2", + "strut-3", + "strut-4" + ], + "kinematics_joint_count": 5 + }, + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "blocked_samples": [ + "nominal five-strut pose", + "negative-z seed", + "nonpositive strut", + "iteration limit", + "maximum error", + "singular Jacobian", + "joint limit" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "b1d1cdc8fbd64b64ffa88023c77c7ce097952966353567b023c0667a8dc1be75", + "samples": { + "byte_identical_json": true, + "native": { + "boundaries": { + "alternate_branch": 0, + "alternate_pose": [ + 0.0, + 0.0, + 0.0 + ], + "alternate_status": -702, + "branch": 0, + "iteration_limit": -702, + "iterations": 1, + "limit_error": -702, + "max_error": -702, + "nonpositive": -702, + "residual": 0.0, + "singular": -704 + }, + "pentapod": { + "inverse": [ + 619.814203778, + 655.78680467, + 750.465994974, + 351.035577947, + 327.336726304 + ], + "iterations": 1, + "pose": [ + 0.0, + 500.0, + 300.0, + 2.0, + -3.0 + ], + "residual": 0.0, + "state_hash": 10088895819155863850 + } + }, + "state_hash_identical": true, + "wasm": { + "boundaries": { + "alternate_branch": 0, + "alternate_pose": [ + 0.0, + 0.0, + 0.0 + ], + "alternate_status": -702, + "branch": 0, + "iteration_limit": -702, + "iterations": 1, + "limit_error": -702, + "max_error": -702, + "nonpositive": -702, + "residual": 0.0, + "singular": -704 + }, + "pentapod": { + "inverse": [ + 619.814203778, + 655.78680467, + 750.465994974, + 351.035577947, + 327.336726304 + ], + "iterations": 1, + "pose": [ + 0.0, + 500.0, + 300.0, + 2.0, + -3.0 + ], + "residual": 0.0, + "state_hash": 10088895819155863850 + } + } + }, + "schema": "pentapod-kinematics-report.v1", + "solver": { + "alternate_seed_flag": "SIM_KIN_GENHEX_ALTERNATE_SEED bit 1; negative-z seed is explicitly bounded", + "default_convergence_tolerance": 1e-09, + "default_iteration_limit": 120, + "default_max_error": 1000.0, + "forward": "Newton-Raphson 5x5 numerical Jacobian", + "inverse": "closed-form radial/z strut lengths", + "seed": [ + 0.0, + 500.0, + 300.0, + 0.0, + 0.0 + ] + }, + "source_records": { + "config": { + "path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", + "sha256": "0fb210122ab482087d3a95e5e7487baecb84c3260dca1769970f4c19b2ad0618" + }, + "hal": { + "path": "linuxcnc/configs/sim/axis/pentapod/kinematics.hal", + "sha256": "cf56ea1c1fe2b49d1af6a771bd73ea43ecc7a37991717b68a1e017c101bc6ae2" + }, + "header": { + "path": "linuxcnc/src/emc/kinematics/pentakins.h", + "sha256": "af8551454177bbcc85e4e17377e059573ab8c15dc022de2a4be9b70dead74e2d" + }, + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "424873c8e5d3d5b45daf616d95a58157c6dbcbbee9f4cc512b58bfb2672c6145" + }, + "kinematics_header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "0c6d955717982e9d1a24d1240a1c657fc37dfe166c5738d3ee23878e46b2a98d" + }, + "source": { + "path": "linuxcnc/src/emc/kinematics/pentakins.c", + "sha256": "1b385c2ab3a1bcb106d1d22a2dfe14519dba9c4a5df4cb31071a180845cda4c6" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "3bda403d3af592dcc69ee9b1f3c96dda97b952f827a1c9ce5393e01cd357c403" + } + }, + "status": "partial", + "workspace_and_boundaries": { + "alternate_seed": [ + 0.0, + 0.0, + 0.0 + ], + "alternate_seed_error": -702, + "iteration_limit_error": -702, + "iterations": 1, + "joint_limit_error": -702, + "max_error_boundary": -702, + "nominal": { + "inverse": [ + 619.814203778, + 655.78680467, + 750.465994974, + 351.035577947, + 327.336726304 + ], + "iterations": 1, + "pose": [ + 0.0, + 500.0, + 300.0, + 2.0, + -3.0 + ], + "residual": 0.0, + "state_hash": 10088895819155863850 + }, + "nonpositive_joint_error": -702, + "residual": 0.0, + "singular_jacobian_error": -704 + } +} diff --git a/coverage/posemath-runtime.report.json b/coverage/posemath-runtime.report.json index 8e1e077..05ff1af 100644 --- a/coverage/posemath-runtime.report.json +++ b/coverage/posemath-runtime.report.json @@ -1,10 +1,230 @@ { - "schema": "posemath-runtime-report.v1", - "status": "passed", - "implementation": "linuxcnc/src/libnml/posemath", - "linked_sources": ["_posemath.c", "gomath.c", "sincos.c", "posemath.cc"], - "adapter_operations": ["normalize", "dot", "line_point", "is_finite"], - "error_boundaries": ["nonfinite", "degenerate", "range"], + "adapter_operations": [ + "normalize", + "dot", + "line_point", + "pose_line_point", + "segment_validate", + "segment_point", + "is_finite" + ], + "determinism": { + "byte_identical": true, + "runs": 2, + "state_hash_algorithm": "fnv1a64 over sim_tp_state object bytes", + "state_hash_identical": true + }, + "error_boundaries": [ + "argument", + "nonfinite", + "degenerate", + "range", + "motion_type", + "state", + "capacity" + ], + "fixed_float": { + "contract": "off", + "fast_math": false, + "standard": "IEEE-754 binary64" + }, + "golden_tolerance": "exact_for_adapter_inputs", + "implementation": "linuxcnc/src/libnml/posemath + linuxcnc/src/emc/tp", + "inputs": { + "bytes": 488358, + "file_count": 28, + "files": [ + { + "bytes": 712, + "path": "linuxcnc/src/libnml/posemath/Submakefile", + "sha256": "ce99301b14a570f3a5a6832d214131cc5331d655b76a0078803112b1f229b6ac" + }, + { + "bytes": 47948, + "path": "linuxcnc/src/libnml/posemath/_posemath.c", + "sha256": "b75ca68deef765090923cbbbd2fc8317d131c53c06fbbbc78b25ba331aeddd31" + }, + { + "bytes": 89361, + "path": "linuxcnc/src/libnml/posemath/gomath.c", + "sha256": "0095605a866d95d3cfce0236e9479e477a276a884bb05b50a63a474f08bc2f12" + }, + { + "bytes": 28115, + "path": "linuxcnc/src/libnml/posemath/gomath.h", + "sha256": "9a05762201ea93126a768b1bb717f8593786d591a38b17852565cb93103a9d85" + }, + { + "bytes": 4700, + "path": "linuxcnc/src/libnml/posemath/gotypes.h", + "sha256": "977fd4907da53fa831d1f3e85ae41e8018fe8fbd2540db25f53dc83966e8dd91" + }, + { + "bytes": 169, + "path": "linuxcnc/src/libnml/posemath/meson.build", + "sha256": "a48bc583c107d469ac6ec2df51b36b65caa5d8a476b906a4dbbba9d7d896ddf7" + }, + { + "bytes": 23563, + "path": "linuxcnc/src/libnml/posemath/posemath.cc", + "sha256": "c83f52c26bd233d9403488f5f38df5121602d842948ad4dc2c37789e18c5f67f" + }, + { + "bytes": 32215, + "path": "linuxcnc/src/libnml/posemath/posemath.h", + "sha256": "23205524123476e0a17da40983bdf0aad529684294884c5144f50380d190da69" + }, + { + "bytes": 575, + "path": "linuxcnc/src/libnml/posemath/sincos.c", + "sha256": "69b2671ecbdaa6d3c771e4ef267d2fb8abbddeaa3bf6c08d02d4e222e5b2c8fe" + }, + { + "bytes": 508, + "path": "linuxcnc/src/libnml/posemath/sincos.h", + "sha256": "1866f1647e0834c687e541f8f0540799026d6e9eeff97b7ec8dc5e6ec4438e08" + }, + { + "bytes": 225, + "path": "linuxcnc/src/emc/tp/Submakefile", + "sha256": "8af41d532de2a2bbcc6ec0238c88547fbf14ad80a666fa1fc5c39d2c27d016fc" + }, + { + "bytes": 58264, + "path": "linuxcnc/src/emc/tp/blendmath.c", + "sha256": "27b9b1192f273f77d52b7810dbd633e8ffd03f0e3127015eafae475e18b0666a" + }, + { + "bytes": 9443, + "path": "linuxcnc/src/emc/tp/blendmath.h", + "sha256": "48276307d04edfaf63a394e41aa62f698e29787884d1cd23673f18763c4088f1" + }, + { + "bytes": 136, + "path": "linuxcnc/src/emc/tp/meson.build", + "sha256": "1dba7d81a6cb02c6ed1dcd8d5e54f41a7c6bce3a46ddd95744c98409a4f6c6a7" + }, + { + "bytes": 6293, + "path": "linuxcnc/src/emc/tp/spherical_arc.c", + "sha256": "58a31693ffc61528c4e8842386fcd0267ab28edef4a27b2aa91d1b7af85fc934" + }, + { + "bytes": 2284, + "path": "linuxcnc/src/emc/tp/spherical_arc.h", + "sha256": "24369c82fd770cdfd392c8ae8a2e30a46e04b44a3ed6bbd8745d45bc85147801" + }, + { + "bytes": 28016, + "path": "linuxcnc/src/emc/tp/tc.c", + "sha256": "ff2a123adaa198c71dcd9a9c1a3a403ab25f9d6c217684afc4a093829adef2c1" + }, + { + "bytes": 3888, + "path": "linuxcnc/src/emc/tp/tc.h", + "sha256": "48caa2255744257b9b8e37812766f7feb3d012d1891dfdd6634edd32f1c65ba5" + }, + { + "bytes": 6363, + "path": "linuxcnc/src/emc/tp/tc_types.h", + "sha256": "5ce27b5a545d8b4acaf119bf314fc4fed9320c22f975d786b7b2ec94d8029cb5" + }, + { + "bytes": 8541, + "path": "linuxcnc/src/emc/tp/tcq.c", + "sha256": "2eb9de3c38d4d86338bda149baf52f9e9c87111cac9dff2b17884a2deb0feb05" + }, + { + "bytes": 2181, + "path": "linuxcnc/src/emc/tp/tcq.h", + "sha256": "61f516f51a78f505fc2d2ee60c967de2c35dce298def5466e4b8a5a9aa7fcbd2" + }, + { + "bytes": 121641, + "path": "linuxcnc/src/emc/tp/tp.c", + "sha256": "e0e4be6ef0b0a6c8b5eee32db9307986651938bc72c4e2c44750133b8da4dba8" + }, + { + "bytes": 3534, + "path": "linuxcnc/src/emc/tp/tp.h", + "sha256": "e36449a34f0ae67fa15e570b3c3117d39d3bada44c9e1ba61e7aa52533c46f17" + }, + { + "bytes": 1736, + "path": "linuxcnc/src/emc/tp/tp_debug.h", + "sha256": "033eab89f8378ed781b4c494ca4abba986282f83cb0ca7288bf56b5a5e4c6228" + }, + { + "bytes": 4556, + "path": "linuxcnc/src/emc/tp/tp_types.h", + "sha256": "2d552b57e2ae7cd71dede51c0a1adc86a01173dc24d49d8bbdb8467e0a85d18d" + }, + { + "bytes": 1025, + "path": "linuxcnc/src/emc/tp/tpmod.c", + "sha256": "1420f5777e0d1063709a6fdf4e391ec64abc43f9dd1da0838571052a92139d94" + }, + { + "bytes": 48, + "path": "linuxcnc/unit_tests/tp/meson.build", + "sha256": "625c4249c225fed116bc998530cc539703c341cb3426851aedaae58f4291de3d" + }, + { + "bytes": 2318, + "path": "linuxcnc/unit_tests/tp/test_blendmath.c", + "sha256": "0b2aaf0ec2506a4c2fd43a236f01c6c4e08fbf58998126926a8690a314d4d855" + } + ], + "fingerprint_sha256": "bb921823ad630db52343b52fb1d8074c8e333ceedb0735949ff5a74596c98dc7", + "roots": [ + "linuxcnc/src/libnml/posemath", + "linuxcnc/src/emc/tp", + "linuxcnc/unit_tests/tp" + ] + }, + "linked_sources": [ + "_posemath.c", + "gomath.c", + "sincos.c", + "posemath.cc" + ], + "motion_types": { + "circular": 2, + "linear": 1, + "rigid_tap": 3, + "spherical": 4 + }, "native_and_wasm": true, - "golden_tolerance": "exact_for_adapter_inputs" + "outputs": { + "bytes": 19323, + "file_count": 3, + "files": [ + { + "bytes": 3280, + "path": "wasm-core/include/sim_posemath.h", + "sha256": "fef257b09f68e5649f0acacfcd3590d699d6f678927fbf8db7d103a40bf7da62" + }, + { + "bytes": 13491, + "path": "wasm-core/src/sim_posemath.c", + "sha256": "939b221ed6ede1229d26c170ab3514884d5bafc90854ab09db641925859b5e8d" + }, + { + "bytes": 2552, + "path": "wasm-core/tests/sim_posemath_test.c", + "sha256": "751910f2bcd740c963b008e1ae4cb1dd058d2942ab1d63dd0a9f510a20a408d2" + } + ], + "fingerprint_sha256": "7db9f98a48f6f945374d367bdb878348704db218a426e6baf926ec358b607bc1" + }, + "schema": "posemath-runtime-report.v2", + "status": "passed", + "tp_operations": [ + "init", + "reset", + "enqueue", + "step", + "read_state", + "state_hash" + ] } diff --git a/coverage/robot-kinematics.report.json b/coverage/robot-kinematics.report.json new file mode 100644 index 0000000..5c8e801 --- /dev/null +++ b/coverage/robot-kinematics.report.json @@ -0,0 +1,229 @@ +{ + "boundaries": { + "puma_unreachable_or_singular": "SIM_KIN_ERR_RANGE/SINGULAR verified", + "scara_unreachable": "SIM_KIN_ERR_RANGE verified", + "scorbot_unreachable": "SIM_KIN_ERR_RANGE verified", + "state_hash": "native/WASM identical after 1e-9 hash quantization" + }, + "configuration_candidates": { + "puma": { + "coordinates": "XYZABC", + "joints": 6, + "kinematics": "pumakins", + "origin": "shipped", + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "scan": true + }, + "scara": { + "coordinates": "xyzcab", + "joints": 6, + "kinematics": "scarakins", + "origin": "shipped", + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "scan": true + }, + "scorbot": { + "coordinates": "XYZAB", + "joints": 5, + "kinematics": "scorbot-kins", + "origin": "workspace_derived_fixture; source has no shipped sim INI", + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", + "scan": true + } + }, + "geometry": { + "puma": { + "branches": [ + "shoulder", + "elbow", + "wrist flip" + ], + "parameters": { + "A2": 400.0, + "A3": 50.0, + "D3": 100.0, + "D4": 400.0, + "D6": 95.0 + }, + "singularity": "wrist t1/t2 threshold" + }, + "scara": { + "branch": "elbow flag selects q1 sign", + "defaults": { + "D1": 490.0, + "D2": 340.0, + "D3": 50.0, + "D4": 250.0, + "D5": 50.0, + "D6": 50.0 + }, + "orientation": "C=a0+a1+a3" + }, + "scorbot": { + "branch": "fixed elbow solution from source", + "controlled_point": "wrist J3/J4", + "links_mm": { + "L0_horizontal": 16.0, + "L0_vertical": 140.0, + "L1": 221.0, + "L2": 221.0 + } + } + }, + "implementation_status": "verified", + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "fad0d9058ca41776a07fd7b88d467b0d8f96135e036f0e887c9583c78a4f97ea", + "samples": { + "byte_identical_json": true, + "native": { + "puma": { + "inverse": [ + 10.0, + 20.0, + -30.0, + 40.0, + 25.0, + -15.0 + ], + "pose": [ + 450.112320486, + 207.114833215, + -612.180622409 + ], + "state_hash": 3161234248163340028 + }, + "scara": { + "inverse": [ + -3.644300703, + 40.0, + 25.0, + -31.355699297, + 5.0, + -3.0 + ], + "pose": [ + 590.460310444, + 130.945742721, + 465.0 + ], + "state_hash": 4515826253922604237 + }, + "scorbot": { + "inverse": [ + 25.0, + 35.0, + -20.0, + 10.0, + -5.0 + ], + "pose": [ + 366.786994761, + 171.035584569, + 191.173940759 + ], + "state_hash": 16037922903473574131 + } + }, + "wasm": { + "puma": { + "inverse": [ + 10.0, + 20.0, + -30.0, + 40.0, + 25.0, + -15.0 + ], + "pose": [ + 450.112320486, + 207.114833215, + -612.180622409 + ], + "state_hash": 3161234248163340028 + }, + "scara": { + "inverse": [ + -3.644300703, + 40.0, + 25.0, + -31.355699297, + 5.0, + -3.0 + ], + "pose": [ + 590.460310444, + 130.945742721, + 465.0 + ], + "state_hash": 4515826253922604237 + }, + "scorbot": { + "inverse": [ + 25.0, + 35.0, + -20.0, + 10.0, + -5.0 + ], + "pose": [ + 366.786994761, + 171.035584569, + 191.173940759 + ], + "state_hash": 16037922903473574131 + } + } + }, + "schema": "robot-kinematics-report.v1", + "source_records": { + "header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "db16293ec3645559a0be71a40963693f3d1e3f5fdedc92902be19b47f653dfa8" + }, + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "7a77915c59f190bcbe5c93d8f53498745bfcf978c167ba8878a21b914f9401fd" + }, + "puma_config": { + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "sha256": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6" + }, + "puma_params": { + "path": "linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal", + "sha256": "b57992601bf614c26e53c8add3c3aac0a0df79929dd64f897a19630437d1c181" + }, + "puma_source": { + "path": "linuxcnc/src/emc/kinematics/pumakins.c", + "sha256": "5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2" + }, + "scara_config": { + "path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "sha256": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce" + }, + "scara_source": { + "path": "linuxcnc/src/emc/kinematics/scarakins.c", + "sha256": "f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9" + }, + "scorbot_config": { + "path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", + "sha256": "4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343" + }, + "scorbot_source": { + "path": "linuxcnc/src/emc/kinematics/scorbot-kins.c", + "sha256": "89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "ceeb8b4100d034d76e70ce675d78b2d62c51e8e70be2205a9c8ae02e105a6aa6" + } + }, + "status": "partial" +} diff --git a/coverage/source-index.jsonl b/coverage/source-index.jsonl index 6efff2a..494470c 100644 --- a/coverage/source-index.jsonl +++ b/coverage/source-index.jsonl @@ -532,6 +532,8 @@ {"bytes":208,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc","sha256":"5b194542cca489e2f998104e7054c7d95433aa16f22be0ce5c09411089509b66","source_id":"config:linuxcnc/configs/sim/axis/rose_engine/rcone_demo.ngc"} {"bytes":207,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/rose_engine/rose_engine.halshow","sha256":"174d37a7fc858c6534bcdaa239b35d1d873540b37bee173cf2aee53b80a4212a","source_id":"config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.halshow"} {"bytes":1694,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini","sha256":"0685e9ca8c05c903b715e9fed6ecd23cbac13911ed335b6d14e24eb235de25d3","source_id":"config:linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini"} +{"bytes":343,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/rotate/rotatekins.hal","sha256":"e3c9ec02685f64fdb72bb9e561b3709b450f0da29eac9cca0f17541f843b0954","source_id":"config:linuxcnc/configs/sim/axis/rotate/rotatekins.hal"} +{"bytes":515,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/rotate/rotatekins.ini","sha256":"324af9a73d21b5f0c9adaf3c97e698422790d403586901f9e161b6020b1fb4fa","source_id":"config:linuxcnc/configs/sim/axis/rotate/rotatekins.ini"} {"bytes":174,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/sim.tbl","sha256":"52411645e06c20cf0e6c469e544a4d17de07d03254a6cb784e2468704e0a4a9e","source_id":"config:linuxcnc/configs/sim/axis/sim.tbl"} {"bytes":523,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/sim_mm.tbl","sha256":"1816cbb02cc6585d86676bb2d88f85b10b439cf42212e0b4c144f3846a3dcf30","source_id":"config:linuxcnc/configs/sim/axis/sim_mm.tbl"} {"bytes":618,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/simpockets.tbl","sha256":"e81a30f74f1c91fcece180e607f7e2cd63468bf4d432cc5cad2bc65eb7152150","source_id":"config:linuxcnc/configs/sim/axis/simpockets.tbl"} @@ -736,6 +738,8 @@ {"bytes":3622,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/vismach/scara/scara.ini","sha256":"602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce","source_id":"config:linuxcnc/configs/sim/axis/vismach/scara/scara.ini"} {"bytes":3589,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/vismach/scara/scara.xml","sha256":"4fc724d9bd969c84ce6d9e4c2c4e47a1c1ec67646044e1ca227b1745f9131734","source_id":"config:linuxcnc/configs/sim/axis/vismach/scara/scara.xml"} {"bytes":828,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal","sha256":"77b7360cf05b79fa6cc15f1f686f444fe55360668ec21f3859703bcd2d2a5596","source_id":"config:linuxcnc/configs/sim/axis/vismach/scara/scara_postgui.hal"} +{"bytes":250,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal","sha256":"ef66253c80e77899df824f9317e9ba0e9292f0e0389ef8e7ec22ebb465563363","source_id":"config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.hal"} +{"bytes":420,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini","sha256":"4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343","source_id":"config:linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini"} {"bytes":193,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/wrapped_rotary/README","sha256":"5f9fd4cb6e25c0a7b940e92131b962e10d671a1f6e16afe528901e9f73ab48a2","source_id":"config:linuxcnc/configs/sim/axis/wrapped_rotary/README"} {"bytes":193,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/wrapped_rotary/README_es","sha256":"5f9fd4cb6e25c0a7b940e92131b962e10d671a1f6e16afe528901e9f73ab48a2","source_id":"config:linuxcnc/configs/sim/axis/wrapped_rotary/README_es"} {"bytes":918,"kind":"simulation_config","path":"linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal","sha256":"34102c0b792c4ddf9d2122898513a316f990b91f38e3ede62f5a6fe6f40c04a1","source_id":"config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.hal"} @@ -3207,21 +3211,32 @@ {"bytes":311,"kind":"documentation","path":"linuxcnc/docs/src/xhtml11-latexmath.conf","sha256":"d31ed1d15f9ac1232af1e58c05d83feedd9cd73f9fe543d589f9340fdf0ad719","source_id":"doc:linuxcnc/docs/src/xhtml11-latexmath.conf"} {"bytes":269,"kind":"documentation","path":"linuxcnc/docs/src/xhtml11-links.conf","sha256":"debc4b462499fdd8286b3812c705e40267e53d87ae8062250e8c23cb7ad59afe","source_id":"doc:linuxcnc/docs/src/xhtml11-links.conf"} {"bytes":886,"kind":"documentation","path":"linuxcnc/docs/src/xhtml11.conf","sha256":"c0222c552624bf3b7695e2f5c5db797be0e6cddcd77092293fd5e15b579f2ba9","source_id":"doc:linuxcnc/docs/src/xhtml11.conf"} -{"bytes":3882,"kind":"web_wasm_build_or_test","path":"wasm-core/CMakeLists.txt","sha256":"c289bad75abc394faf08b90d5cebb14c5293b4a9b64249a4aefd317acca036ac","source_id":"implementation:wasm-core/CMakeLists.txt"} +{"bytes":6793,"kind":"web_wasm_build_or_test","path":"wasm-core/CMakeLists.txt","sha256":"e9296a3983a531e4e6864d05e2e97c8dbf29e0dc9e45942ecc1a0a7222b3a660","source_id":"implementation:wasm-core/CMakeLists.txt"} {"bytes":933,"kind":"web_wasm_interface","path":"wasm-core/include/sim_api.h","sha256":"9dda70ef64afe0b398a3de5342e6bdf545c331bbef24f112be2a45acec327227","source_id":"implementation:wasm-core/include/sim_api.h"} {"bytes":1050,"kind":"web_wasm_interface","path":"wasm-core/include/sim_event.h","sha256":"5406dbf7fb6a80924835d967641c9ed22cc8c25a13b72b76ce3d235abb0ad45d","source_id":"implementation:wasm-core/include/sim_event.h"} -{"bytes":1669,"kind":"web_wasm_interface","path":"wasm-core/include/sim_hal.h","sha256":"f87fc7fb47a848516e1e9f41298ceb1a7af18d022619c9336cc390aebb0f9ab2","source_id":"implementation:wasm-core/include/sim_hal.h"} -{"bytes":928,"kind":"web_wasm_interface","path":"wasm-core/include/sim_posemath.h","sha256":"71b092379fbfbbd46cf2280fb825fabe84219dd9a0fc1e16f0bf7232160dff05","source_id":"implementation:wasm-core/include/sim_posemath.h"} +{"bytes":1967,"kind":"web_wasm_interface","path":"wasm-core/include/sim_hal.h","sha256":"f0b25fda1c267ed8078469c9966fa3b09721eba77c575affea77d489437a3e49","source_id":"implementation:wasm-core/include/sim_hal.h"} +{"bytes":1872,"kind":"web_wasm_interface","path":"wasm-core/include/sim_interpreter.h","sha256":"7bf24098340e3da2272061acf7a43376c6c40fe9dffc55d012e3af65ceffedbb","source_id":"implementation:wasm-core/include/sim_interpreter.h"} +{"bytes":5446,"kind":"web_wasm_interface","path":"wasm-core/include/sim_kinematics.h","sha256":"939d4088d9e7120e4a405be154eb3d98cd4e5925fc27d47641c115624c1bd994","source_id":"implementation:wasm-core/include/sim_kinematics.h"} +{"bytes":1819,"kind":"web_wasm_interface","path":"wasm-core/include/sim_motion_queue.h","sha256":"c26af2b5cff6cbc687f621d745601ff287eebd62011ea46fc7fa692b446a08cc","source_id":"implementation:wasm-core/include/sim_motion_queue.h"} +{"bytes":3280,"kind":"web_wasm_interface","path":"wasm-core/include/sim_posemath.h","sha256":"fef257b09f68e5649f0acacfcd3590d699d6f678927fbf8db7d103a40bf7da62","source_id":"implementation:wasm-core/include/sim_posemath.h"} {"bytes":1238,"kind":"web_wasm_interface","path":"wasm-core/include/sim_protocol.h","sha256":"d1dd3247159f0950a9aa2d903d25cfa184bccff1d7512de293868763b4035d35","source_id":"implementation:wasm-core/include/sim_protocol.h"} {"bytes":2262,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_api.c","sha256":"072ffb5aa13c4924c638464bb8487e5c293db589a9735c4d39c3a6d9455a3e59","source_id":"implementation:wasm-core/src/sim_api.c"} {"bytes":2579,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_event.c","sha256":"a0af4a75c9c3b71d4a59df675b64f313eda05f4589538fe999cd92607d104397","source_id":"implementation:wasm-core/src/sim_event.c"} -{"bytes":6029,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_hal.c","sha256":"5926e2cdc785d060bc199b2bdfa550c898facf8221204487fdc3ae841400a02e","source_id":"implementation:wasm-core/src/sim_hal.c"} -{"bytes":2449,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_posemath.c","sha256":"274445935ffc1bf7201879d0779c19e73a6eea70a19b10c5929208f77a6bde65","source_id":"implementation:wasm-core/src/sim_posemath.c"} +{"bytes":9413,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_hal.c","sha256":"76a057064546a8ee9ba1098952755a4cdc56e6e714f2761b8a1826898d3ae621","source_id":"implementation:wasm-core/src/sim_hal.c"} +{"bytes":11585,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_interpreter.c","sha256":"9f9f45f7c123be774dcf55a752a29e6cc1f873a1605cf89c4caa4f4ab125e6a4","source_id":"implementation:wasm-core/src/sim_interpreter.c"} +{"bytes":66830,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_kinematics.c","sha256":"6abae835c16feb27ec1dc28a9ea5384f0bc5190217ba04a4997048d83066b905","source_id":"implementation:wasm-core/src/sim_kinematics.c"} +{"bytes":7791,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_motion_queue.c","sha256":"56074e27df90bc1b60134eac3cdf84c78149388f99a19a027f6714e3784b04ed","source_id":"implementation:wasm-core/src/sim_motion_queue.c"} +{"bytes":13491,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_posemath.c","sha256":"939b221ed6ede1229d26c170ab3514884d5bafc90854ab09db641925859b5e8d","source_id":"implementation:wasm-core/src/sim_posemath.c"} {"bytes":4302,"kind":"web_wasm_implementation","path":"wasm-core/src/sim_protocol.c","sha256":"da63b458f64f997251323fc8b53a9c84d1f978f5e8ea5ed7c8dd6f5bceab60e4","source_id":"implementation:wasm-core/src/sim_protocol.c"} {"bytes":858,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_api_test.c","sha256":"5fe8aa04543be2943c9e577bd6ce8f9ae9a8c98c7c24e84fd589b761fe39170c","source_id":"implementation:wasm-core/tests/sim_api_test.c"} {"bytes":1178,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_event_test.c","sha256":"57fdb682dcb18632216b4093e6dfadf2736a0ab11a002438e3c269d4d4b5406d","source_id":"implementation:wasm-core/tests/sim_event_test.c"} -{"bytes":1358,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_hal_test.c","sha256":"9dd08ea73df45d1d9cef14bb02138269a5b3e0a0e96de75c621f5c79f00318b9","source_id":"implementation:wasm-core/tests/sim_hal_test.c"} -{"bytes":972,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_posemath_test.c","sha256":"419176eef28697eecdac1e2e666dc42da491e600b966a559bfe9e5b60a2d0c0a","source_id":"implementation:wasm-core/tests/sim_posemath_test.c"} +{"bytes":3505,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_hal_test.c","sha256":"5044ed422b37499291ff85fd7c601acc6665621cf33e9ff4d26f0e8fd5b7d533","source_id":"implementation:wasm-core/tests/sim_hal_test.c"} +{"bytes":79,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_hal_test_main.c","sha256":"86f625eaa0c6d6a195b97c0d4df17af6c57f5407bcec0a830e7521cb9823165a","source_id":"implementation:wasm-core/tests/sim_hal_test_main.c"} +{"bytes":2066,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_interpreter_test.c","sha256":"c4fc3ba11b751ed9f3f770ff1ff164ce18aa19986003cf85d17a26de7aecd3ce","source_id":"implementation:wasm-core/tests/sim_interpreter_test.c"} +{"bytes":37392,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_kinematics_test.c","sha256":"c9e4d20973c6a487787504bd5de9a73829f53d8bbfd35f91e72c6c62c76f191e","source_id":"implementation:wasm-core/tests/sim_kinematics_test.c"} +{"bytes":93,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_kinematics_test_main.c","sha256":"e567fe412145d3c9b04afc91d6efc6a53c3af3b3b52b7dda860cc289d42dbfc0","source_id":"implementation:wasm-core/tests/sim_kinematics_test_main.c"} +{"bytes":1386,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_motion_queue_test.c","sha256":"882c90f9963b2433b868859c50a91dbdecef93454039b05b11241c1f76c13f31","source_id":"implementation:wasm-core/tests/sim_motion_queue_test.c"} +{"bytes":2552,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_posemath_test.c","sha256":"751910f2bcd740c963b008e1ae4cb1dd058d2942ab1d63dd0a9f510a20a408d2","source_id":"implementation:wasm-core/tests/sim_posemath_test.c"} {"bytes":1457,"kind":"web_wasm_implementation","path":"wasm-core/tests/sim_protocol_test.c","sha256":"74c855e4bcae2091913847e2ba46ea5f0ae482229b53199baee5bbdcd3c0ef49","source_id":"implementation:wasm-core/tests/sim_protocol_test.c"} {"bytes":1779,"kind":"web_wasm_implementation","path":"web/worker/capabilities.mjs","sha256":"175cb4dac10cc6b2eb80ed1cf24405151ae3fac6ff82f68e5e2e241d79f10c97","source_id":"implementation:web/worker/capabilities.mjs"} {"bytes":3084,"kind":"web_wasm_implementation","path":"web/worker/error-map.mjs","sha256":"83ca215534eed48a9082cc07230507c7b38cbb99f9f2a52e7026b5d49da1d167","source_id":"implementation:web/worker/error-map.mjs"} diff --git a/coverage/tripod-kinematics.report.json b/coverage/tripod-kinematics.report.json new file mode 100644 index 0000000..a2eea9d --- /dev/null +++ b/coverage/tripod-kinematics.report.json @@ -0,0 +1,197 @@ +{ + "configuration_candidate": { + "coordinates": "XYZ", + "hal_library": "linuxcnc/lib/hallib/tripodsim.hal", + "joints": 3, + "kinematics": "tripodkins", + "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini", + "scan": true + }, + "geometry": { + "base_A": [ + 0.0, + 0.0, + 0.0 + ], + "base_B": [ + 10.0, + 0.0, + 0.0 + ], + "base_C": [ + 5.0, + 7.071, + 0.0 + ], + "hal_parameters": { + "Bx": 10.0, + "Cx": 5.0, + "Cy": 7.071 + }, + "joint_semantics": [ + "AD", + "BD", + "CD" + ] + }, + "implementation_status": "verified", + "mapping": { + "axis_joint_mapping": { + "X": 0, + "Y": 1, + "Z": 2 + }, + "coordinates": "XYZ", + "home_pose": [ + 0.0, + 0.0, + 1.0 + ], + "kinematics_joint_count": 3 + }, + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "oracle": { + "blocked_samples": [ + "nominal above-root", + "alternate below-root", + "triangle-inequality no-solution", + "base-plane singular", + "joint-limit", + "degenerate base geometry" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "e5fe7526d1dcff1f8327c1389809affb5ac4cf1913e4b428ec4420e6ae957070", + "samples": { + "byte_identical_json": true, + "native": { + "boundaries": { + "alternate_branch": 1, + "alternate_pose": [ + 2.0, + 3.0, + -4.0 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "limit_error": -702, + "no_solution": -702, + "singular": -704 + }, + "tripod": { + "inverse": [ + 5.385164807, + 9.433981132, + 6.447715952 + ], + "pose": [ + 2.0, + 3.0, + 4.0 + ], + "state_hash": 7469146853106540736 + } + }, + "state_hash_identical": true, + "wasm": { + "boundaries": { + "alternate_branch": 1, + "alternate_pose": [ + 2.0, + 3.0, + -4.0 + ], + "alternate_status": 0, + "branch": 0, + "geometry_error": -703, + "iterations": 0, + "limit_error": -702, + "no_solution": -702, + "singular": -704 + }, + "tripod": { + "inverse": [ + 5.385164807, + 9.433981132, + 6.447715952 + ], + "pose": [ + 2.0, + 3.0, + 4.0 + ], + "state_hash": 7469146853106540736 + } + } + }, + "schema": "tripod-kinematics-report.v1", + "solver": { + "alternate_branch": "Dz<0 when SIM_KIN_TRIPOD_BELOW_ROOT is set", + "convergence_tolerance": 0.0, + "default_branch": "Dz>0", + "forward": "analytic trilateration", + "inverse": "three Euclidean strut lengths", + "iterations": 0 + }, + "source_records": { + "config": { + "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini", + "sha256": "8da7280a981d80e9b7d4b608a357fc87dbb9d83535636794e1ae97d5ebcb8f01" + }, + "hal": { + "path": "linuxcnc/lib/hallib/tripodsim.hal", + "sha256": "e8b341253823f5e2764b2e7c4cc630b557b89dad5e1f7698bbddc1d0b9679747" + }, + "header": { + "path": "wasm-core/include/sim_kinematics.h", + "sha256": "43e588f7c45c703970598e8e42ff5aae4b97a437eaff1d4cd6ad156bd204edc7" + }, + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "f15842a1dbf0cb33f071ee1e70715a85a1f3dec44c4facc220edd924f6ca352c" + }, + "source": { + "path": "linuxcnc/src/emc/kinematics/tripodkins.c", + "sha256": "0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "00d9efc3c701ba2848535357f6027e6d9d4d19796a17be96e290ddc0babe2c5c" + } + }, + "status": "partial", + "workspace_and_boundaries": { + "alternate_branch": 1, + "alternate_pose": [ + 2.0, + 3.0, + -4.0 + ], + "base_plane_singular_error": -704, + "geometry_error": -703, + "iterations": 0, + "joint_limit_error": -702, + "no_solution_error": -702, + "nominal": { + "inverse": [ + 5.385164807, + 9.433981132, + 6.447715952 + ], + "pose": [ + 2.0, + 3.0, + 4.0 + ], + "state_hash": 7469146853106540736 + }, + "root_branch": 0 + } +} diff --git a/coverage/trivkins-integration.report.json b/coverage/trivkins-integration.report.json new file mode 100644 index 0000000..58c8e28 --- /dev/null +++ b/coverage/trivkins-integration.report.json @@ -0,0 +1,307 @@ +{ + "abi_contract": "coverage/kinematics-abi-contract.json", + "configuration_ids": [ + "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gantry/gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gantry/gantry_jjog.ini:6:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gantry/gantry_mm.ini:45:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/geometry/xyzc.ini:33:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/geometry/xyzc_origin.ini:34:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel.ini:69:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_panel_tester.ini:69:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/gladevcp_tab.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/probe.ini:69:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/gladevcp/set-param-from-ini.ini:68:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/halui_pyvcp/halui.ini:57:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/histogram_demo.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/historical_lathe.ini:68:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ini_hal_demo.ini:71:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ini_with_includes/kins.inc:2:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/axis-iocontrolv2-demo.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/g8812.ini:135:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/m66track.ini:116:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui-ns.ini:118:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/iocontrolv2/owordm6-ui.ini:98:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyyzb.ini:20:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xyzb_locking_indexer/xyzb.ini:13:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xyzx_mpg/xyzx_base.inc:7:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz.ini:11:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ja_tests/xz/xz_both_auto.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/lathe-fanucy/lathe-fanucy.ini:62:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/lathe.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/lathe_multispindle/lathe.ini:142:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/minimal_xyz.ini:39:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/moveoff/moveoff_base.inc:40:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui.ini:101:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_gcmc.ini:106:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_lathe.ini:90:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/ngcgui_simple.ini:89:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/ngcgui/pyngcgui_axis.ini:102:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/acc_test.ini:66:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/axis_noio.ini:117:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/core_sim_test.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/iocontrol-removed/iocontrol-removed.ini:212:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/orphans/medium.ini:65:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/panelui-demo/panelui-demo.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/plasma/imperial.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/plasma/metric.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/profile_axis.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/qtvcp/qtvcp_tab.ini:74:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/qtvcp/qtvismach_tab.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/random_tc.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/cycle/cycle.ini:75:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/extend-builtins/extend-builtins.ini:105:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/getting-started/demo.ini:156:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/manual-toolchange-with-tool-length-switch/manualtoolchange.ini:92:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/rack-toolchange/racktoolchange.ini:92:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/remap/stop-lookahead/demo.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/simtcl/twopass_base.inc:51:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/spindle_orient/orient.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/twopass/twopass.ini:74:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/3axis-tutorial/3axis-tutorial.ini:159:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini:4:kinematics:maxkins", + "config:linuxcnc/configs/sim/axis/vismach/5axis/max5/max5triv.ini:4:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_graycode.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/VMC_toolchange/vmc_index.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/hbm/hbm.ini:49:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/vismach/rolfmill/rolfmill.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/axis/wrapped_rotary/wrapped_rotary.ini:45:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/xhc-hb04/inch_trivkins.inc:13:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/xhc-hb04/mm_trivkins.inc:13:kinematics:trivkins", + "config:linuxcnc/configs/sim/craftsman/craftsmancnc.ini:82:kinematics:trivkins", + "config:linuxcnc/configs/sim/craftsman/sim_core.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/6_axis.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/7_axis.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/7_axis_tool.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/8_axis.ini:71:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/9_axis.ini:72:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_6.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_7.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_8.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/core_sim_9.hal:5:loadrt:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy.ini:101:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_4_axis.ini:89:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini:121:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAC.ini:111:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini:107:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_left_panel.ini:98:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_messages.ini:131:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pedant.ini:99:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_plasma/gmoccapy_plasma.ini:113:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_pyngcgui.ini:134:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_right_panel.ini:94:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_sim_hardware_button.ini:102:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_tool_sensor.ini:128:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/gmoccapy_with_user_tabs.ini:119:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe.ini:95:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_C.ini:96:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_CW.ini:96:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_backtool.ini:96:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_imperial.ini:95:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/lathe_configs/lathe_macros.ini:101:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/non_trivial_kinematics/Gantry/gantry_mm.ini:55:kinematics:trivkins", + "config:linuxcnc/configs/sim/gmoccapy/plasma_config/gmoccapy_plasma.ini:109:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen.ini:166:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/9axis.ini:135:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gaxis_no_plot.ini:133:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/gscreen_gaxis.ini:133:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/industrial.ini:135:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester.ini:124:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_custom/tester_metric.ini:137:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_lathe.ini:65:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/gscreen_mm.ini:138:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/industrial_lathe_wear/industrial_lathe_wear.ini:79:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen.ini:114:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/ngcgui/pyngcgui_gscreen_popupkeyboard.ini:111:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/silverdragon/silverdragon.ini:128:kinematics:trivkins", + "config:linuxcnc/configs/sim/gscreen/spartan/spartan.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_bottom_panel.ini:153:kinematics:trivkins", + "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_demo1.ini:150:kinematics:trivkins", + "config:linuxcnc/configs/sim/pyvcp_demo/pyvcp_embed_tab.ini:154:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtaxis/gantry/qt_gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtaxis/xyz/qtaxis.ini:217:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzy.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyzya.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_tool_probe/qtdragon_auto_tool_probe.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini:114:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_metric.ini:111:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_xyza.ini:89:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzab.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyzac.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyz.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyza.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzab.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_xyzac.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini:84:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_imperial_ini.inc:44:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtplasmac/qtplasmac_metric_ini.inc:44:kinematics:trivkins", + "config:linuxcnc/configs/sim/qttouchy/qttouchy.ini:198:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/blender.ini:207:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/industrial_lathe_wear/industrial_lathe_wear.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qt_800x600.ini:164:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qt_gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis.ini:220:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_lathe/qtaxis_lathe.ini:191:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtaxis_mpg.ini:224:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault.ini:210:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_9axis.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_gantry.ini:3:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdefault_mm.ini:134:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon.ini:80:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_auto_tool_probe.ini:55:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_hd.ini:58:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_inch.ini:75:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyyz.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyz.ini:62:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyza.ini:63:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzy.ini:61:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_xyzya.ini:63:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_custom/qtdefault_ngc.ini:229:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/gremlin.ini:232:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_gladevcp.ini:232:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtvcp_experimental/qtdefault_ngc.ini:229:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/qtx1mill.ini:214:kinematics:trivkins", + "config:linuxcnc/configs/sim/qtvcp_screens/tester.ini:184:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/servo_sim.ini:49:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/tklinuxcnc.ini:79:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz.ini:11:kinematics:trivkins", + "config:linuxcnc/configs/sim/tklinuxcnc/trivkins/xz_both.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/gladevcp/gladevcp_touchy.ini:90:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/gladevcp/touchy.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy.ini:73:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_lathe.ini:88:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/ngcgui/pyngcgui_touchy_moveoff.ini:75:kinematics:trivkins", + "config:linuxcnc/configs/sim/touchy/touchy.ini:64:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker.ini:49:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_auto_tool_probe.ini:63:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyz.ini:56:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyza.ini:86:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini:74:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzy.ini:55:kinematics:trivkins", + "config:linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini:58:kinematics:trivkins", + "config:linuxcnc/tests/abort/feed-rate/test.ini:59:kinematics:trivkins", + "config:linuxcnc/tests/abort/g64/test.ini:60:kinematics:trivkins", + "config:linuxcnc/tests/abort/on_abort_command-crazy-move/test.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/abort/stop-button-crazy-move/test.ini:65:kinematics:trivkins", + "config:linuxcnc/tests/ccomp/early-exit/test.ini:58:kinematics:trivkins", + "config:linuxcnc/tests/classicladder/estop/classicladder-estop.ini:38:kinematics:trivkins", + "config:linuxcnc/tests/halui/jogging/halui.ini:60:kinematics:trivkins", + "config:linuxcnc/tests/halui/mdi/halui.ini:49:kinematics:trivkins", + "config:linuxcnc/tests/hard-limits/hard-limits.ini:37:kinematics:trivkins", + "config:linuxcnc/tests/interp/m98m99/12-M99-endless-main-program/motion-logger.ini:44:kinematics:trivkins", + "config:linuxcnc/tests/interp/mdi-oword-m66/interp.ini:47:kinematics:trivkins", + "config:linuxcnc/tests/interp/oword-mdi-sub-update/interp.ini:41:kinematics:trivkins", + "config:linuxcnc/tests/interp/subroutine-return/interp.ini:41:kinematics:trivkins", + "config:linuxcnc/tests/io-startup/nonrandom/test.ini:44:kinematics:trivkins", + "config:linuxcnc/tests/io-startup/random/test.ini:43:kinematics:trivkins", + "config:linuxcnc/tests/lathe/lathe.ini:47:kinematics:trivkins", + "config:linuxcnc/tests/linuxcncrsh-tcp/linuxcncrsh-test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/linuxcncrsh/linuxcncrsh-test.ini:58:kinematics:trivkins", + "config:linuxcnc/tests/mdi-queue-length/test.ini:45:kinematics:trivkins", + "config:linuxcnc/tests/mdi-queue/linuxcncrsh-test.ini:60:kinematics:trivkins", + "config:linuxcnc/tests/mdi-while-queuebuster-waitflag/test.ini:46:kinematics:trivkins", + "config:linuxcnc/tests/motion-logger/basic/test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/motion-logger/mountaindew/mountaindew.ini:45:kinematics:trivkins", + "config:linuxcnc/tests/motion-logger/startup-gcode-abort/test.ini:57:kinematics:trivkins", + "config:linuxcnc/tests/motion/g0/motion-test.ini:65:kinematics:trivkins", + "config:linuxcnc/tests/motion/jogwheel-axis/motion-test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/motion/jogwheel-joint/motion-test.ini:42:kinematics:trivkins", + "config:linuxcnc/tests/mqtt/simulator.ini:52:kinematics:trivkins", + "config:linuxcnc/tests/remap/remap-io/test-ngc.ini:64:kinematics:trivkins", + "config:linuxcnc/tests/remap/remap-io/test-py.ini:64:kinematics:trivkins", + "config:linuxcnc/tests/remap/remap-reentry/test.ini:45:kinematics:trivkins", + "config:linuxcnc/tests/rs274ngc-startup/test.ini:57:kinematics:trivkins", + "config:linuxcnc/tests/single-step/test.ini:43:kinematics:trivkins", + "config:linuxcnc/tests/startup-state/test.ini:57:kinematics:trivkins", + "config:linuxcnc/tests/statbuffer-g5x-abort/test.ini:56:kinematics:trivkins", + "config:linuxcnc/tests/t0/nonrandom/sim.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/t0/random-with-t0/sim.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/t0/random-without-t0/sim.ini:67:kinematics:trivkins", + "config:linuxcnc/tests/tlo/g43-test.ini:46:kinematics:trivkins", + "config:linuxcnc/tests/tool-info/non-random/test.ini:54:kinematics:trivkins", + "config:linuxcnc/tests/tool-info/random-no-startup-tool/test.ini:54:kinematics:trivkins", + "config:linuxcnc/tests/tool-info/random-with-startup-tool/test.ini:54:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/m61/m61-test.ini:39:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/m61/mod_core_sim.hal:5:loadrt:trivkins", + "config:linuxcnc/tests/toolchanger/reload-tool/non-random/test.ini:55:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/reload-tool/random/test.ini:55:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/nonrandom/sim.ini:68:kinematics:trivkins", + "config:linuxcnc/tests/toolchanger/toolno-pocket-differ/random/sim.ini:68:kinematics:trivkins", + "config:linuxcnc/tests/trajectory-planner/circular-arcs/configs/core_sim_components.hal:5:loadrt:trivkins" + ], + "context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1", + "coordinates": { + "XYZ": "verified", + "XYZABCUVW": "verified", + "case_fold": "verified", + "duplicate_axes": "verified", + "extra_joint_count": "verified" + }, + "extra_joints": { + "home_zeroes_kinematics_prefix": "verified", + "ignored_suffix": "verified", + "joint_count_mismatch": "verified", + "prefix_only": "verified" + }, + "mapping_contract": "coverage/kinematics-mapping-contract.json", + "modes": { + "both": "verified", + "forward_only": "verified", + "identity": "verified", + "inverse_only": "verified" + }, + "numeric_policy": "coverage/kinematics-numeric-policy.json", + "oracle": { + "configuration_candidates": [ + "config:linuxcnc/configs/sim/axis/anglejog/anglejog.ini:54:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis.ini:144:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_9axis.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/axis_mm.ini:136:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/canterp.ini:47:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/classicladder/demo_sim_cl.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini:10:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/db_demo/base.inc:38:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/dynamic_offsets.ini:46:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/eoffsets.ini:67:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/jwp_z.ini:52:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/external_offsets/opa.ini:56:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/12extrajoints.ini:19:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/1extrajoint.ini:22:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/extrajoints/2extrajoints.ini:25:kinematics:trivkins", + "config:linuxcnc/configs/sim/axis/foam/axis_foam.ini:64:kinematics:trivkins" + ], + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "fec9dd7b8adc27ab05c2663320854b027d22cd5dcc7aab31c9597470b9724560", + "schema": "trivkins-integration-report.v1", + "source_ids": [ + "source:linuxcnc/src/emc/kinematics/maxkins.c", + "source:linuxcnc/src/emc/kinematics/rotatekins.c", + "source:linuxcnc/src/emc/kinematics/trivkins.c" + ], + "status": "partial", + "tests": { + "ctest": "sim_kinematics_test", + "native": "build-native/sim_kinematics_test", + "status": "passed" + } +} diff --git a/coverage/trt-kinematics.report.json b/coverage/trt-kinematics.report.json new file mode 100644 index 0000000..edf1677 --- /dev/null +++ b/coverage/trt-kinematics.report.json @@ -0,0 +1,153 @@ +{ + "boundaries": { + "missing_required_axis": "SIM_KIN_ERR_CONFIGURATION verified by existing contract tests", + "state_hash": "native/WASM identical", + "xyzac_round_trip": "verified", + "xyzbc_b_90_singular": "SIM_KIN_ERR_SINGULAR verified", + "xyzbc_round_trip": "verified" + }, + "configuration_candidates": { + "xyzac": { + "joints": 5, + "kinematics": "xyzac-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "scan": true, + "sparm": "identityfirst" + }, + "xyzbc": { + "joints": 5, + "kinematics": "xyzbc-trt-kins", + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "scan": true, + "sparm": "identityfirst" + } + }, + "implementation_status": "verified", + "native_wasm": { + "native_command": "build-native/sim_kinematics_test", + "status": "passed", + "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js" + }, + "offsets": { + "xyzac": { + "tool_offset": 100.0, + "x_rot_point": 20.0, + "y_offset": 3.0 + }, + "xyzbc": { + "tool_offset": 50.0, + "x_offset": 5.0, + "z_offset": 2.0 + } + }, + "oracle": { + "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "status": "blocked" + }, + "report_sha256": "504f1e29c8c7e3d0d96c4113106401d0c44c1b82044461e43d1b2f5cf48fdfcc", + "rotation_chain": { + "direction": "LinuxCNC opposite conventional rotary directions retained", + "identityfirst": "switchkins type 0 identity, type 1 TRT, type 2 userk", + "xyzac": "C about Z then A about X with y/z/tool offsets", + "xyzbc": "C about Z then B about Y with x/z/tool offsets" + }, + "samples": { + "byte_identical_json": true, + "native": { + "xyzac_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 142.826706376, + 9.689621386, + 163.102540378 + ], + "state_hash": 4869492769119734977 + }, + "xyzbc_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 44.740352549, + 25.97032557, + 227.67175976 + ], + "state_hash": 1734235358276017152 + } + }, + "wasm": { + "xyzac_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 142.826706376, + 9.689621386, + 163.102540378 + ], + "state_hash": 4869492769119734977 + }, + "xyzbc_trt": { + "inverse": [ + 100.0, + 50.0, + 200.0, + 30.0, + 45.0 + ], + "pose": [ + 44.740352549, + 25.97032557, + 227.67175976 + ], + "state_hash": 1734235358276017152 + } + } + }, + "schema": "trt-kinematics-report.v1", + "source_records": { + "implementation": { + "path": "wasm-core/src/sim_kinematics.c", + "sha256": "7a77915c59f190bcbe5c93d8f53498745bfcf978c167ba8878a21b914f9401fd" + }, + "test": { + "path": "wasm-core/tests/sim_kinematics_test.c", + "sha256": "ceeb8b4100d034d76e70ce675d78b2d62c51e8e70be2205a9c8ae02e105a6aa6" + }, + "trt_source": { + "path": "linuxcnc/src/emc/kinematics/trtfuncs.c", + "sha256": "ced2f9d4732681e2e82153b2f6343eccdf6972222d558d1e277bf1ec0bdc87fd" + }, + "xyzac_config": { + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "sha256": "9ee1d96962e7a44b25468f452543cfc3ca318585269e26227bb5b6e17b1e42f1" + }, + "xyzac_source": { + "path": "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "sha256": "24c633613db9876c2ec246e1519a63d288fd27c68296d89f89f0368105634e69" + }, + "xyzbc_config": { + "path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "sha256": "78ce55d1e96e6f6a68f7352d530f9f84f3a68188cbe3b45e908a085295180c78" + }, + "xyzbc_source": { + "path": "linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c", + "sha256": "d79c06db82930ef685809a87c7207398f7893f56a6a0dfe382df2c81eaeb9562" + } + }, + "status": "partial" +} diff --git a/docs/linuxcnc-web-wasm-context-governance.md b/docs/linuxcnc-web-wasm-context-governance.md index 6bf44a2..4dd72f4 100644 --- a/docs/linuxcnc-web-wasm-context-governance.md +++ b/docs/linuxcnc-web-wasm-context-governance.md @@ -5,17 +5,23 @@ **生成器**:[`scripts/context_packet.py`](../scripts/context_packet.py) **测试**:[`scripts/test_context_packet.py`](../scripts/test_context_packet.py) -本文件只解决两个问题:任务如何拆到可以持续接续的大小,以及一次任务交接究竟允许携带什么上下文。架构、功能范围、源文件关联和发布门禁分别以[技术路线](linuxcnc-web-wasm-technical-roadmap.md)、[源程序关联目录](linuxcnc-web-wasm-source-map.md)、[覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md)和[执行与交付策略](linuxcnc-web-wasm-execution-strategy.md)为准。本文件不复制这些文档的内容。 +本文件只解决两个问题:任务如何拆到可以持续接续的大小,以及一次任务交接究竟允许携带什么上下文。架构、功能范围、源文件关联和发布门禁分别以[技术路线](linuxcnc-web-wasm-technical-roadmap.md)、[完整仿真机床实施蓝图](linuxcnc-web-wasm-full-port-implementation.md)、[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)、[源程序关联目录](linuxcnc-web-wasm-source-map.md)、[覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md)和[执行与交付策略](linuxcnc-web-wasm-execution-strategy.md)为准。本文件不复制这些文档的内容。 ## 1. 不变量 1. 一个任务只有一个主工作流、一个里程碑、一个可验证结果和一个回滚点。跨三个以上工作流必须拆分。 -2. 一个上下文包只有固定八段:`header`、`baseline`、`scope`、`contracts`、`evidence`、`risks`、`next`、`forbidden`。禁止追加 `history`、聊天记录或完整日志段。 +2. 一个上下文包只有固定八段:`header`、`baseline`、`scope`、`contracts`、`evidence`、`risks`、`next`、`forbidden`。禁止追加 `history`、聊天记录或完整日志段。`nextTask.md` 只是 8 KiB 以内的启动指针,历史和证据摘要必须移到按需读取的索引。 3. 默认 profile 为 `feature`(4,096 tokens/16 KiB);里程碑任务才使用 `milestone`(8,192 tokens/32 KiB)。`doc` 和 `contract` 只在确有需要时使用。 4. `total_bytes` 同时限制序列化包和选中证据负载:`context_bytes = packet_bytes + selected_evidence_bytes`。`evidence_bytes` 是独立的证据总量上限,不能用文件数量替代。 5. 证据在生成阶段筛选。可选证据被排除时必须记录稳定 `reason_code`;必需证据无法容纳时生成失败,不输出部分成功包。 6. 交接只携带最新包、context lock 摘要、受影响 manifest ID 和可重跑命令。完整日志、golden 和差异报告只通过路径、大小和哈希引用。 +7. 模型请求必须为输出预留独立预算。`context` 输入预算、请求外固定开销(system/developer、工具 schema 和必要的当前状态摘要)、`max_output_tokens` 和模型上下文窗口分别记录;不能把完整日志追加到输入后再把输出预算设为最大值。连续执行从最新包重建请求,旧对话只保留路径/哈希,不能累加。请求失败时先缩减输入证据或拆分任务,不自动重试同一超大请求。 + +8. 流式响应必须经过 [`scripts/model_stream.py`](../scripts/model_stream.py) 的有界 SSE 消费器。只有收到 `response.completed` 且 provider `usage` 通过校验时结果才可复用;断流、残缺 UTF-8、`response.failed`、`context_length_exceeded`、usage 缺失/不一致或 `max_output_tokens` 截断都必须写入 metadata-only checkpoint。checkpoint 只能保存 `context_id`、`packet_id`、事件/字节计数、输出哈希和恢复建议,不得保存半截模型文本;恢复必须生成新的、更小的 packet。 + +9. `context_packet.py` 的 `token_limit`、`total_bytes`、`evidence_bytes` 和 `max_files` 覆盖值只能小于或等于 profile 默认值;扩大值必须改用新的、经过审查的 profile。没有 provider tokenizer 时,生成器和校验器按 UTF-8 字节作硬上界;调用方拿到精确令牌数后可通过 `--input-tokens` 替换保守估算,但不得放宽 profile 上限。 + ### 1.1 包的分层读取 任务执行者按以下顺序读取,读到足够完成任务即停止: @@ -137,6 +143,29 @@ next: INV-06b | COM-05a | 能力/限制注册表 | 全量 manifest | INV-02b、CORE-07b | contract | | COM-05b | 未支持能力解释 | 能力注册表 | COM-05a | doc | +#### 3.3.1 K0-K8:运动学主线 + +运动学任务按实现族和验收闭环拆分,完整契约、来源文件和测试矩阵见[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)。下列 ID 是最小任务目录的入口,不得把 CORE-07 作为一个不可拆分的大任务: + +| ID | 单一结果 | 依赖 | Profile | +|---|---|---|---| +| K0-INV-01 | 运动学源文件、符号、缺失测试输入审计 | INV-01..02 | milestone | +| K0-INV-02 | `configs/sim` 运动学入口图和参数样本 | K0-INV-01 | feature | +| K0-ORACLE-01 | native FK/IK JSONL golden schema 和样本 | K0-INV-01 | contract | +| K1-CONTRACT-01 | pose/joint、flags、home、错误码 C ABI | K0-ORACLE-01、CORE-02 | contract | +| K1-CONTRACT-02 | 坐标映射、extra joints、数值/迭代政策 | K1-CONTRACT-01 | feature | +| K2-TRIV-01 | trivkins 四种类型、重复轴和 home | K1-CONTRACT-02 | feature | +| K2-COUPLED-01 | corexy/rose/max/rotate 及 HAL 等价链 | K2-TRIV-01、RT-02a | feature | +| K3-5AXIS-01 | 5axiskins、xyzac/xyzbc TRT | K2-COUPLED-01 | feature | +| K3-ROBOT-01 | GenSer、SCARA、PUMA、Scorbot | K1-CONTRACT-02 | feature | +| K4-PARALLEL-01 | Delta、RotaryDelta、Tripod | K1-CONTRACT-02 | feature | +| K4-PARALLEL-02 | Hexapod、Pentapod 迭代正解和分支 | K4-PARALLEL-01 | feature | +| K5-SWITCH-01 | switchkins 静态切换和 lastpose | K3、K4 | contract | +| K5-USER-01 | userk/ugenser 构建期静态能力 | K5-SWITCH-01 | feature | +| K6-MOTION-01 | TP→IK→motion→FK feedback | K2..K5、CORE-04/06 | milestone | +| K7-REG-01 | 全配置、UI 姿态和浏览器故障回归 | K6、FE/COM | milestone | +| K8-REL-01 | 运动学兼容、来源和发布闭合 | K7、REL-01 | milestone | + ### 3.4 M4-M5:前端、回归和发布 | ID | 单一结果 | 直接输入 | 依赖 | Profile | @@ -176,7 +205,7 @@ next: INV-06b ### 4.1 正常交接 1. 从 context lock 和父任务摘要生成新的 `packet_id`;只填本子任务的八段。 -2. 用候选证据的实际字节数调用生成器。生成前就排除 `E1`-`E5`,输出后只接受 `budget.packet_bytes <= byte_limit` 且 `packet_bytes + selected_evidence_bytes <= byte_limit`。 +2. 用候选证据的实际字节数调用生成器。生成前就排除 `E1`-`E6`,输出后只接受 `budget.packet_bytes <= byte_limit`、`packet_bytes + selected_evidence_bytes <= byte_limit` 且估算输入令牌不超过 profile 上限。 3. 完成一步就更新 `evidence`、`risks`、`next`;不追加旧包全文。 4. 提交正文只写 `Context-ID`、`Context-Packet`、子任务 ID、测试命令和证据路径。 @@ -201,7 +230,7 @@ budget.packet_bytes <= byte_limit budget.packet_bytes + budget.selected_evidence_bytes <= byte_limit selected_evidence_bytes <= evidence_byte_limit selected_evidence_files <= evidence_file_limit -所有排除项都有 E1-E5 reason_code +所有排除项都有 E1-E6 reason_code required 证据无法容纳时命令失败且不写输出 ``` @@ -209,6 +238,10 @@ required 证据无法容纳时命令失败且不写输出 ```bash python3 -m unittest discover -s scripts -p 'test_*.py' -v +python3 scripts/validate_task_pointer.py +python3 scripts/validate_model_budget.py --context-window --overhead-tokens ``` +流式请求还必须通过 `scripts/test_model_stream.py`:覆盖跨 chunk UTF-8、无终态断流、provider failure/context overflow、usage 校验、输出截断和 checkpoint 不包含部分文本。网络传输异常只能记录为 `stream_disconnected`,不能重试原 packet。 + 本规范的目标不是把所有信息压进一个更大的包,而是让每个任务只携带完成当前结果所需的最小、可重建、可审计上下文。 diff --git a/docs/linuxcnc-web-wasm-execution-strategy.md b/docs/linuxcnc-web-wasm-execution-strategy.md index 7a5eb0e..7f19a86 100644 --- a/docs/linuxcnc-web-wasm-execution-strategy.md +++ b/docs/linuxcnc-web-wasm-execution-strategy.md @@ -3,7 +3,7 @@ **文档状态**:Draft v0.1 **适用范围**:本仓库的纯 Web/WASM 仿真移植、浏览器运行时、OPFS 工程存储、覆盖矩阵和发布物 **固定基线**:LinuxCNC `2.10.0~pre0`(以 `linuxcnc/VERSION` 和锁定的源码提交为准) -**关联文档**:[技术路线](linuxcnc-web-wasm-technical-roadmap.md)、[仿真全功能覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md)、[功能与源程序关联目录](linuxcnc-web-wasm-source-map.md)、[前端与 LinuxCNC 通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md)、[总控执行手册](linuxcnc-web-wasm-integration-playbook.md)、[上下文治理与最小任务目录](linuxcnc-web-wasm-context-governance.md) +**关联文档**:[技术路线](linuxcnc-web-wasm-technical-roadmap.md)、[完整仿真机床实施蓝图](linuxcnc-web-wasm-full-port-implementation.md)、[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)、[仿真全功能覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md)、[功能与源程序关联目录](linuxcnc-web-wasm-source-map.md)、[前端与 LinuxCNC 通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md)、[总控执行手册](linuxcnc-web-wasm-integration-playbook.md)、[上下文治理与最小任务目录](linuxcnc-web-wasm-context-governance.md) 本文件是项目执行的治理入口。技术路线回答“做什么以及采用什么架构”,覆盖矩阵回答“逐项覆盖什么以及如何验收”,本文件回答“谁在什么固定上下文中交付、如何在断网或失败后接续、什么证据才能过门禁”。三份文档必须以同一基线版本更新;若规则冲突,以本文件的交付门禁和覆盖矩阵的逐项验收要求为准。 @@ -76,6 +76,8 @@ M0 必须冻结来源扫描和规范化规则;每个来源项至少映射到 “固定上下文”指每次任务交接和每次提交都重新装载一个固定格式、固定预算的上下文包,而不是把整个历史对话、全部日志或已完成阶段重新带入。上下文包是可丢弃的工作索引;完整源码、日志、golden 和差异报告留在仓库或 CI 产物中,只通过路径和摘要引用。 +启动顺序同样受预算约束:先只读取 `nextTask.md` 指针(不超过 8 KiB),再按当前子任务读取 `context-lock.json` 摘要和直接输入。`docs/task-history.md`、完整路线图、覆盖矩阵、`coverage/*.jsonl` 和完整 stdout/stderr 均为按需 L3 资料,不能在启动时批量加载。 + 上下文包使用固定的八段结构,逻辑预算为 **8,192 tokens,UTF-8 序列化不超过 32 KiB**。实现上由 [`scripts/context_packet.py`](../scripts/context_packet.py) 在选择证据时执行预算;校验器不能成为第一次发现超限的地方。每段有上限,缺省内容用 `none`,不得追加自由历史段: | 段 | 固定内容 | 建议上限 | @@ -91,6 +93,19 @@ M0 必须冻结来源扫描和规范化规则;每个来源项至少映射到 包的 `packet_id` 由 `context_id`、任务 ID 和修订号组成;修订只替换对应段,不复制旧包。超过任一段上限或总预算时,必须先拆分任务、生成摘要或把内容移到可寻址产物,不能扩大上下文预算。每次交接从最新包重建,旧包只保留哈希和归档链接,因此移植从阶段 A 深入阶段 E 时,上下文大小不变。 +模型调用还必须显式保留输出空间: + +```text +request_input_tokens = packet_input_tokens + fixed_overhead_tokens +model_context_window >= request_input_tokens + max_output_tokens + safety_margin +``` + +请求前由 `validate_model_budget.py` 阻断超限;请求后还必须由 `validate_provider_response` 校验 provider 返回的 usage,确认 `output_tokens <= max_output_tokens`。若 `finish_reason` 为 `length`/`max_tokens`/`max_output_tokens`,只保存 metadata-only checkpoint 并从最新 packet 发起更小的新请求,不能把截断响应追加回下一轮。 + +`fixed_overhead_tokens` 必须由调用方按当前请求重新计数,不能把上一次请求的历史累加进去。`max_output_tokens` 应按任务类型固定(文档 768、feature 1,024、contract 1,536、milestone 2,048 的默认上限),而不是使用模型的最大值;调用参数只能缩小 profile 的输入/输出预算,不能放大。`context_packet.py` 的字节、证据文件数和令牌覆盖值同样只能缩小 profile。没有 provider tokenizer 时按 UTF-8 字节作硬上界,拿到精确令牌数后可用 `--input-tokens` 替换估算。输入包达到预算 80% 或模型返回 `context_length_exceeded` 时,先移除最低优先级证据、缩短摘要或拆分子任务;不得把旧对话和失败响应再次拼回请求。 + +流式调用必须由 [`scripts/model_stream.py`](../scripts/model_stream.py) 的有界 SSE 解码器消费。只有 `response.completed` 且 `usage.input_tokens/output_tokens/total_tokens` 一致、输出未超 `max_output_tokens` 时才标记可复用;中途断流、解码失败、`response.failed`、上下文超限或 `response.incomplete` 只生成 metadata-only checkpoint。恢复动作固定为丢弃可选证据并从新 packet 重建,禁止续接半截文本或重试同一个超大请求。 + #### 生成阶段的预算算法 证据选择必须在写入输出文件前完成,按以下顺序执行: @@ -99,9 +114,9 @@ M0 必须冻结来源扫描和规范化规则;每个来源项至少映射到 2. 将候选证据规范化为 `path`、`bytes`、`sha256`、`kind`、`priority`、`required`,按必需、优先级、路径排序,保证选择确定性。 3. 逐项检查:单项证据字节预算、证据总字节预算、证据文件数,以及把该项加入 `selected` 后的完整上下文剩余空间;完整上下文按 `packet_bytes + selected_evidence_bytes` 计算,不能只计算 JSON 清单。 4. 可选项无法容纳时不写入包,记录稳定排除码;必需项无法容纳时直接失败,不生成部分成功包。 -5. 生成最终预算元数据后再次序列化校验;若审计清单本身使包超限,从最低优先级可选项回退并以 `E5=context_remaining_bytes_insufficient` 记录。若只剩必需项仍超限,失败。 +5. 生成最终预算元数据后再次序列化校验;若审计清单或令牌估算使包超限,从最低优先级可选项回退并以 `E5=context_remaining_bytes_insufficient` 或 `E6=token_budget_exceeded` 记录。若只剩必需项仍超限,失败。 -排除原因使用稳定机器码,避免长文本侵占上下文:`E1 duplicate_path`、`E2 evidence_item_bytes_exceed_budget`、`E3 evidence_file_count_exceed_budget`、`E4 evidence_bytes_exceed_budget`、`E5 context_remaining_bytes_insufficient`。输出必须包含选中证据字节数、选中/排除文件数、证据预算、总包预算、最终包字节数和排除码;CI 同时检查 `packet_bytes <= byte_limit` 和 `packet_bytes + selected_evidence_bytes <= byte_limit`,而不是先写超限包再报告错误。 +排除原因使用稳定机器码,避免长文本侵占上下文:`E1 duplicate_path`、`E2 evidence_item_bytes_exceed_budget`、`E3 evidence_file_count_exceed_budget`、`E4 evidence_bytes_exceed_budget`、`E5 context_remaining_bytes_insufficient`、`E6 token_budget_exceeded`。输出必须包含选中证据字节数、选中/排除文件数、证据预算、总包预算、最终包字节数和排除码;CI 同时检查 `packet_bytes <= byte_limit`、`packet_bytes + selected_evidence_bytes <= byte_limit` 和 token 上限,而不是先写超限包再报告错误。 上下文包的最小机器可读形状如下;CI 应检查字段齐全、段顺序、预算、`context_id` 一致性和引用产物存在: @@ -262,8 +277,8 @@ online_ready |---|---|---|---| | M0 基线锁定 | A | context lock、来源/测试清单、状态枚举、责任分工 | 清单可重建;缺项 CI 失败;文档链接和基线一致 | | M1 运行时骨架 | A | 单 Worker、固定 tick、ABI、最小 OPFS journal、Python 启动 | create/load/step/snapshot/recover ABI 测试通过;无网加载缓存样例 | -| M2 核心行为 | B | G/M/O、TP、坐标、补偿、kinematics、原生 golden | 受影响核心 manifest 全部 `verified`;首个 divergent tick 可定位 | -| M3 虚拟设备与持久化 | C | HAL/PLC/IO、数字孪生、事务恢复、断网接续 | 故障注入和恢复矩阵通过;配额不足不损坏已提交版本 | +| M2 核心行为 | B | G/M/O、TP、坐标、补偿、[K0-K5 运动学主线](linuxcnc-web-wasm-kinematics-migration-plan.md)、原生 golden | 受影响核心 manifest 全部 `verified`;每个运动学族的首个 divergent tick 可定位 | +| M3 虚拟设备与持久化 | C | HAL/PLC/IO、K6 运动集成、数字孪生、事务恢复、断网接续 | 故障注入和恢复矩阵通过;配额不足不损坏已提交版本 | | M4 Web 工作流 | D | 控制台、3D、VCP/配置工具、导入导出、离线 PWA | 关键 UI 工作流在浏览器矩阵通过;键盘/触摸和刷新恢复有证据 | | M5 发布候选 | E | 全量覆盖、兼容/许可证报告、迁移工具、离线包 | 所有可计入条目 `accepted`,排除项可识别,发布门禁全绿 | @@ -273,7 +288,7 @@ online_ready ### 7.1 合并门禁 -每个变更包至少通过:文档链接和术语检查、格式/静态检查、受影响单测、manifest 完整性检查、原生/WASM 差异测试(适用时)、离线影响场景(适用时)、`context_packet.py` 生成器测试、上下文包字段/大小检查和证据包字段检查。任何新增来源、配置、组件、G/M/O 功能或 UI 工作流没有 manifest 条目时 CI 失败。上下文包超过 8,192 tokens 或 32 KiB、出现未定义段、把旧包全文嵌入新包,均直接阻止合并。生成阶段不能产生超限包;验证阶段只能复核,不能负责裁剪。 +每个变更包至少通过:文档链接和术语检查、格式/静态检查、受影响单测、manifest 完整性检查、原生/WASM 差异测试(适用时)、离线影响场景(适用时)、`context_packet.py` 生成器测试、`validate_task_pointer.py` 启动指针检查、`validate_model_budget.py` 请求预算检查、上下文包字段/大小检查和证据包字段检查。任何新增来源、配置、组件、G/M/O 功能或 UI 工作流没有 manifest 条目时 CI 失败。上下文包超过 8,192 tokens 或 32 KiB、启动指针超过 8 KiB、模型输入加输出预留超出窗口、出现未定义段、把旧包全文嵌入新包,均直接阻止合并。生成阶段不能产生超限包;验证阶段只能复核,不能负责裁剪。 ### 7.2 里程碑门禁 diff --git a/docs/linuxcnc-web-wasm-full-port-implementation.md b/docs/linuxcnc-web-wasm-full-port-implementation.md new file mode 100644 index 0000000..7b99739 --- /dev/null +++ b/docs/linuxcnc-web-wasm-full-port-implementation.md @@ -0,0 +1,258 @@ +# LinuxCNC Web/WASM 完整仿真机床实施蓝图 + +**文档状态**:实施规范 v1.0 +**适用基线**:LinuxCNC `2.10.0~pre0`,提交由 [`context-lock.json`](../context-lock.json) 冻结 +**用途**:把“完整移植 LinuxCNC 仿真机床”分解为可实现、可回归、可恢复和可发布的工程闭环 +**运动学主线**:[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md) +**上位路线**:[技术路线](linuxcnc-web-wasm-technical-roadmap.md) +**覆盖依据**:[仿真全功能覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md) +**源程序依据**:[功能与源程序关联目录](linuxcnc-web-wasm-source-map.md) +**通信契约**:[前端与通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md) +**执行总控**:[仿真移植总控执行手册](linuxcnc-web-wasm-integration-playbook.md) + +本文件是实施层的补充规范。运动学实现族、正逆解契约和 K0-K8 里程碑以[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)为专项细则。它不替代来源清单、协议 schema 或覆盖矩阵;当这些文件发生冲突时,`context-lock.json`、协议 schema 和逐文件覆盖记录优先。本文件解决的是:一个 LinuxCNC 仿真入口如何启动,经过哪些运行时层,如何产生确定性结果,如何在浏览器中恢复,以及怎样证明“完整”而不是“演示可用”。 + +## 1. 完整移植的工程定义 + +完整移植必须同时闭合六条链。任何一条链缺失,都只能称为部分移植或演示版本: + +| 闭合链 | 必须回答的问题 | 发布前证据 | +|---|---|---| +| 来源闭合 | LinuxCNC 文档、源码、符号、配置资源和测试是否全部登记? | `source-index`、`manifest`、依赖闭包、零孤儿报告 | +| 构建闭合 | 可移植代码、适配层、静态组件和 Python 运行时是否可重建? | 编译锁、构建日志、产物 SHA-256、许可证清单 | +| 启动闭合 | 任一纳入范围的 `configs/sim` 入口能否解析并进入 `READY` 或给出可诊断错误? | 配置资源图、启动日志、错误文件/行号 | +| 行为闭合 | 解释器、TP、运动、HAL、IO、PLC 和 Python 的可观察结果是否与原生 oracle 一致? | JSONL golden、首个 divergent tick 报告、容差说明 | +| 工作流闭合 | 编辑、MDI、运行、暂停、单步、急停、jog、home、工具、报警和恢复是否能从 UI 完成? | 浏览器 E2E、键盘/触摸、故障和恢复场景 | +| 交付闭合 | 离线、迁移、配额、崩溃恢复、回滚、兼容性和许可证是否可审计? | 发布清单、离线包、迁移/回滚演练、兼容报告 | + +“全覆盖”只统计仿真可观察能力。真实硬件、硬实时内核和安全认证属于 `REAL-EXCLUDED`;但它们在仿真配置中产生的信号必须由数字孪生提供,不能以“不支持”跳过主轴、编码器、探针、限位、换刀、冷却或 IO 的仿真行为。 + +## 2. 当前起点和硬门禁 + +当前仓库的实际起点如下,不能用文档中的目标状态替代代码证据: + +| 项目 | 当前状态 | 实施含义 | +|---|---|---| +| M0 来源/上下文 | 已生成,锁定 8,026 个来源条目和 context lock | 任何来源变化先重建并审查哈希 | +| M1 ABI 骨架 | 已有生命周期、固定 tick、快照和导入导出骨架 | 只能作为 ABI 起点,不代表 LinuxCNC 核心已接入 | +| posemath/解释器/运动切片 | 已有仓库内适配报告和原生测试证据 | 仍需接入统一 `sim_task`、HAL 和 Worker | +| kinematics 节点 | 旧 `M2-CORE-04` blocked,当前转入 K0 来源审计 | 锁定来源缺少声明的 `linuxcnc/unit_tests/kinematics/**`,不得静默改用其他目录 | +| Python、完整 HAL、UI、OPFS 恢复 | 尚未完成全量闭环 | 不得以 mock、刷新后重建或单一三轴页面宣称完成 | + +每个实施任务开始前运行基线门禁: + +```bash +python3 scripts/validate_baseline.py +python3 scripts/validate_download_index.py +python3 -m unittest discover -s scripts -p 'test_*.py' -v +python3 scripts/validate_task_pointer.py +``` + +若锁定提交、输入目录、schema 版本或生成器版本发生变化,先创建新的 `context_id`;不能在旧 context 中覆盖索引或降低校验条件。 + +## 3. 运行时分层和依赖规则 + +完整仿真运行时固定为单 Dedicated Worker 单写者模型。主线程只能通过版本化协议读取状态和提交命令,不能读取 WASM 指针、修改 HAL pin 或直接写 OPFS。 + +```text +UI / Three.js / 编辑器 + │ protocol.v1 +Worker: CommandRouter → TaskLedger → SimScheduler + │ ├─ SimTask / rs274ngc / canonical + │ ├─ TP / posemath / kinematics + │ ├─ SimMotion / homing / limits + │ ├─ SimHAL / components / ClassicLadder + │ ├─ SimIO / digital-twin devices + │ └─ PythonRuntime / remap / VCP + ├─ SnapshotPublisher / EventBus / TraceRecorder + └─ WorkspaceRuntime → WasmFS/POSIX → OPFS journal/checkpoint +``` + +依赖必须单向流动: + +1. 几何、解释器和运动核心不能依赖 DOM、OPFS、Python 或 UI。 +2. HAL 组件只能通过注册的 pin/signal/parameter 接口访问运行时;组件不得调用宿主路径、网络或动态加载。 +3. Python 只能访问白名单虚拟模块、`/workspace` 和虚拟时钟;超出能力返回稳定错误码。 +4. UI 只能消费快照、事件和流;派生显示状态不得回写 authoritative state。 +5. OPFS 只承接事务和恢复,不参与每个仿真 tick 的运动计算。 + +WASM 核心以独立 CMake/Emscripten 目标构建。LinuxCNC 原生 `meson.build` 继续用于 oracle 和原生测试,不作为 WASM 的直接构建入口。动态库、`fork/exec`、NML/CMS 进程边界和共享内存改为静态注册、进程内对象和版本化快照。 + +## 4. 一个仿真入口的启动闭环 + +所有 `configs/sim/**` 入口都必须经过相同的启动状态机;配置专属差异只能来自已登记能力和资源,不得在 UI 中写隐式特例。 + +```text +NEW + → WORKSPACE_MOUNTED + → INI_PARSED + → RESOURCES_RESOLVED + → CORE_CREATED + → HAL_TWOPASS_DONE + → DEVICES_BOUND + → TASK_READY + → RUNNING / PAUSED / ESTOP + → STOPPED → DESTROYED +``` + +启动步骤及其产物: + +1. `HANDSHAKE`:协商 `context_id`、ABI/protocol/snapshot 版本和能力注册表;版本不兼容直接拒绝。 +2. `MOUNT`:将工程挂载到虚拟 `/workspace`,规范化大小写、路径和编码,拒绝 `..`、绝对宿主路径和符号链接。 +3. `PARSE_INI`:解析 section、include、变量替换、轴/关节/主轴数量、周期和入口文件;错误必须包含文件、行和字段。 +4. `RESOLVE`:构建 `.hal`、`.tbl`、`.var`、`.ngc`、`.py`、`.xml/.glade/.ui`、`.clp`、`.halscope/.halshow` 等资源图,报告缺失、循环和宿主依赖。 +5. `CREATE_CORE`:按配置静态选择 kinematics、解释器、TP、motion、IO 和工具服务,记录模块版本与 source SHA。 +6. `HAL_TWOPASS`:完成 `loadrt`、组件实例、`addf`、`setp`、`net`、`sets`、`link*` 的确定性顺序;任何未注册组件阻断启动。 +7. `BIND_DEVICES`:绑定轴、编码器、主轴、探针、限位、回零、换刀、冷却和 PLC 数字孪生,并应用故障模型。 +8. `START_TASK`:加载程序、参数、工具表和 Python/remap;运行一次零周期初始化,生成初始状态哈希。 +9. `READY`:发布完整快照、能力和资源诊断。UI 只有收到 `READY` 才能开放运行按钮。 + +任一步骤失败时,必须撤销尚未提交的资源绑定并保留结构化诊断;不能留下半初始化会话,也不能通过“忽略失败文件”进入 `READY`。 + +## 5. 固定 tick 和状态更新顺序 + +`sim_step(cycles)` 是唯一改变仿真结果的入口。每个逻辑周期按下列顺序执行,顺序属于协议和 golden 的一部分: + +1. 读取本周期已确认的命令,按 `seq` 和 `operation_id` 去重;未确认的命令不能重复产生副作用。 +2. 执行 Task/解释器预算,产生 canonical 队列、当前行、模态和错误。 +3. 运行 TP 前瞻、blend、速度/加速度/jerk 限制,生成本周期目标轨迹。 +4. 调用 kinematics `inverse`,检查奇异姿态、轴/关节限制和 NaN/Inf。 +5. 更新 motion、homing、软/硬限位、following error、急停和 jog 状态。 +6. 按静态线程清单运行 HAL function、虚拟轴/编码器/主轴/探针/换刀和 ClassicLadder scan。 +7. 处理 IO 完成、输入等待、超时、报警和 Python 回调;回调不能绕过当前 tick。 +8. 生成事件、采样和状态哈希;先发布内存快照,再按 checkpoint/journal 策略持久化。 + +暂停只停止后续运动和解释,不丢弃已入队 canonical;急停清空或冻结哪些队列必须由状态机明确规定。快速模式、1x、单步、暂停恢复和回放在相同逻辑终点必须得到相同状态哈希;墙钟只用于节流和让出 Worker 事件循环。 + +## 6. 各域实施契约 + +### 6.1 配置、工作区和启动资源 + +实现顺序为“路径规则 → 文件 API → 解析器 → 资源图 → 启动器”。至少提供 `open/read/write/stat/readdir/rename/unlink/fsync`,并保留 LinuxCNC 相对路径和 include 语义。 + +| 输入类型 | 处理方式 | 最小验收 | +|---|---|---| +| `.ini/.inc` | 兼容 section、变量、include、相对路径和循环检测 | 逐文件行号诊断、重复加载结果一致 | +| `.hal/.comp` | 解析 twopass、实例、函数顺序和 pin 类型;组件构建期静态注册 | HAL graph 与 native 对齐 | +| `.tbl/.var` | 工具、pocket、offset、参数和 wear 的版本化服务 | 加载、编辑、提交、恢复一致 | +| `.ngc/.nc` | 主程序、子程序、O-word、M-code 文件和过滤器 | 相同入口解析到相同程序图 | +| `.py` | 受控 Python runtime;能力清单和资源限额 | 正常、异常、超时、禁止 API | +| `.xml/.glade/.ui` | 转换为 Web Component descriptor;保留 pin、属性、回调 | 样例面板可加载且权限可审计 | +| `.clp/.halscope/.halshow` | 解析 PLC、采样、触发和回放描述 | 逻辑/波形结果可回放 | + +资源图必须记录 `input_sha`、解析器版本、依赖、输出能力和错误。配置加载不成功时,错误报告必须能反向定位到 manifest 条目。 + +### 6.2 解释器、Task、TP、motion 和 kinematics + +移植以原生 oracle 为先:先让 native runner 输出解释器状态、canonical、每 tick 运动和错误,再接入 WASM。核心边界只允许使用固定宽度类型和稳定错误码。 + +实施顺序: + +1. posemath 和数值策略:固定浮点编译选项、角度/单位换算、NaN/Inf 检查。 +2. rs274ngc:词法/语法、模态、参数、O-code、循环、补偿、G/M/O 和错误位置。 +3. canonical/TP:直线、圆弧、球面弧、样条、NURBS、前瞻、blend、exact stop 和同步运动。 +4. Task/NML 兼容:命令、状态、错误、模式转换、MDI、单步、暂停、恢复、abort 和队列清空。 +5. motion:轴/关节、jog、home、软硬限位、following error、外部偏置和故障注入。 +6. kinematics:trivkins、gantry、CoreXY、5/6 轴、Delta、机器人、foam 等静态模块;每个模块提供 `forward/inverse/limits/capabilities`。 + +`M2-CORE-04` 当前因锁定输入缺少 `unit_tests/kinematics/**` 而 blocked。处理方式只有两种:补充并重新锁定确实存在的官方测试输入,或由契约变更明确批准替代 oracle 并登记差异;不能把 `tests/matrixkins/**` 直接伪装成原声明输入。 + +### 6.3 HAL、组件、PLC 和数字孪生 + +HAL 运行时必须先建立类型化对象图,再执行组件。组件来源按三类登记:可移植核心、构建期 `.comp` 组件、仿真专用数字孪生。每个组件 manifest 至少包含名称、版本、输入/输出 pin、参数、线程要求、依赖、权限、测试和状态。 + +固定调度顺序为:`base/servo`(如配置启用)→运动反馈→主轴/编码器→通用 HAL function→PLC scan→IO 完成→采样发布。缺少实时墙钟不改变这个逻辑顺序。 + +数字孪生必须能脚本化以下状态:主轴加减速/不到速/定向失败,编码器计数和丢脉冲,探针触发/未触发,限位/回零,换刀成功/超时/失败,冷却和润滑,模拟/数字 IO 延迟、抖动和故障。故障注入本身也是可回放输入,不能通过随机数产生不可重复结果。 + +ClassicLadder 需要覆盖工程加载、寄存器、触点/线圈、定时器、计数器、顺序控制、HAL 绑定、扫描周期、暂停/恢复和诊断 UI;真实 Modbus transport 排除,但虚拟寄存器、延迟和错误状态必须可配置。 + +### 6.4 Python、remap、VCP 和插件 + +Python runtime 在 Worker 内启动,固定 Pyodide 版本、包索引和 artifact hash。桥接模块只提供 `linuxcnc`、`hal`、`gstat`、INI、工具表、虚拟时间和工作区 API;`subprocess`、`socket`、宿主线程、设备文件和任意路径必须返回稳定的能力拒绝错误。 + +remap/filter/VCP 每次调用都记录入口、参数摘要、tick、返回值、异常、耗时和资源消耗。Python 异常必须回到解释器/Task 错误语义,不能只写 console。VCP descriptor 转换为带版本和权限的 Web Component schema,插件崩溃不得破坏核心会话。 + +### 6.5 协议、快照、事件和持久化 + +命令必须执行 `prepare → execute → verify → commit`;`operation_id` 幂等,回答丢失时先查账本。快照至少分为配置、解释器、Task、TP、motion、kinematics、HAL、IO、Python、工作区和恢复元数据,并带 `schema_version/context_id/simulation_tick/state_hash`。 + +OPFS 只保存已提交工程、journal、checkpoint、日志和可删除缓存。推荐恢复流程:读取最近有效 checkpoint → 校验哈希 → 按序重放已提交 journal → 对未确认操作逐项对账 → 发布 `RECOVERED` 或明确 `RECOVERY_BLOCKED`。不能以“重新加载 INI 并从头运行”替代状态恢复。 + +## 7. 原生 oracle 和全量回归 + +原生 runner 与 WASM runner 必须使用同一工程输入和同一命令序列。每个样本至少输出: + +```json +{ + "context_id": "...", + "entry_source_id": "...", + "test_id": "...", + "tick": 1234, + "interpreter": {"line": 12, "modal_hash": "...", "parameters_hash": "..."}, + "canonical": [{"kind": "straight_feed", "target": [0, 0, 0]}], + "motion": {"axis": [], "joint": [], "following_error": []}, + "hal": {"pins_hash": "...", "signals_hash": "..."}, + "io": {"spindle": {}, "tool": {}, "probe": {}}, + "events": [], + "state_hash": "..." +} +``` + +差异报告必须给出首个 divergent tick、字段路径、原生值、WASM 值、单位、容差、来源文件和 manifest ID。浮点容差只能用于数值字段,不能掩盖状态转换、错误码、事件顺序、当前行、工具号或 HAL 拓扑差异。 + +每个入口至少执行以下维度:正常运行、边界数值、语法/配置错误、暂停/单步/abort、急停/限位/设备故障、导出导入、Worker 重启/OPFS 恢复、离线启动;有 UI 或插件的入口再加键盘/触摸、权限和背压维度。 + +发布前必须满足: + +- `source-index`、`manifest`、依赖闭包和配置资源图无孤儿,所有条目已分配 owner/feature/domain。 +- 所有可计入条目为 `accepted`;不得残留 `planned`、`needs_owner`、无 oracle 或无测试维度条目。 +- 同一输入在至少三次运行、1x/快速/单步/恢复路径下的最终 `state_hash` 一致。 +- 所有事件按 `seq/tick` 单调发布,重放不重复产生已提交副作用。 +- 配额不足、schema 不兼容、缺失资源、禁止宿主能力和恢复无法对账均有明确错误,不静默降级。 +- 浏览器矩阵、性能、内存、离线、许可证、迁移和回滚报告齐全;性能优化不能改变 golden 结果。 + +## 8. 分阶段实施和产物 + +| 阶段 | 实施重点 | 必须产物 | 退出条件 | +|---|---|---|---| +| M0 基线闭合 | 来源、符号、配置、测试、依赖和 context lock | 索引、manifest、oracle schema、影响图 | 零孤儿、哈希可重建、缺字段会失败 | +| M1 会话闭环 | C ABI、Worker 队列、虚拟工作区、固定 tick、最小恢复 | WASM/原生 ABI 测试、协议 schema、journal/checkpoint | create/load/step/snapshot/export/import/recover 通过 | +| M2 核心行为 | 解释器、canonical、TP、Task、motion、kinematics、工具服务 | 每个源组的适配报告、golden、差异报告 | 受影响核心条目 `verified`;blocked 输入已处理 | +| M3 仿真系统 | HAL、`.comp`、ClassicLadder、IO、数字孪生、Python/remap | 组件 manifest、HAL graph、故障矩阵、Python 能力报告 | 配置启动和 S1-S6 场景通过 | +| M4 Web 工作流 | 工程、编辑器、MDI、控制台、HAL/PLC、VCP、Three.js、导入导出 | 浏览器 E2E、截图/像素、性能和恢复证据 | 所有真实 Worker 工作流通过,mock 退出 | +| M5 发布闭合 | 全量 configs/tests/unit_tests、浏览器、离线、迁移、许可证 | 兼容报告、排除项、离线包、回滚包 | G0-G5 全绿,所有计入条目 `accepted` | + +每个阶段都按“输入冻结 → 失败测试 → 最小实现 → native/WASM 对照 → 故障/恢复 → 文档和 manifest → 门禁”执行。阶段间不得用“先做 UI、后补核心”绕过依赖。 + +## 9. 实施任务的最小交付包 + +每个子任务只能有一个主要结果,并在提交中同时更新: + +1. 受影响 source/feature/task/test/oracle 的 ID 和 source SHA。 +2. C ABI、协议、快照或工作区 schema 的版本和兼容策略(若有变化)。 +3. 正常、边界、错误、恢复和离线测试命令及结果路径。 +4. native/WASM 差异报告、性能/内存/配额影响和已知限制。 +5. 回滚点、未完成输入、下一任务和 `nextTask.md` 指针。 + +示例任务标题应具体到单一结果,例如:`M3-RT-03b:限位与换刀故障注入可回放`,而不是“完善仿真设备”。任务若同时修改两个独立契约,先拆成契约任务和实现任务。 + +## 10. 停止线和风险处置 + +- 来源或测试输入缺失:停止并记录 `blocked`,由新的契约变更决定是否补充输入;不删样本、不改目录级状态。 +- 原生/WASM 首个差异未定位:冻结受影响源组和 golden,不进入下一层集成。 +- 协议/ABI/schema 破坏性变化:新建版本、迁移和双向测试;旧版本不能静默接受。 +- Python、组件或 VCP 需要宿主能力:改为虚拟能力或明确 `REAL-EXCLUDED`,并测试拒绝路径。 +- OPFS journal/checkpoint 损坏、配额不足或确认丢失:保留最近已提交版本,进入恢复或导出,不覆盖旧数据。 +- 非确定性、随机故障或浏览器墙钟改变结果:禁止合并,固定种子、顺序、tick 和输入后重跑。 +- 性能优化导致 golden 变化:按行为回归处理,不能以“更快”豁免差异。 + +## 11. 当前立即执行顺序 + +1. 按 `nextTask.md` 执行 `K0-INV-01`,处理旧 `M2-CORE-04` 的 kinematics 输入阻塞,先确认锁定提交中不存在声明路径,并保留报告。 +2. 若要采用替代 oracle,先创建可审查的契约变更和新的 context lock;否则保持 blocked,不推进 HAL 节点。 +3. 在 kinematics 契约闭合后,完成静态模块注册、`forward/inverse/limits` ABI、确定性状态哈希和失败路径测试。 +4. 继续 `M2-CORE-05` 前,先让 native runner、WASM runner 和 `sim_step` 共享同一 tick/golden schema。 +5. 只有 M2 核心条目达到 `verified`,才进入 HAL/数字孪生/OPFS 恢复;只有 M3 通过,才把 mock UI 替换成真实 Worker 工作流。 + +本文件完成的是实施规则和证据闭环,不改变当前任务指针,也不把尚未实现的 LinuxCNC 功能标为完成。 diff --git a/docs/linuxcnc-web-wasm-implementation-readiness.md b/docs/linuxcnc-web-wasm-implementation-readiness.md index be38f61..09bbfda 100644 --- a/docs/linuxcnc-web-wasm-implementation-readiness.md +++ b/docs/linuxcnc-web-wasm-implementation-readiness.md @@ -3,20 +3,20 @@ **状态**:M0 已落地,M1 ABI 骨架已验证,LinuxCNC 功能移植尚未完成 **目标**:把既有技术路线收敛成可执行的实施顺序、完整性证明和发布前置条件 **固定基线**:LinuxCNC `2.10.0~pre0`,提交 `239dcf4284762ad7e9c65d390bc5524d855c2f8e` -**关联文档**:[技术路线](linuxcnc-web-wasm-technical-roadmap.md)、[覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md)、[源程序关联](linuxcnc-web-wasm-source-map.md)、[通信设计](linuxcnc-web-wasm-frontend-communication-design.md)、[执行策略](linuxcnc-web-wasm-execution-strategy.md)、[总控手册](linuxcnc-web-wasm-integration-playbook.md) +**关联文档**:[技术路线](linuxcnc-web-wasm-technical-roadmap.md)、[完整移植实施蓝图](linuxcnc-web-wasm-full-port-implementation.md)、[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)、[覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md)、[源程序关联](linuxcnc-web-wasm-source-map.md)、[通信设计](linuxcnc-web-wasm-frontend-communication-design.md)、[执行策略](linuxcnc-web-wasm-execution-strategy.md)、[总控手册](linuxcnc-web-wasm-integration-playbook.md) -本文件是开始编写程序前的单页入口。专项文档保留详细契约;本文件只固定真实基线、先后顺序、完成定义和阻断条件。 +本文件是开始编写程序和恢复任务前的单页入口。完整移植实施蓝图进一步规定启动状态机、运行时依赖、tick 顺序和各域产物;专项文档保留详细契约。本文件只固定真实基线、先后顺序、完成定义和阻断条件。 ## 1. 现状和不可误读项 -本仓库已经具备完整设计文档,但此前没有 Web/WASM 运行时代码。当前 M0/M1 产物如下: +本仓库已经具备完整设计文档,并已落地一组可独立验证的 Web/WASM 运行时切片;LinuxCNC 全功能运行时仍未闭合。当前 M0/M1 产物如下: | 产物 | 当前事实 | 允许的结论 | |---|---|---| | `context-lock.json` | 锁定 LinuxCNC 提交、Emscripten 3.1.6、schema v1 和索引哈希 | 基线可复现 | -| `coverage/source-index.jsonl` | 7,992 个来源文件,来自 docs/src/configs/tests/unit_tests/build | 来源扫描已开始,可审计 | -| `coverage/manifest.jsonl` | 7,992 个一对一种子条目,全部 `planned/needs_owner` | 没有来源被静默漏掉;不代表已实现 | -| `wasm-core` | C ABI 生命周期、固定 tick、快照、导入导出骨架 | 工程边界可编译、可调用 | +| `coverage/source-index.jsonl` | 8,026 个来源文件,来自 docs/src/configs/tests/unit_tests/build | 来源扫描已开始,可审计 | +| `coverage/manifest.jsonl` | 8,026 个一对一种子条目,全部 `planned/needs_owner` | 没有来源被静默漏掉;不代表已实现 | +| `wasm-core` | C ABI 生命周期、固定 tick、快照、导入导出,以及 posemath/解释器/运动适配切片 | 工程边界可编译、可调用;不代表完整核心闭合 | | `build-wasm`/`build-native` | WASM 模块生成,宿主 ABI 单测通过 | 构建链路可重跑 | 以下能力目前都不能声明完成:rs274ngc、TP、motion、kinematics、HAL、ClassicLadder、Python/remap、OPFS、Worker、UI、Three.js、全量配置和浏览器回归。 diff --git a/docs/linuxcnc-web-wasm-integration-playbook.md b/docs/linuxcnc-web-wasm-integration-playbook.md index aa1f84c..bf46040 100644 --- a/docs/linuxcnc-web-wasm-integration-playbook.md +++ b/docs/linuxcnc-web-wasm-integration-playbook.md @@ -4,13 +4,15 @@ **用途**:统一功能完整性、任务执行、依赖、测试、接续和里程碑验收 **固定基线**:LinuxCNC `2.10.0~pre0`,以 `linuxcnc/VERSION` 和 context lock 为准 **架构路线**:[技术路线](linuxcnc-web-wasm-technical-roadmap.md) +**完整实施蓝图**:[完整仿真机床实施蓝图](linuxcnc-web-wasm-full-port-implementation.md) +**运动学主线**:[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md) **源码目录**:[功能与源程序关联目录](linuxcnc-web-wasm-source-map.md) **前端/通信**:[前端与 LinuxCNC 通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md) **覆盖验收**:[仿真全功能覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md) **治理规则**:[项目执行与交付策略](linuxcnc-web-wasm-execution-strategy.md) **最小任务与上下文**:[上下文治理与最小任务目录](linuxcnc-web-wasm-context-governance.md) -本手册是五份设计文档的总控入口。它不替代各专项文档,而是规定它们如何组合、谁负责什么、任务如何进入执行、依赖如何推进、失败如何恢复以及什么证据才能声明移植完成。 +本手册是专项设计文档的总控入口。完整实施蓝图规定单个仿真入口如何启动和推进;本手册不替代这些专项文档,而是规定它们如何组合、谁负责什么、任务如何进入执行、依赖如何推进、失败如何恢复以及什么证据才能声明移植完成。 ## 1. 当前审计结论 @@ -19,14 +21,14 @@ ```text 设计基线:已建立 源码/功能清单:`coverage/source-index.jsonl` 和 `coverage/manifest.jsonl` 已生成,全部条目仍待归并 -运行时实现:`wasm-core` ABI bootstrap 已编译,LinuxCNC 核心尚未接入 +运行时实现:`wasm-core` ABI bootstrap 及部分 posemath/解释器/运动切片已编译,LinuxCNC 全量核心尚未接入 前端实现:未开始或尚未进入当前工作区 全功能验收:未开始,不得声明已完成 ``` 这是当前交付边界:后续任务从 M1/WS-1 的 ABI、原生 runner、固定 tick 和工作区契约继续;M0 清单重生成和哈希校验仍是每次基线变化的前置步骤。任何演示页面、mock Worker 或单一三轴样例都不能把项目状态提前改成“全功能完成”。 -上下文治理的可执行入口是 `scripts/context_packet.py`,测试是 `scripts/test_context_packet.py`,任务拆分和分层读取以[上下文治理与最小任务目录](linuxcnc-web-wasm-context-governance.md)为准。当前仓库没有运行时实现,但上下文生成和预算测试已经可以独立运行;后续 CI 应在任何任务证据包生成前调用该脚本。 +上下文治理的可执行入口是 `scripts/context_packet.py`、`scripts/validate_task_pointer.py`、`scripts/validate_model_budget.py` 和 `scripts/model_stream.py`,测试是 `scripts/test_context_packet.py`、`scripts/test_model_stream.py` 及对应校验器单测,任务拆分和分层读取以[上下文治理与最小任务目录](linuxcnc-web-wasm-context-governance.md)为准。模型预算校验还必须传入当前请求的 `--overhead-tokens`;连续任务从最新包重建,不累加旧对话。请求前校验输入、固定开销、输出预留和安全余量,请求后用 `validate_provider_response` 校验 provider usage;流式断开、上下文超限、usage 异常和截断响应只写 metadata-only checkpoint,不拼回下一轮。当前仓库已有可独立验证的核心切片,但尚未形成完整 LinuxCNC 运行时;上下文生成、启动指针、模型请求预算和流式恢复测试已经可以独立运行;CI 应在任何任务证据包生成或模型请求前调用相应脚本。 ## 2. 唯一追踪链 @@ -116,7 +118,7 @@ M0 / WS-0 基线、source map、manifest、context lock | CORE-04 | TP/posemath/几何 | `src/emc/tp/**`、posemath | canonical、轨迹和容差报告 | | CORE-05 | Task/NML/状态 | `src/emc/task/**`、nml_intf、libnml | message bus 和状态快照 | | CORE-06 | Motion/homing/limit | `src/emc/motion/**` | jog、home、limit、following error | -| CORE-07 | Kinematics 全集 | `src/emc/kinematics/**` | 静态模块、能力注册、姿态 golden | +| CORE-07 | Kinematics 全集 | `src/emc/kinematics/**` | 按[K0-K8 运动学主线](linuxcnc-web-wasm-kinematics-migration-plan.md)执行;静态模块、能力注册、姿态 golden | | CORE-08 | Tooldata/IO 基础 | `src/emc/tooldata/**`、iotask | 工具、主轴、换刀、IO 状态 | ### 5.3 WS-2/WS-3/WS-4 运行时集成 @@ -145,14 +147,30 @@ M0 / WS-0 基线、source map、manifest、context lock | REG-04 | 浏览器/性能/视觉矩阵 | FE、COM-03 | Chromium/Firefox/Safari、P95/P99、截图/像素 | | REL-01 | 兼容、许可证、迁移、回滚和离线包 | 全部 REG | 发布候选证据包和签名报告 | +### 5.5 运动学主线 K0-K8 + +运动学不再作为 CORE-07 的单个串行任务处理。K0-K8 是从来源审计到发布闭合的硬门,详细输入、算法族和测试矩阵见[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)。 + +| 主线阶段 | 解锁范围 | 对整体项目的门禁 | +|---|---|---| +| K0 | 源文件、符号、配置入口、native FK/IK 样本和缺失输入 | 未闭合时不得声明任何非 trivkins 配置可运行 | +| K1 | C ABI、pose/joint 映射、flags、数值/迭代策略 | 未闭合时 motion 只能保留 bootstrap,不得接入全量算法 | +| K2 | trivkins 全类型、重复轴、extra joints、corexy/rose/max/rotate | 未闭合时不得验收 axis/joint 模式、HAL 耦合或恢复 | +| K3 | 5 轴 TRT、SCARA/PUMA/Scorbot/GenSer | 未闭合时不得验收刀尖跟随、机器人和 5 轴可视化 | +| K4 | Delta、RotaryDelta、Tripod、Hexapod、Pentapod | 未闭合时不得验收并联机构、迭代正解和 Vismach | +| K5 | switchkins、userk/ugenser 静态扩展和能力注册 | 未闭合时不得加载切换或用户运动学配置 | +| K6 | TP→IK→motion→FK feedback、home/limit、IO/数字孪生 | 未闭合时 M3 运动故障和恢复场景不具备发布资格 | +| K7 | Three.js 姿态、全配置回归和浏览器故障矩阵 | 未闭合时 M4 UI 只能作为结构原型 | +| K8 | 兼容、迁移、许可证、来源和回滚闭合 | 未闭合时 M5 不能进入发布候选 | + ## 6. 里程碑总表 | 里程碑 | 入口条件 | 必须完成 | 退出证据 | 失败动作 | |---|---|---|---|---| | M0 基线锁定 | 版本和范围确认 | INV-01..05、状态枚举、责任人 | source/manifest/context lock 可重建,零孤儿规则生效 | 返回清单阶段,不写运行时代码 | | M1 运行时骨架 | M0 通过 | CORE-01/02、RT-01、FS-01、COM-01/02 最小集 | create/load/command/step/snapshot/recover、离线缓存启动 | 固定 ABI/schema,修复后重跑 M1 | -| M2 核心行为 | M1 通过 | CORE-03..08、native/WASM runner、解释/轨迹/运动 golden | 核心 manifest `verified`,首个差异 tick 可定位 | 回退到对应核心任务,不进入 UI 全量 | -| M3 虚拟设备和恢复 | M2 通过 | RT-02..04、FS-02/03、PY-01/02、COM-03..05 | HAL/PLC/IO/故障/配额/重启/断网矩阵通过 | 阻断仿真会话发布,保留本地证据 | +| M2 核心行为 | M1 通过,K0 入口审计完成 | CORE-03..08、K0-K5、native/WASM runner、解释/轨迹/运动 golden | 核心 manifest `verified`,每个运动学族的首个差异 tick 可定位 | 回退到对应 K/核心任务,不进入 UI 全量 | +| M3 虚拟设备和恢复 | M2 通过,K6 完成 | RT-02..04、FS-02/03、PY-01/02、COM-03..05、运动学数字孪生 | HAL/PLC/IO/故障/配额/重启/断网矩阵通过 | 阻断仿真会话发布,保留本地证据 | | M4 前端工作流 | M3 通过 | FE-01..10、COM-06、关键 UI/3D/配置工作流 | UI 条目有协议、源文件、测试、oracle 和恢复证据 | 禁止 mock 冒充完成,回退 FE/COM | | M5 发布候选 | M0..M4 通过 | REG-01..04、REL-01 | G0-G5 全绿、全计入条目 `accepted`、排除项可识别 | 维持候选冻结,创建修复 context 或回退 | diff --git a/docs/linuxcnc-web-wasm-kinematics-migration-plan.md b/docs/linuxcnc-web-wasm-kinematics-migration-plan.md new file mode 100644 index 0000000..4265777 --- /dev/null +++ b/docs/linuxcnc-web-wasm-kinematics-migration-plan.md @@ -0,0 +1,304 @@ +# LinuxCNC Web/WASM 运动学完整移植计划 + +**文档状态**:重梳理版 v1.0 +**适用基线**:LinuxCNC `2.10.0~pre0`,以 [`context-lock.json`](../context-lock.json) 为准 +**目标**:完成所有纳入 `configs/sim/**` 的运动学类型、配置变体、正解/逆解、回零、模式切换和浏览器可视化闭环 +**上位实施**:[完整仿真机床实施蓝图](linuxcnc-web-wasm-full-port-implementation.md) +**源程序关联**:[功能与源程序关联目录](linuxcnc-web-wasm-source-map.md) +**覆盖验收**:[仿真全功能覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md) + +本文件将运动学从“CORE-04 的一个任务”提升为贯穿核心、运动、HAL、数字孪生、可视化和回归的主线。它不把算法按文件名简单罗列,而是要求每个类型都闭合:配置选择、参数解析、坐标/关节映射、正解、逆解、分支标志、回零、限制/奇异性、固定 tick、故障注入、native/WASM oracle、UI 姿态和恢复。 + +## 1. 为什么运动学必须单独成线 + +LinuxCNC 的 `KINEMATICS` 不只是一个 `forward()`/`inverse()` 函数: + +- `KINEMATICS_IDENTITY`、`FORWARD_ONLY`、`INVERSE_ONLY`、`BOTH` 会改变 Task、motion、jog、home 和世界/关节模式转换。 +- `coordinates=` 可以重复轴字母(如 `XYYZ`),额外关节不进入 kinematics;映射错误会让解释器正确的轨迹驱动错误的关节。 +- 正解和逆解可能有多分支,需要 `KINEMATICS_FORWARD_FLAGS`、`KINEMATICS_INVERSE_FLAGS` 保持姿态连续;并行机构和机器人还需要上一次 pose 作为迭代初值。 +- 许多配置使用 `switchkins`、HAL 实现的 CoreXY 或 GUI 专用 kinematics,不能只按 `[KINS]KINEMATICS` 的模块名判断。 +- 5 轴刀尖跟随、转台/摆头、Delta/Hexapod、SCARA/PUMA 等算法的单位、角度、奇异点和收敛策略不同;“能编译”不代表“可运行”。 + +因此运动学主线是 M2 核心行为进入 M3 HAL/数字孪生和 M4 UI 的硬门。运动学主线未达到 `verified`,不得把任意非 trivkins 配置标为可运行。 + +## 2. 锁定来源和类型清单 + +### 2.1 公共接口和适配基础 + +必须逐文件登记并保留 `source_sha`: + +| 来源组 | 文件 | 作用 | +|---|---|---| +| ABI/类型 | `src/emc/kinematics/kinematics.h` | `EmcPose`、四种 kinematics 类型、正逆解 flags、home 和 switch API | +| 映射/通用 | `kins_util.c`、`userkfuncs.c`、`ugenserkins.c` | `coordinates` 到 joint 映射、identity 实现、用户模板 | +| 切换 | `switchkins.c`、`switchkins.h` | 0/1/2 类型选择、last pose、迭代正解和 GUI pins | +| 几何 | `src/libnml/posemath/**`、`src/libnml/gomath/**` | 变换、矩阵、向量、数值容差和姿态表示 | +| 运动耦合 | `src/emc/motion/control.c`、`command.c`、`motion.c`、`homing.c` | kinematics 类型如何影响 mode、home、限位、following error 和实际位置 | + +### 2.2 LinuxCNC 实际运动学实现族 + +下表是代码级实现族,不等同于配置数量。每个文件都要进入 manifest;同一算法的 `.c/.cc` 变体不能只保留一个目录状态。 + +| 族 | 实现文件 | 几何类别 | 典型配置入口 | +|---|---|---|---| +| 笛卡尔/映射 | `trivkins.c`、`maxkins.c`、`rotatekins.c` | 轴与关节同构、最大轴/旋转映射、identity/both 变体 | `axis/*.ini`、`qtaxis/xyz`、`gmoccapy/*axis*` | +| 耦合线性 | `corexykins.c`、`rosekins.c` | 线性关节耦合、双电机/特殊并联映射 | `axis/corexy/*`、`axis/rose_engine/*` | +| 泡沫/扩展轴 | `5axiskins.c`、`trivkins` 重复轴/extra joints | XYZ 与 UVW、旋转轴、非 kins extra joints | `axis/foam/*`、9 轴/extra-joints 配置 | +| 转台/摆头 | `trtfuncs.c`、`xyzac-trt-kins.c`、`xyzbc-trt-kins.c` | table-rotary-tilting、刀尖/偏置变换 | `axis/vismach/5axis/*`、`gmoccapy/non_trivial_kinematics/*` | +| Delta | `lineardeltakins.c/.cc`、`lineardeltakins-common.h` | 线性 Delta 正逆解、工作空间限制 | `axis/ldelta*`、`tklinuxcnc/ldelta.ini` | +| Rotary Delta | `rotarydeltakins.c/.cc`、`rotarydeltakins-common.h` | 旋转 Delta 几何 | `axis/rdelta.ini` | +| Tripod/并联 | `tripodkins.c` | 三腿并联、姿态分支 | `tklinuxcnc/tripod.ini` | +| Hexapod | `genhexkins.c`、`genhexkins.h` | 六杆并联、迭代正解、平台上下分支 | `axis/vismach/hexapod-sim/*` | +| Pentapod | `pentakins.c/.h` | 五杆并联、平台姿态和分支 | `axis/pentapod/*` | +| 通用串联机器人 | `genserkins.c`、`genserfuncs.c`、`genserkins.h` | DH 链、Jacobian、迭代逆/正解 | `qtaxis/non-trivial/scara` 及机器人样例 | +| SCARA | `scarakins.c` | 平面串联、腕部旋转、分支选择 | `axis/vismach/scara/*`、`qtvcp_screens/non-trivial/scara/*` | +| PUMA | `pumakins.c` | 6 轴串联、腕部奇异性和分支 | `axis/vismach/puma/*` | +| Scorbot | `scorbot-kins.c` | 机器人专用几何和姿态分支 | `configs/sim` 中 Scorbot/robot 资源 | +| 用户/示例 | `cubic.c/.h`、`userkfuncs.c`、`ugenserkins.c` | 用户参数和模板;不允许动态宿主插件 | 只在 manifest 明确登记后启用 | +| 切换容器 | `switchkins.c` | 多算法运行时切换 | SCARA、Hexapod 和含 switchkins 的配置 | + +除了 `KINEMATICS` 值,还要扫描 `HALFILE` 中的 `corexy_by_hal`、`xyzab_tdr_kins`、`loadrt` 和 GUI pin;这些可能在 HAL 或用户组件层实现变换。 + +### 2.4 K0-INV-01 闭合审计(2026-08-20) + +`coverage/kinematics-source-closure.report.json`(schema `v2`)是本节点的机器可读证据,并以当前 `context_id` 绑定到锁定来源。报告不只按文件名计数,而是把 source index、source-symbols、配置行和 HAL 行转成稳定 ID: + +| 审计面 | 结果 | 证据字段 | +|---|---:|---| +| `src/emc/kinematics` 全目录文件 | 38 个,其中 35 个 `.c/.cc/.h` 实现/头文件 | `source.files[*].source_id`、`extension`、`sha256` | +| `KINEMATICS=`(`.ini` 和 `.inc`) | 268 条 | `configuration.entries[*].config_id` | +| `loadrt`、HAL 变换、switchkins 控制 | 111 条;模板 `[KINS]KINEMATICS`、`corexy_by_hal`、`motion.switchkins-type` 分别保留 | `hal.entries[*].config_id`、`kind`、`family` | +| 实现族 | 11 族均有源码 ID 和配置候选映射 | `families[*].source_ids`、`configuration_ids` | +| 测试输入 | `tests/matrixkins` 6 个文件;`linuxcnc/unit_tests/kinematics` 缺失 | `tests.*`、`missing_required_test_roots` | +| FK/IK oracle | 11 族全部 `blocked` | `families[*].oracle.reason`、`closure.oracle_blocked_families` | + +缺失的官方测试根目录来自锁定提交本身;报告不会把 `tests/matrixkins/**` 改名或升级为 `unit_tests/kinematics/**`。`matrixkins` 仍作为 HAL 组件/配置入口候选登记,待契约变更或补充官方输入后才能产生 native FK/IK golden。2 个 TRT `.c` 文件在现有 source-symbols 报告中是 `indexed_empty`,不是静默丢失;其 source ID、哈希和待补符号状态均保留。 + +### 2.5 K0-INV-02 配置图与样本集(2026-08-20) + +`coverage/kinematics-config-graph.report.json` 将审计报告中的 262 个 `KINEMATICS` 条目和 111 个 HAL/切换条目展开为 373 个入口节点、1,491 个文件/族/资源节点和 2,774 条有向边。模板化 `loadrt [KINS]KINEMATICS` 的解析状态分为 `explicit_reference`、`directory_owner` 和 `inactive_reference`;后两类保留来源事实,但不能当作已启动配置。图的 `orphan_entry_ids` 和 `unowned_template_ids` 必须为空。 + +`coverage/kinematics-oracle-samples.jsonl` 为 11 个实现族各登记一个固定 `fk_ik_fk_roundtrip` 样本、候选配置、输入姿态/关节、容差和精确字段。样本当前全部 `blocked`,原因仍是锁定提交没有 `linuxcnc/unit_tests/kinematics/**`;`tests/matrixkins/test.ini` 只作为 `user_static` 的配置候选,未被提升为官方 oracle。只有补充/批准输入契约后,才允许把 `execution.status` 改为可运行并生成 native golden。 + +### 2.6 K0-ORACLE-01 runner/schema(2026-08-20) + +`scripts/generate_kinematics_oracle_report.py` 在固定 `PATH/HOME/LANG/LC_ALL/TZ/PYTHONHASHSEED` 环境中运行 `build-native/sim_kinematics_test` 作为 native smoke,并为 11 个样本输出 `coverage/kinematics-oracle.report.json`。`coverage/kinematics-golden-schema.json`(`linuxcnc-web-wasm/kinematics-golden.v1`)要求 `status/error_code/kinematics_type/branch_id/flags/current_tick/config_hash/axis_joint_mapping` 等字段;缺字段不会通过比较。当前 native smoke 为 `passed`,但 11 个样本均为 `blocked`,错误码为 `MISSING_OFFICIAL_ORACLE`,没有伪造数值 golden。 + +### 2.7 K1-CONTRACT-01 ABI contract(2026-08-20) + +`coverage/kinematics-abi-contract.json` 从 `sim_kinematics.h`、`wasm-core/CMakeLists.txt` 和固定数值策略生成。它锁定 ABI version 1、8 个公开函数、结果/类型/mode 枚举、3 个结构体字段列表、`SIM_KIN_ERR_*` 错误码、`-ffp-contract=off`/`-fno-fast-math`、非有限值拒绝、100000 最大迭代和 FNV-1a-64 state hash;缺失 Emscripten export 会使 contract `blocked`。当前 contract `verified`,native/WASM 构建及 8 个 CTest 均通过。 + +`coverage/kinematics-mapping-contract.json` 进一步锁定 ASCII case-fold、重复轴 first-wins、extra-joint 数量、home 零位、inclusive limits、forward/inverse 映射和 state hash 输入字段;`sim_kinematics_test` 已覆盖 `XYYZ`、越界和 home 样本。 + +`coverage/kinematics-numeric-policy.json` 固定 `-ffp-contract=off`、禁用 fast-math、角度单位、100000 迭代上限、1e-12 奇异阈值、1e-9 golden 容差和 exact 字段;NaN/Inf、负容差、超迭代、奇异和越界都列入边界矩阵。 + +### 2.3 当前 WASM 雏形的真实边界 + +当前 `wasm-core/include/sim_kinematics.h`/`sim_kinematics.c` 只能作为 K1 之前的实验切片,不能作为完整实现证据: + +| 已存在 | 尚未闭合 | +|---|---| +| `trivkins`、`XYZAC-TRT`、`XYZBC-TRT`、`XYZBCW` 的有限正逆解和基础 joint limit 检查 | LinuxCNC 全部实现族:CoreXY、Rose、5axiskins 完整模式、Delta/RotaryDelta、Tripod、Hexapod、Pentapod、GenSer、SCARA、PUMA、Scorbot、switchkins 和用户静态扩展 | +| 基础 `coordinates` 字符串和重复关节填充 | `KINEMATICS_TYPE` 四种语义、extra joints、完整轴 bitmap、world/joint mode 约束和 home 语义 | +| 有限性检查、少量奇异性检查和 FNV 状态 hash | `fflags/iflags` 分支状态、last-pose/seed、residual、iterations、branch_id、确定性迭代策略和恢复字段 | +| C API 单元样例 | LinuxCNC native FK/IK oracle、每个配置入口的 golden、HAL 实现等价性和 UI/Vismach 姿态证据 | + +另外,现有 `sim_kinematics.c` 尚未加入 `wasm-core/CMakeLists.txt` 的 `sim_core`/Emscripten module,`sim_kinematics_test.c` 也未进入 CTest;因此当前 `ctest` 的 7/7 通过不包含运动学验证。K1 的第一项集成工作必须先修复构建和测试注册,再谈算法族扩展。 + +因此 K0/K1 不能只围绕现有 `sim_kinematics_*` 函数补测试;必须先完成统一契约,再按 K2-K5 族逐步替换或扩展实现。现有切片的错误码和字段若与统一 ABI 冲突,应通过版本化契约迁移,不得在旧 ABI 上堆叠不可兼容的类型。 + +## 3. 统一运动学契约 + +### 3.1 输入、输出和状态 + +WASM 内部使用固定宽度、明确大小的结构,TypeScript 不接触 C 结构体布局。逻辑契约如下: + +```text +KinematicsRequest { + kind: FORWARD | INVERSE | HOME | CHECK + joints[N] / pose{ x,y,z,a,b,c,u,v,w } + fflags: uint64 + iflags: uint64 + seed_pose: optional pose # 迭代正解初值 + config_hash: bytes32 + simulation_tick: uint64 +} + +KinematicsResult { + status: OK | INVALID_INPUT | OUT_OF_RANGE | SINGULAR | NO_SOLUTION | + NOT_CONVERGED | UNSUPPORTED | NUMERIC_ERROR + joints[N] / pose + fflags: uint64 + iflags: uint64 + residual: float64 + iterations: uint32 + branch_id: uint32 + state_hash: bytes32 +} +``` + +必须固定以下语义: + +1. `forward(joints)` 返回世界 pose,并更新适用的 `iflags`;`inverse(pose)` 返回关节,并更新适用的 `fflags`。 +2. flags 是会话状态的一部分,必须进入快照、golden 和恢复账本;不能每次调用清零来掩盖分支变化。 +3. `home()` 产生已知的世界 pose、joint 和 flags;不能只把所有关节设为零。 +4. `KINEMATICS_FORWARD_ONLY`、`INVERSE_ONLY` 的 mode 转换限制要与 LinuxCNC 一致;不支持的调用返回 `UNSUPPORTED`,不能返回伪造 pose。 +5. 所有输入输出先检查有限性、维数、单位和配置 hash;NaN/Inf、数组越界、未知轴字母和未知类型在进入算法前拒绝。 + +### 3.2 坐标、关节和 extra joints + +`coordinates` 解析为轴索引到 joint 编号的稳定映射,并记录重复轴 bitmap。运动学 joint 数量与 `EMCMOT_MAX_JOINTS`、`NO_OF_KINS_JOINTS`、extra joints 的边界必须分开表示: + +- kinematics 只接收前 `NO_OF_KINS_JOINTS` 个关节;extra joints 由 motion/Task 管理,不得误传给算法。 +- `XYYZ`、`XYZY` 等重复坐标必须在配置加载时生成映射 golden,并在 joint/world 模式切换时复用。 +- 旋转轴的角度单位、绕轴方向、回绕策略和连续性要逐类型登记;不能用统一的线性限位代码代替。 +- UI 显示的 axis pose、joint pose、commanded/actual pose 必须注明坐标系和来源 tick。 + +### 3.3 正逆解数值策略 + +解析解与迭代解使用同一个数值政策: + +- Emscripten/native 固定编译选项、舍入模式和 `sin/cos/sqrt/atan2` 包装;算法不得调用墙钟或未锁定随机数。 +- 解析算法返回工作空间、关节限位、姿态范围和分支错误,而不是将超界结果钳位后返回 `OK`。 +- 迭代算法固定初值来源、最大迭代次数、收敛残差、步长/阻尼、奇异阈值和失败码;每次结果记录 `iterations/residual/branch_id`。 +- 对正逆解只使用定义好的几何容差;状态、分支、错误码和事件顺序必须精确一致。 +- 迭代正解(Hexapod、通用串联等)在相邻 tick 使用上一次有效 pose,但恢复后必须从 checkpoint 中恢复该 seed。 + +## 4. 按算法族的实施要求 + +### 4.1 笛卡尔和耦合线性族 + +先完成 `trivkins` 的 identity/both/inverse-only/forward-only、坐标重复映射和 max/rotate 变体,再完成 `corexykins`、`rosekins` 的矩阵映射。每一类需要: + +- 正逆解矩阵和符号方向的单元向量测试; +- 重复轴、extra joints、关节限位、回零和 joint/world 模式测试; +- HAL 实现的 `corexy_by_hal` 与 kinematics 模块实现的对照,证明同一轨迹在两条链上等价; +- 快速/1x/暂停恢复后的关节和世界 pose hash 一致。 + +当前 K2 耦合切片已完成 CoreXY、Rose、MaxKins 和 RotateKins 的统一实现。CoreXY 复现 LinuxCNC 的半和/半差公式,并分别登记 `corexy_by_kins.ini` 与 `corexy_by_hal.ini`,HAL 组件路径保持为独立入口;Rose inverse 保存上一象限和累计圈数,跨 2→3 象限得到连续角度和稳定 branch;MaxKins 保留 pivot/B/C/U/V/W 修正公式并覆盖真实 `max5kins.ini` 的 `pivot-length=0`;RotateKins 覆盖负 C 旋转方向和 90°边界。锁定 LinuxCNC 没有 shipped 的 rotatekins `.ini`,因此新增的 `linuxcnc/configs/sim/axis/rotate/rotatekins.ini` 明确标为 workspace-derived fixture,不冒充官方配置或 oracle。`coverage/coupled-kinematics.report.json` 使用相同样本运行 native 与 WASM,并比较规范化 JSON 和 state hash;由于 `linuxcnc/unit_tests/kinematics` 不在锁定源中,报告状态仍为 partial/blocked,不生成伪造官方 golden。 + +`K2-HAL-01` 已在同一契约上接入静态 `corexy_by_hal`。SimHAL 注册组件的 8 个 float pin 和 servo-thread function,周期内执行 `.comp` 的 `alpha/beta` 命令矩阵与 `j0/j1` 反馈矩阵;HAL 配置中的 `j0home/j1home` 路由在变换前保留 Cartesian home 语义,并与 `corexykins` 的 motor-joint home 明确区分。`coverage/corexy-hal.report.json` 对配置连接、公式、native/WASM 输出和 oracle 阻塞状态做确定性检查;完整 HAL 命令解析、其它组件和真实 unit-test oracle 仍属于后续节点。 + +`K3-5AXIS-01` 已接入 `5axiskins` 的 XYZBCW spherical pivot 链。真实 `bridgemill/5axis.ini` 使用 `coordinates=xyzbcwy` 和七个 joints,重复 Y 由 first-wins 映射并在 inverse 后同步 suffix;pivot length 250、B/C 角度和 W 工具运动均进入 FK/IK 与 state hash。缺少 XYZBCW 任一必需字母返回 configuration error;`coverage/fiveaxis-kinematics.report.json` 对配置、源公式、重复轴、边界和 native/WASM 样本做确定性记录,官方 unit-test oracle 仍 blocked。 + +`K3-TRT-01` 已接入 `xyzac-trt-kins` 与 `xyzbc-trt-kins` 共用的 `trtfuncs.c` 姿态链。`table-rotary-tilting/xyzac-trt.ini` 与 `xyzbc-trt.ini` 的 `sparm=identityfirst`、五关节、tool/offset HAL pins 均登记;XYZAC 保持 C→A 顺序,XYZBC 保持 C→B 顺序,offset 与 tool length 进入固定解析式。B=90 的配置边界显式返回 singular,native/WASM 样本和 hash 见 `coverage/trt-kinematics.report.json`;switchkins 运行时切换容器留到 K5,不在本节点伪装完成。 + +`K3-ROBOT-01` 已接入 SCARA、PUMA 和 Scorbot 专用解析式。SCARA 使用 D1-D6、C 总姿态和 elbow 分支;PUMA 使用 A2/A3/D3/D4/D6、完整旋转矩阵/RPY 转换以及 shoulder/elbow/wrist 分支和 wrist singular 检查;Scorbot 使用固定 L0/L1/L2 链和受控点 RZ 逆解。SCARA 与 PUMA 取自 shipped Vismach 配置,Scorbot 因锁定源没有 shipped INI 使用明确标注的 workspace-derived fixture。PUMA 等复杂三角函数的 native/WASM state hash 在 `1e-9` golden 容差上规范化,避免后端 libm 末位差异成为伪状态分叉;所有不可达/奇异边界和官方 oracle 状态见 `coverage/robot-kinematics.report.json`。 + +`K3-GENSER-01` 已接入六关节 Craig DH 链和固定零初值的阻尼数值 Jacobian inverse。DH `A/ALPHA/D` 数组、alpha 弧度与 joint 度数转换、有限差分步长、阻尼、最大迭代次数、residual 和不收敛错误均进入配置/报告;melfa 与 puma560 的真实 `genserkins` 配置作为候选,样本在 native/WASM 逐字一致。此节点不把动态 `switchkins` 或用户库放行到浏览器,官方 unit-test oracle 仍 blocked,详见 `coverage/genser-kinematics.report.json`。 + +`K4-DELTA-01` 已接入 linear/rotary Delta 的统一 forward/inverse/mapping 路径。线性 Delta 使用锁定 `lineardeltakins-common.h` 的 120 度塔架与杆长解析二次式;旋转 Delta 使用锁定 `rotarydeltakins-common.h` 的平台/大腿/小腿/足端几何。两者均固定 XYZ 到前三个 kinematics joints 的映射,A/B/C/U/V/W 透传,额外 joints 不进入算法;默认根保持 LinuxCNC 的平台根,`SIM_KIN_DELTA_ALTERNATE_ROOT` bit 0 使 alternate root、`branch_id` 和 state hash 可观察。真实 `ldelta.ini`、`ldelta_demo.ini`、`tklinuxcnc/ldelta.ini`、`rdelta.ini` 均登记;nominal/alternate root、工作空间无解、关节限位和 rotary `z=0` 奇异边界在 native/WASM 逐字对照。配置引用的 HAL 文件在锁定工作区缺失,作为 resource gap 保留,不能升级为配置 smoke 或数值 golden;官方 `linuxcnc/unit_tests/kinematics/**` 同样缺失,全部 Delta oracle 明确 blocked,详见 `coverage/delta-kinematics.report.json`。 + +### 4.2 5 轴转台/摆头族 + +`5axiskins`、`xyzac-trt-kins`、`xyzbc-trt-kins` 必须共享但不能混用各自的旋转顺序、刀尖点和 offset 语义。验收至少包括: + +- A/B/C 旋转顺序、正负方向、角度单位和回绕; +- table-rotary 与 tool-rotary 的姿态链; +- `identityfirst` 参数、刀长/刀尖偏置、G43/G43.1/G49 与逆解; +- 旋转轴接近 0/180/360 度、万向节/姿态奇异和无解报警; +- impeller、table-rotary-tilting、dual-rotary 的真实 `configs/sim` 入口和 Vismach 姿态。 + +### 4.3 Delta、Tripod、Hexapod、Pentapod + +并联机构不能只测“一个可达姿态”。每种机构需要工作空间边界、腿长/关节范围、平台上下分支、奇异面和迭代初值测试: + +- Delta:塔架几何、臂长、平台平移边界、负根/无根和线性/旋转变体; +- Tripod:三腿约束、姿态分支、回零和连续轨迹; +- Hexapod:六杆长度、平台上下姿态、迭代正解、last-pose 和 GUI pins; +- Pentapod:五杆约束、平台姿态、不可达/奇异区域和 `pentapod.var` 参数。 + +每次迭代必须输出 residual 和迭代次数。相同 seed、输入和 tick 必须得到相同分支;越过分支边界时要产生可解释的 `SINGULAR` 或 `NO_SOLUTION` 事件,不能突然跳姿态。 + +### 4.4 通用串联机器人族 + +`genserkins` 以 DH 链、Jacobian 和迭代求解为核心;`scarakins`、`pumakins`、`scorbot-kins` 是专用参数化实现。实施顺序: + +1. 统一 link 参数、角度单位、joint offset、正方向和关节范围。 +2. 先用 FK 生成 pose oracle,再用 FK→IK→FK round-trip 验证每一个分支。 +3. 对 Jacobian 条件数、阻尼、步长、初值和最大迭代建立配置字段,全部进入快照。 +4. 覆盖 elbow-up/down、腕部翻转、SCARA 平面无解、PUMA wrist singularity 和 Scorbot 专用姿态。 +5. UI 轨迹显示必须消费 kinematics 输出的姿态,不能用线性 axis 拼接替代机器人 FK。 + +### 4.5 Switchkins 和用户扩展 + +`switchkins` 不是动态加载的放行口,而是静态注册的最多三种实现容器。每个 `switchkins_type` 必须有: + +- 类型、坐标要求、最大 joint 数、是否允许重复轴、是否迭代正解的 manifest; +- 切换前后同步点、flags/lastpose 初始化和 GUI pin; +- 非法类型、缺失实现、切换中运动、恢复后重建和回滚测试。 + +`userkfuncs`、`ugenserkins` 和 `.so/.so` 类宿主动态模块不能直接加载。可移植用户运动学必须在构建期编译为静态 WASM 模块,提供相同 ABI、版本和 capability;不满足时返回 `UNSUPPORTED_USER_KINS` 并阻断配置启动。 + +## 5. 运动学主线任务和里程碑 + +M0/M1 的基线和会话骨架保持不变;从原 `M2-CORE-04` 起,采用以下 K 系列主线。K 系列任务完成后才能解锁对应的 M3/M4 工作流。 + +| 里程碑 | 任务 | 结果 | 依赖 | 退出门槛 | +|---|---|---|---|---| +| K0 清单与 oracle | `K0-INV-01` 源文件/符号索引;`K0-INV-02` 配置入口图;`K0-ORACLE-01` native FK/IK/golden schema | 完整类型、参数和配置清单 | M0 | 所有 kinematics 文件和入口有 source/feature/test/oracle;缺失输入显式 blocked | +| K1 ABI 与数值 | `K1-CONTRACT-01` C ABI;`K1-CONTRACT-02` flags/pose/映射;`K1-NUM-01` 浮点/迭代政策 | `sim_kinematics.h`、错误码、状态 hash | K0、M1 | 同输入三次字节和 hash 一致;非法/NaN/Inf/越界全有测试 | +| K2 笛卡尔/耦合 | `K2-TRIV-01` trivkins 全类型;`K2-TRIV-02` 重复轴/extra joints;`K2-COUPLED-01` corexy/rose/max/rotate;`K2-HAL-01` HAL 等价链 | identity、both、耦合线性运动学 | K1 | 轴/关节模式、home、限位、HAL 和恢复 golden 全绿 | +| K3 5 轴串联 | `K3-5AXIS-01` 5axiskins;`K3-TRT-01` xyzac/xyzbc/trt;`K3-ROBOT-01` SCARA/PUMA/Scorbot;`K3-GENSER-01` DH/Jacobian | 5 轴、转台/摆头和串联机器人 | K2、posemath | FK/IK round-trip、分支、奇异、刀尖/刀长和真实配置入口通过 | +| K4 并联机构 | `K4-DELTA-01` linear/rotary Delta;`K4-TRIPOD-01` tripod;`K4-HEX-01` genhex;`K4-PENTA-01` pentapod | 全部并联正逆解和迭代恢复 | K1、K2 | 工作空间边界、无解、奇异、分支、lastpose、GUI pins 和故障注入通过 | +| K5 切换/扩展 | `K5-SWITCH-01` switchkins;`K5-USER-01` 静态 userk/ugenser;`K5-CFG-01` 参数和能力注册 | 可切换和构建期扩展模型 | K3、K4 | 非法切换、缺模块、恢复、版本和权限错误明确;无动态宿主加载 | +| K6 运动集成 | `K6-MOTION-01` TP→IK→motion;`K6-MOTION-02` FK feedback;`K6-HOME-01` home/limit;`K6-IO-01` spindle/tool/probe | 运动学与 Task/HAL/IO/数字孪生闭环 | K2-K5 | `configs/sim` 运动学入口可启动、运行、暂停、急停、恢复 | +| K7 UI/回归 | `K7-VIS-01` 姿态/关节/刀尖渲染;`K7-REG-01` 全配置;`K7-REG-02` 浏览器故障矩阵 | 可视化和全量回归 | K6、M3/M4 | 轨迹、姿态、joint/world、报警、回放和多浏览器证据齐全 | +| K8 发布闭合 | `K8-REL-01` 兼容报告;`K8-REL-02` 迁移/回滚;`K8-REL-03` 许可证/来源闭包 | 运动学纳入完整仿真机床发布 | K0-K7 | 受影响条目全部 `accepted`,无孤儿、无未解释差异、无静默降级 | + +`K4-TRIPOD-01` 已完成:`tripodkins.c` 的点顶点三杆并联机构已接入统一 forward/inverse/mapping,使用真实 `linuxcnc/configs/sim/tklinuxcnc/tripod.ini` 和 `linuxcnc/lib/hallib/tripodsim.hal` 验证 XYZ/AD-BD-CD 映射、above/below 根分支、三角不等式无解、基面奇异、关节限位、退化基座和固定零迭代;native/WASM JSON 与 state hash 一致,官方 oracle 因锁定来源缺少 `linuxcnc/unit_tests/kinematics/**` 继续显式 blocked。证据见 `coverage/tripod-kinematics.report.json`。 + +`K4-HEX-01` 已完成:`genhexkins.c` 的六腿 Stewart 平台已接入统一 forward/inverse/mapping,使用真实 `linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini` 与 `kinematics.hal` 验证六腿闭式逆解、Newton 6x6 正解、确定性初始种子、alternate seed、非正 strut、迭代上限、最大误差、奇异 Jacobian、限位、HAL GUI/迭代 pin 和 native/WASM state hash;官方 oracle 继续显式 blocked。证据见 `coverage/genhex-kinematics.report.json`。 + +每个 K 里程碑都必须同时更新 `coverage/manifest.jsonl`、source map、golden 索引、任务指针和证据摘要。算法代码通过单测但没有配置入口或 UI 姿态证据时,不能推进到下一个里程碑。 + +## 6. 运动学测试矩阵 + +每个实现族至少有以下测试层;参数和样本由 K0 清单生成,不允许只挑“容易收敛”的点: + +| 层 | 样本 | 必测内容 | +|---|---|---| +| 纯函数 | 合法 pose/joint、边界、随机种子固定的网格 | FK、IK、FK→IK→FK、IK→FK→IK、flags 和 residual | +| 几何边界 | 轴/关节最小最大、工作空间边缘、旋转回绕 | limit、无解、奇异、分支连续性 | +| 配置 | 每个非 trivkins `configs/sim` 入口及所有 `trivkins` 变体 | 参数、坐标、HALFILE、tool/var、资源图和启动错误 | +| 运动 | G0/G1/G2/G3、5 轴刀尖、jog、home、暂停、abort | TP→IK→motion、反馈、following error、最终姿态 | +| 故障 | 探针、限位、主轴/换刀、迭代不收敛、Python 异常 | 报警、停止、恢复、状态 hash 和事件顺序 | +| 持久化 | checkpoint、journal、刷新、Worker 重启、离线 | flags、lastpose、seed、工具和姿态恢复一致 | +| 浏览器 | Chromium/Firefox/Safari 计划矩阵、窄屏/触摸 | 3D 非空、姿态无跳变、背压、错误可见 | + +### 6.1 Golden 和容差 + +native runner 为每个样本保存输入 hash、配置 hash、算法版本、pose/joint、flags、residual、iterations、branch、错误和最终 state hash。WASM 只允许在已登记的浮点字段使用容差;以下字段必须精确: + +```text +status / error_code / kinematics_type / branch_id +flags / current_tick / event_order / config_hash +axis-to-joint mapping / home result presence / state transition +``` + +差异报告必须包含首个 divergent tick、字段路径、原生值、WASM 值、容差、source_id 和可重放命令。迭代不收敛不得被提高最大迭代次数或放宽容差“修绿”;应记录算法参数和失败原因。 + +## 7. 与整体仿真机床的接合顺序 + +运动学主线不是独立库,接合顺序固定如下: + +1. K1 ABI 完成后,`sim_motion` 只通过 `KinematicsRegistry` 调用,不再硬编码 trivkins。 +2. K2 完成后,解释器/TP 的 canonical 轨迹接入 axis/joint 变换,HAL 反馈接入 FK。 +3. K3/K4 完成后,数字孪生为每种机床提供真实 joint/pose 反馈、限位、回零和故障;Vismach/Three.js 使用同一 FK 结果。 +4. K5 完成后,Python/remap/VCP 获得只读 kinematics 状态和受控切换命令;切换必须经过 Task 同步点。 +5. K6 完成后,OPFS checkpoint 保存 kinematics type、参数、flags、lastpose、seed 和 joint/pose 状态。 +6. K7 完成后,UI 同时显示世界坐标、关节坐标、机床姿态、刀尖和限制原因;不能把 axis 数值当成所有机床的刀具姿态。 + +## 8. 当前执行和停止线 + +当前 `M2-CORE-04` 的 `unit_tests/kinematics/**` 缺失仍然是 K0 的输入审计事项,不自动改成实现任务。立即顺序为: + +1. `K0-INV-01` 确认锁定提交的 kinematics 文件、符号和测试路径,生成缺失输入报告。 +2. `K0-INV-02` 从 `configs/sim`、`tests/matrixkins` 和实际 kinematics 配置生成入口图;这些可以作为配置 oracle,但不能冒充缺失的官方 unit test。 +3. `K0-ORACLE-01` 在原生 runner 中建立 FK/IK JSONL schema 和最小 trivkins/corexy/非平凡样本。 +4. 经审查决定是否创建新的输入契约/context lock;未决定前保持 blocked,不跳到 HAL 节点。 +5. K1 ABI 和数值政策完成后,再按 K2→K5 算法族推进;K6 以前不开放全量 UI 运动学声明。 + +以下条件必须停止并回到对应里程碑:输入源或配置入口遗漏;正逆解首次差异未定位;分支/flags/lastpose 未进入快照;算法依赖墙钟或随机数;用伪造 pose、钳位越界值、放宽容差或刷新重建掩盖失败;用户运动学需要未登记的动态宿主库。 + +完成 K8 后,运动学才能从“核心切片”升级为“仿真机床完整能力”,并作为整个 LinuxCNC Web/WASM 发布的必要条件。 diff --git a/docs/linuxcnc-web-wasm-simulation-coverage.md b/docs/linuxcnc-web-wasm-simulation-coverage.md index f5431ef..06e0f50 100644 --- a/docs/linuxcnc-web-wasm-simulation-coverage.md +++ b/docs/linuxcnc-web-wasm-simulation-coverage.md @@ -151,7 +151,7 @@ | 补偿 | cutter radius、tool length、dynamic tool length、additional tool offset、wear、螺距误差 | `SIM-CORE` | | 主轴同步 | threading、G33/G33.1、rigid tapping、CSS、gear、orient、multiple spindle | `SIM-DEVICE` | | 控制环 | PID、feed/velocity/position loop、encoder、stepgen、adaptive feed | `SIM-CORE` | -| 运动学模块 | `trivkins`、`5axiskins`、`corexykins`、`cubic`、`genhexkins`、`genserkins`、`lineardelta`、`maxkins`、`pentakins`、`rosekins`、`rotarydelta`、`rotatekins`、`scarakins`、`scorbot`、`tripod`、`xyzac-trt`、`xyzbc-trt`、`switchkins`、`ugenser/userkfuncs` | `SIM-CORE` | +| 运动学模块 | `trivkins`、`5axiskins`、`corexykins`、`cubic`、`genhexkins`、`genserkins`、`lineardelta`、`maxkins`、`pentakins`、`rosekins`、`rotarydelta`、`rotatekins`、`scarakins`、`scorbot`、`tripod`、`xyzac-trt`、`xyzbc-trt`、`switchkins`、`ugenser/userkfuncs` | `SIM-CORE`;实现族、正逆解、分支/奇异性和 K0-K8 门禁见[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md) | | DH/机器人 | DH 参数、PUMA、SCARA、六足、Delta、Pentapod、Scorbot 和自定义静态 kinematics | `SIM-CORE` | | 用户 kinematics | 构建期静态 WASM ABI、热切换由仿真状态机完成 | `SIM-ADAPTER` | | 坐标/姿态显示 | joints、axes、pose、forward/inverse、tool orientation 和 singularity 错误 | `WEB-EQUIV` | diff --git a/docs/linuxcnc-web-wasm-source-map.md b/docs/linuxcnc-web-wasm-source-map.md index 6411c1a..e972528 100644 --- a/docs/linuxcnc-web-wasm-source-map.md +++ b/docs/linuxcnc-web-wasm-source-map.md @@ -44,7 +44,7 @@ | Worker 协议与固定 tick 边界 | `wasm-core/include/sim_protocol.h`、`wasm-core/src/sim_protocol.c`、`web/worker/sim-session.mjs`、`web/worker/sim-worker.mjs` | 版本化 envelope、单调 seq/tick、会话状态机和错误映射;WASM 核心只暴露受控 C ABI | `wasm-core/tests/sim_protocol_test.c`、`web/worker/test_wasm_session.mjs`、`scripts/test_protocol.py` | | RTAPI、OS 接口和时钟 | `linuxcnc/src/rtapi/**`;`linuxcnc/src/libnml/os_intf/timer.cc`、`_timer.c`、`sem.cc`、`shm.cc`;`linuxcnc/src/emc/linuxcnc.h` | 固定逻辑时钟、虚拟同步原语和受控内存;内核实时、CPU 绑定和设备访问标记为 `REAL-EXCLUDED` | `linuxcnc/tests/lowlevel/**`、`linuxcnc/tests/rtapi-shmem/**`(可移植部分) | | Motion、回零和限位 | `linuxcnc/src/emc/motion/motion.c`、`control.c`、`command.c`、`homing.c`、`emcmotglb.c`、`emcmotutil.c`、`simple_tp.c`、`motion_struct.h`、`homing.h` | `sim_motion` 状态机;虚拟编码器、开关、跟随误差和故障注入 | `linuxcnc/tests/hard-limits/**`、`linuxcnc/tests/abort/**`、`linuxcnc/tests/limit3/**` | -| Kinematics | `linuxcnc/src/emc/kinematics/*kins.c`、`*kins.cc`、`kins_util.c`、`genserfuncs.c`、`trtfuncs.c`、`switchkins.c`;关键文件包括 `trivkins.c`、`5axiskins.c`、`genhexkins.c`、`genserkins.c`、`lineardeltakins.c`、`rotarydeltakins.c`、`corexykins.c`、`xyzac-trt-kins.c`、`xyzbc-trt-kins.c` | 静态 WASM 模块和 manifest 注册;不使用宿主动态库 | `linuxcnc/configs/sim/axis/gantry/**`、`linuxcnc/configs/sim/axis/foam/**`、`linuxcnc/configs/sim/axis/ldelta*`、机器人样例;运动学单测 | +| Kinematics | `linuxcnc/src/emc/kinematics/*kins.c`、`*kins.cc`、`kins_util.c`、`genserfuncs.c`、`trtfuncs.c`、`switchkins.c`;关键文件包括 `trivkins.c`、`5axiskins.c`、`genhexkins.c`、`genserkins.c`、`lineardeltakins.c`、`rotarydeltakins.c`、`corexykins.c`、`xyzac-trt-kins.c`、`xyzbc-trt-kins.c` | 静态 WASM 模块和 manifest 注册;不使用宿主动态库;按[K0-K8 运动学主线](linuxcnc-web-wasm-kinematics-migration-plan.md)闭合正逆解、flags、分支、奇异性和恢复 | `linuxcnc/configs/sim/axis/gantry/**`、`linuxcnc/configs/sim/axis/foam/**`、`linuxcnc/configs/sim/axis/ldelta*`、机器人样例;运动学单测和 native FK/IK golden | | Posemath 和几何 | `linuxcnc/src/libnml/posemath/posemath.cc`、`posemath.h`、`gomath.c`、`gomath.h`、`sincos.c`、`gotypes.h` | 原样编译或等价 ABI;固定浮点编译选项 | posemath 相关单测、TP/kinematics golden | | Tooldata、工具表和数据库 | `linuxcnc/src/emc/tooldata/tooldata_common.cc`、`tooldata_nml.cc`、`tooldata_db.cc`、`tooldata_mmap.cc`、`tool_mmap_read.cc`、`tooldata.hh` | 内存工具服务 + OPFS 事务;兼容 pocket、offset、wear 和数据库迁移 | `linuxcnc/tests/mdi-queue/**`、`linuxcnc/configs/sim/**/*.tbl` | | IO、换刀、主轴和冷却 | `linuxcnc/src/emc/iotask/ioControl.cc`、`ioControl_v2.cc`;`linuxcnc/src/emc/tooldata/**` | 虚拟 IO、主轴、换刀、探针和故障模型;真实协议排除 | `linuxcnc/configs/sim/axis/iocontrolv2/**`、`linuxcnc/configs/sim/axis/lathe_multispindle/**`、换刀测试 | diff --git a/docs/linuxcnc-web-wasm-technical-roadmap.md b/docs/linuxcnc-web-wasm-technical-roadmap.md index cd4cde4..3603896 100644 --- a/docs/linuxcnc-web-wasm-technical-roadmap.md +++ b/docs/linuxcnc-web-wasm-technical-roadmap.md @@ -6,12 +6,14 @@ **范围**:只做仿真,不连接真实机床,不通过网络控制硬件 **兼容目标**:以 LinuxCNC 仿真模式为行为基线,覆盖全部仿真功能并给出浏览器内等价实现 **执行治理**:[项目执行与交付策略](linuxcnc-web-wasm-execution-strategy.md) +**完整实施蓝图**:[完整仿真机床实施蓝图](linuxcnc-web-wasm-full-port-implementation.md) +**运动学主线**:[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md) **逐项验收**:[仿真全功能覆盖矩阵](linuxcnc-web-wasm-simulation-coverage.md) **源码关联**:[仿真功能与源程序关联目录](linuxcnc-web-wasm-source-map.md) **前端与通信**:[前端与 LinuxCNC 通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md) **总控执行**:[仿真移植总控执行手册](linuxcnc-web-wasm-integration-playbook.md) -本路线定义架构、范围、风险和阶段 A-E;任务上下文预算、提交格式、断网接续、里程碑退出条件和发布门禁统一由[项目执行与交付策略](linuxcnc-web-wasm-execution-strategy.md)约束;功能到 LinuxCNC 实际源文件、配置和测试的关联以[源程序关联目录](linuxcnc-web-wasm-source-map.md)为入口;浏览器 UI、Worker 协议、状态契约、前端任务和 FE-M0..M5 里程碑以[前端与通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md)为准;端到端依赖、任务目录、场景验收和当前实施状态以[总控执行手册](linuxcnc-web-wasm-integration-playbook.md)为准。 +本路线定义架构、范围、风险和阶段 A-E;具体启动状态机、固定 tick 顺序、资源闭包和阶段产物以[完整仿真机床实施蓝图](linuxcnc-web-wasm-full-port-implementation.md)为准;任务上下文预算、提交格式、断网接续、里程碑退出条件和发布门禁统一由[项目执行与交付策略](linuxcnc-web-wasm-execution-strategy.md)约束;功能到 LinuxCNC 实际源文件、配置和测试的关联以[源程序关联目录](linuxcnc-web-wasm-source-map.md)为入口;浏览器 UI、Worker 协议、状态契约、前端任务和 FE-M0..M5 里程碑以[前端与通信详细设计](linuxcnc-web-wasm-frontend-communication-design.md)为准;端到端依赖、任务目录、场景验收和当前实施状态以[总控执行手册](linuxcnc-web-wasm-integration-playbook.md)为准。 ## 1. 摘要 @@ -413,7 +415,7 @@ cmake --build build-wasm ## 9. 分阶段实施路线 -本节的阶段 A-E 映射到执行策略中的 M0-M5;阶段退出条件、任务边界和返工规则以[项目执行与交付策略](linuxcnc-web-wasm-execution-strategy.md)第 4、6、7 节为准。 +本节的阶段 A-E 映射到执行策略中的 M0-M5;其中阶段 B 的运动学具体拆分为 K0-K8,阶段退出条件、任务边界和返工规则以[项目执行与交付策略](linuxcnc-web-wasm-execution-strategy.md)第 4、6、7 节和[运动学完整移植计划](linuxcnc-web-wasm-kinematics-migration-plan.md)为准。 ### 阶段 A:全量清单和运行时骨架 @@ -424,7 +426,7 @@ cmake --build build-wasm ### 阶段 B:核心解释和运动全覆盖 -- 移植全部 G/M/O、remap、参数、坐标系、补偿、TP、motion 和全部内置 kinematics。 +- 移植全部 G/M/O、remap、参数、坐标系、补偿、TP、motion 和全部内置 kinematics;运动学必须按 K0 来源/oracle、K1 ABI、K2 笛卡尔耦合、K3 5 轴/串联、K4 并联、K5 switch/user、K6 运动集成顺序推进。 - 完成 mill、lathe、gantry、robot、delta、pentapod、foam、plasma、laser 和 probe 虚拟机床模型。 ### 阶段 C:HAL、PLC、IO 和虚拟机床部件 diff --git a/docs/task-history.md b/docs/task-history.md new file mode 100644 index 0000000..2402628 --- /dev/null +++ b/docs/task-history.md @@ -0,0 +1,46 @@ +# 任务证据索引 + +本文件是按需读取的历史索引,不是启动上下文。完整日志和大型 JSONL 产物只通过路径、大小和 SHA-256 追溯;不要把它们复制回 `nextTask.md` 或新的 context packet。 + +当前指针:`nextTask.md`;当前 context:`linuxcnc-2.10.0-pre0-wasm-m1-py-c1`(与 `context-lock.json` 一致)。 + +## 已验证节点 + +| 节点 | 结果摘要 | 主要产物 | +|---|---|---| +| `BOOTSTRAP-M0-01` | 基线、下载索引、ABI bootstrap 和上下文包测试通过 | `coverage/source-index.jsonl`, `coverage/manifest.jsonl` | +| `INV-01a..d` | 文档能力、源码符号、配置资源、测试入口索引确定性生成 | `coverage/document-capabilities.jsonl`, `coverage/source-symbols.jsonl`, `coverage/config-resources.jsonl`, `coverage/test-entries.jsonl` | +| `INV-02a..b` | 规范化 source ID、依赖闭包和 unresolved/orphan 报告生成 | `coverage/normalized-sources.jsonl`, `coverage/dependency-closure.jsonl` | +| `INV-03a` | native runner、golden schema 和严格 oracle 通过 | `scripts/native_runner.py`, `coverage/golden-schema.json` | +| `M1-CORE-01` | 最小 protocol、Worker session 和真实 WASM smoke 通过 | `wasm-core/src/sim_protocol.c`, `web/worker/sim-session.mjs` | +| `M1-CORE-02` | 事件容量、回放、快照完整性和序列约束通过 | `wasm-core/src/sim_event.c`, `web/worker/replay.mjs` | +| `M1-FS-01` | workspace journal/recovery prepare/commit/abort 和损坏记录阻断通过 | `web/workspace/journal.mjs`, `web/workspace/recovery.mjs` | +| `M1-RT-01` | runtime error/capability mapping fail-closed 通过 | `web/worker/error-map.mjs`, `web/worker/capabilities.mjs` | +| `M1-RT-02` | 当前最近验证点;报告和脚本单测通过 | `coverage/runtime-mapping.report.json` | +| `M2-CORE-01` | posemath/TP adapter、固定浮点、segment error boundary 和 state hash 通过 | `coverage/posemath-runtime.report.json` | +| `M2-CORE-02` | 固定 ASCII 数值解析、G/M 模态、canonical 输出和失败边界通过 | `coverage/interpreter-runtime.report.json` | +| `M2-CORE-03` | 固定容量 motion queue、连续性、fixed tick 和 canonical state 通过 | `coverage/motion-runtime.report.json` | +| `M2-CORE-04` | blocked:锁定任务声明的 `linuxcnc/unit_tests/kinematics/**` 不存在 | `nextTask.md` | +| `K0-INV-01` | 35 个实现/头文件、262 个去重 KINEMATICS 入口、111 个 HAL/切换入口和 11 个实现族已登记;所有族因官方 unit-test 根缺失显式 blocked | `coverage/kinematics-source-closure.report.json` | +| `K0-INV-02` | 262 个去重后的 KINEMATICS 条目与 111 个 HAL/切换条目闭合为 373 个入口节点、2,774 条边;11 个固定 FK/IK 样本定义全部保留 blocked | `coverage/kinematics-config-graph.report.json`, `coverage/kinematics-oracle-samples.jsonl` | +| `K0-ORACLE-01` | native kinematics smoke 通过;11 个样本严格按 golden schema 输出并因缺失官方 oracle 全部 blocked,无伪造 golden | `coverage/kinematics-oracle.report.json`, `coverage/kinematics-golden-schema.json` | +| `K1-CONTRACT-01` | sim_kinematics ABI、错误码、结构体、导出集合和数值策略生成 contract 并验证;native/WASM/CTest 通过 | `coverage/kinematics-abi-contract.json` | +| `K1-CONTRACT-02` | flags、pose、duplicate-axis、home、limits、axis-to-joint mapping 和 state hash 行为已登记并由 native CTest 覆盖 | `coverage/kinematics-mapping-contract.json` | +| `K1-NUM-01` | 浮点编译、角度单位、迭代上限、容差、exact 字段和六类边界错误已固定 | `coverage/kinematics-numeric-policy.json` | +| `K2-TRIV-01` | trivkins 四种 mode、coordinates case-fold、XYZ/XYZABCUVW、重复轴和 extra-joint 行为已接入现有 slice;245 个真实配置候选已映射,官方 oracle 仍 blocked | `coverage/trivkins-integration.report.json` | +| `K2-TRIV-02` | 明确并实现 kinematics joint 前缀与 extra-joint 分离;重复轴 first-wins、joint_count mismatch、home、limit、state hash native/WASM 回归通过 | `coverage/kinematics-mapping-contract.json`, `wasm-core/tests/sim_kinematics_test.c` | +| `K2-COUPLED-01` | CoreXY、Rose、MaxKins、RotateKins 统一接入;三项 shipped 配置加一个明确标注的 rotatekins 工作区派生候选、FK/IK round-trip、CoreXY HAL/kins 入口区分、Rose quadrant/revolution continuity、Max pivot 和 Rotate 90°边界、native/WASM JSON 与 state hash 对照通过;官方 oracle 继续显式 blocked | `coverage/coupled-kinematics.report.json`, `wasm-core/src/sim_kinematics.c` | +| `K2-HAL-01` | 静态 `corexy_by_hal` 注册到 SimHAL;命令/反馈 8-pin 矩阵、servo tick 调度、alpha/beta 方向、Cartesian home 信号与 `corexykins` 入口区别由 native/WASM 对照通过;官方 oracle 继续显式 blocked | `coverage/corexy-hal.report.json`, `coverage/hal-runtime.report.json`, `wasm-core/src/sim_hal.c` | +| `K3-5AXIS-01` | `5axiskins` 接入统一 XYZBCW spherical pivot 变换;bridgemill 真实配置、`xyzbcwy` 重复 Y 映射、pivot length、FK/IK round-trip、缺必需坐标边界和 native/WASM state hash 对照通过;官方 oracle 继续显式 blocked | `coverage/fiveaxis-kinematics.report.json`, `wasm-core/src/sim_kinematics.c` | +| `K3-TRT-01` | XYZAC/XYZBC TRT 统一接入;table-rotary-tilting 两个真实 `identityfirst` 配置、旋转顺序和 offset 参数、FK/IK round-trip、B=90 奇异边界、native/WASM state hash 对照通过;switchkins 动态切换和官方 oracle 保持后续/blocked | `coverage/trt-kinematics.report.json`, `wasm-core/src/sim_kinematics.c` | +| `K3-ROBOT-01` | SCARA、PUMA、Scorbot 统一接入;scara/puma shipped 配置加 scorbot 工作区派生候选、几何参数、FK/IK 分支 round-trip、不可达/奇异边界和 native/WASM 对照通过;state hash 使用 1e-9 浮点规范化,官方 oracle 继续显式 blocked | `coverage/robot-kinematics.report.json`, `wasm-core/src/sim_kinematics.c` | +| `K3-GENSER-01` | Genser DH 六链 forward 与固定零初值阻尼 Jacobian inverse 接入;melfa/puma560 真实 DH 配置、迭代 residual/iteration、固定上限不收敛、非有限 DH 边界和 native/WASM 对照通过;官方 oracle 继续显式 blocked | `coverage/genser-kinematics.report.json`, `wasm-core/src/sim_kinematics.c` | +| `K4-DELTA-01` | Linear/rotary Delta 统一 forward/inverse/mapping;四个真实配置候选、默认/alternate root、工作空间无解、关节限位、rotary z=0 奇异、固定零迭代和 native/WASM state hash 对照通过;缺失 HAL 资源与官方 oracle 均显式 blocked | `coverage/delta-kinematics.report.json`, `wasm-core/src/sim_kinematics.c`, `scripts/generate_delta_kinematics_report.py` | +| `K4-TRIPOD-01` | Point-vertex tripod 统一 forward/inverse/mapping;真实 `tripod.ini`/`tripodsim.hal`、XYZ/AD-BD-CD 映射、above/below 根分支、无解/基面奇异/限位/退化几何边界、固定零迭代和 native/WASM state hash 对照通过;官方 oracle 因锁定来源缺少 `linuxcnc/unit_tests/kinematics/**` 继续 blocked | `coverage/tripod-kinematics.report.json`, `wasm-core/src/sim_kinematics.c`, `scripts/generate_tripod_kinematics_report.py` | +| `K4-HEX-01` | Genhex 六腿 Stewart 平台统一 forward/inverse/mapping;真实 `hexapod.ini`/`kinematics.hal`、六腿闭式逆解、Newton 6x6 正解、alternate seed、非正 strut、迭代上限、最大误差、奇异 Jacobian、限位、HAL GUI/迭代 pin 和 native/WASM state hash 对照通过;官方 oracle 因锁定来源缺少 `linuxcnc/unit_tests/kinematics/**` 继续 blocked | `coverage/genhex-kinematics.report.json`, `wasm-core/src/sim_kinematics.c`, `scripts/generate_genhex_kinematics_report.py` | + +## 追溯规则 + +- 需要精确命令时读取对应提交或 CI 产物,不把完整 stdout/stderr 粘贴进任务指针。 +- 需要验证哈希时读取 `context-lock.json` 和相应 `coverage/*.report.json`;二进制和大型 JSONL 默认不进入模型上下文。 +- 新交接只替换当前节点摘要;旧摘要保留在本索引或版本历史中,不能累积到指针文件。 diff --git a/nextTask.md b/nextTask.md index 50d2080..d0d7edd 100644 --- a/nextTask.md +++ b/nextTask.md @@ -1,380 +1,79 @@ -# LinuxCNC Web/WASM 任务接续入口 +# LinuxCNC Web/WASM 任务接续指针 -**用途**:恢复工作时唯一的任务指针,固定“从哪个节点开始”和“完成后进入哪个节点” -**更新时间**:2026-08-20 -**Context ID**:`linuxcnc-2.10.0-pre0-wasm-m0-c1` -**当前里程碑**:M0 基线锁定 -**里程碑状态**:进行中,尚未通过 M0 退出门禁 +这是恢复工作的唯一入口。它必须保持为小型、无历史的任务指针;完整日志、源码和旧交接记录均按路径按需读取。 -> 每次开始工作先读本文件。不要根据聊天记录、目录数量或演示结果推测当前任务。专项范围以文档为准,任务位置以本文件为准。 - -## 1. 接续记录 +## Current ```yaml -handoff_version: 1 -context_id: linuxcnc-2.10.0-pre0-wasm-m0-c1 -milestone: M0 -last_verified_checkpoint: M1-RT-02-r01 -current_task: - id: M2-CORE-01 - status: ready - title: posemath/TP 原生核心接入 - owner: WS-0 - profile: feature -next_task: - id: M2-CORE-02 +pointer_version: 3 +updated: 2026-08-21 +context_id: linuxcnc-2.10.0-pre0-wasm-m1-py-c1 +milestone: K4 +last_verified_checkpoint: K4-HEX-01-r01 +task: + id: K4-PENTA-01 status: pending - title: rs274ngc interpreter slice + title: pentapod integration + owner: WS-0 + profile: feature +next: + id: K5-SWITCH-01 + status: pending + title: switchkins integration owner: WS-0 profile: feature ``` -`BOOTSTRAP-M0-01` 只表示以下前置产物已验证,不表示 M0 完成: +## Read -- `context-lock.json` 已锁定 LinuxCNC 提交和当前工具链。 -- `coverage/source-index.jsonl` 与 `coverage/manifest.jsonl` 已生成 8,014 个文件级种子条目。 -- `wasm-core` bootstrap ABI 可生成 WASM,宿主 ABI 单测通过。 -- 基线、下载索引和上下文包测试通过。 +启动只读取本文件的 `Current`、`Task` 和 `Verify`。随后读取 `context-lock.json` 的摘要和当前任务列出的直接输入;不要自动加载路线图、覆盖矩阵、完整日志或 `coverage/*.jsonl`。需要历史时按需读取 [`docs/task-history.md`](docs/task-history.md),需要完整产物时使用其中的路径、大小和哈希。 -文档能力、源码符号、配置资源、测试入口、规范化关联键、依赖闭包、原生 runner 契约、Worker 最小协议、事件回放、workspace journal、错误/能力映射、Python runtime 边界和 HAL 周期组件边界已完成;M0 仍缺少影响图,M2 从 posemath/TP 原生核心接入开始。因此当前任务从 `M2-CORE-01` 继续,不能把 bootstrap 当成 M2 完成功能。 - -## 2. 开始工作时的读取顺序 - -1. 本文件:确认 `context_id`、`current_task.id`、状态和最近验证点。 -2. [`context-lock.json`](context-lock.json):确认源码提交、索引哈希、schema 和工具链没有漂移。 -3. [`docs/linuxcnc-web-wasm-context-governance.md`](docs/linuxcnc-web-wasm-context-governance.md):读取当前任务行、最小任务契约和上下文预算。 -4. [`docs/linuxcnc-web-wasm-implementation-readiness.md`](docs/linuxcnc-web-wasm-implementation-readiness.md):读取完整性定义、M0/M1 退出条件和实施顺序。 -5. [`docs/linuxcnc-web-wasm-source-map.md`](docs/linuxcnc-web-wasm-source-map.md):只读取当前任务涉及的来源规则。 - -开始修改前运行: +基线门禁(开始修改前必须通过): ```bash python3 scripts/validate_baseline.py python3 scripts/validate_download_index.py python3 -m unittest discover -s scripts -p 'test_*.py' -v +python3 scripts/validate_task_pointer.py ``` -任一命令失败时先修复或建立新的 context lock,不开始当前节点。 +生成 context packet 后,在实际模型调用前运行 `python3 scripts/validate_model_budget.py packet.json --context-window --overhead-tokens `;`--overhead-tokens` 只统计本次固定提示、工具 schema 和当前状态摘要,连续执行不得把上一轮对话累加进去。流式请求必须由 `scripts/model_stream.py` 消费;只有 `response.completed` 的 provider usage 通过 `validate_provider_response` 才能继续。断流、context overflow、usage 异常和 `length`/`max_tokens`/`max_output_tokens` 截断只保存 metadata-only checkpoint,并从更小的 packet 重新开始。 -## 3. 当前任务:M2-CORE-01 +## Task -**目标**:接入 LinuxCNC posemath 与 TP 的可移植原生核心切片,固定浮点、状态和 golden 对照入口。 +**目标**:完成 pentapod 五腿并联运动学的统一 forward/inverse/mapping 集成。 -**直接输入**: +**直接输入**:`coverage/genhex-kinematics.report.json`、`coverage/kinematics-source-closure.report.json`、`linuxcnc/src/emc/kinematics/pentakins.c`、`linuxcnc/src/emc/kinematics/pentakins.h`、`linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini`、`wasm-core/src/sim_kinematics.c`、`context-lock.json`。 -- `linuxcnc/src/libnml/posemath/**` -- `linuxcnc/src/emc/tp/**` -- `linuxcnc/unit_tests/tp/**` -- `context-lock.json` +**必须产出**:pentapod 真实/派生配置样本、五腿 FK/IK 与姿态约束、迭代收敛/不收敛/奇异/限位边界、native/WASM 对照和 blocked oracle 清单;更新迁移计划、manifest 和任务历史。 -**必须产出**: +**完成条件**:配置候选;工作空间边界、姿态约束、奇异/无解、迭代上限、关节限位和 state hash 稳定;官方 oracle 缺失继续显式 blocked。 -- `wasm-core/include/sim_posemath.h` -- `wasm-core/src/sim_posemath.c` -- `wasm-core/tests/sim_posemath_test.c` -- `coverage/posemath-runtime.report.json` -- 生成数量、输入摘要和输出 SHA-256 +**非目标**:本任务不批准替代 oracle 契约、不实现完整运动学 ABI、不接入 UI 运行时和 Python、不把配置 smoke 当作数值 golden。 -posemath/TP 切片必须固定 IEEE-754 浮点编译选项、输入 NaN/Inf/退化几何错误、单位与姿态序列化;原生参考结果和 WASM 结果通过相同 golden 字段与容差比较。 +**回滚点**:删除本任务新增 pentapod runner/golden 扩展,保留 `K4-HEX-01` 报告和 `M2-CORE-04` blocked 证据,并恢复本指针。 -**非目标**: +## Next -- 不接入 Pyodide、全量 LinuxCNC 核心或 UI;这些在后续 M1/M2/M4 节点实施。 -- 不把文档标题直接标记为 `accepted`。 -- 不接入 rs274ngc、TP、全量 LinuxCNC HAL 组件或 UI 工作流。 +完成本任务后,在同一变更中把 `next` 提升为 `Current.task`,更新 `last_verified_checkpoint` 和最近证据摘要,并重新运行 `Read` 中的门禁。不得跳过未完成依赖;同一时刻只允许一个 current task。 -**完成条件**: - -1. 相同输入连续生成两次,输出字节完全一致。 -2. 相同 pose/segment 输入连续运行产生相同 canonical JSON 和状态哈希。 -3. NaN/Inf、退化 segment、越界速度和未知运动类型都有明确阻断结果。 -4. 生成器和失败路径有自动测试。 -5. `context-lock.json` 登记新索引的数量和 SHA-256;基线校验器验证该摘要。 -6. 本文件按第 5 节完成节点切换。 - -建议验收命令: +## Verify ```bash -cmake --build build-native -ctest --test-dir build-native --output-on-failure -python3 scripts/test_posemath_runtime.py -v -python3 scripts/test_protocol.py -v -python3 scripts/validate_baseline.py -sha256sum coverage/test-entries.jsonl -``` - -**回滚点**:删除本任务新增的生成器、测试和能力索引,恢复开始任务前的 `context-lock.json` 与本文件;不得改写已有 source index 和 manifest 种子来掩盖失败。 - -## 4. 下一个任务:M2-CORE-02 - -**进入条件**:`M2-CORE-01` 的全部完成条件通过,并在本文件记录验证命令、结果和产物哈希。 - -**目标**:rs274ngc interpreter slice。 - -**预期产出**: - -- `linuxcnc/src/emc/rs274ngc/**` -- `linuxcnc/unit_tests/interp/**` -- `wasm-core/src/sim_interpreter.c` - -**完成后候选节点**:`M2-CORE-03`(canonical/motion queue)。 - -## 5. 节点切换规则 - -当前任务完成后,必须在同一个变更中更新本文件: - -1. 把 `last_verified_checkpoint` 更新为已完成任务 ID 和修订号,例如 `INV-01a-r01`。 -2. 在“已验证证据”中追加日期、精确命令、结果、产物路径、字节数和 SHA-256。 -3. 将原 `next_task` 原样提升为新的 `current_task`,状态改为 `ready`。 -4. 从 [`docs/linuxcnc-web-wasm-context-governance.md`](docs/linuxcnc-web-wasm-context-governance.md) 选择它的直接后继作为新的 `next_task`;不能跨过未完成依赖。 -5. 更新 `context-lock.json` 中受影响索引的哈希;如源码、工具链或 schema 改变,创建新 `context_id`,不能覆盖原基线含义。 -6. 重新运行第 2 节的基线命令。失败时不切换节点。 - -同一时刻只能有一个 `current_task`。`next_task` 不得提前标为 `in_progress`,并行工作必须在独立任务包中登记,不能修改本文件的主接续链。 - -## 6. 已验证证据 - -### BOOTSTRAP-M0-01(2026-08-20) - -```text -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 24 tests passed -scripts/build-wasm.sh - WASM module generated; native sim_api_test 1/1 passed -``` - -关键产物: - -- `coverage/source-index.jsonl`:7,992 行,SHA-256 `b7d12bf83ca238db889dcaa00c6d157203b6e1bb0f4d33ae0e4fa8cc2e2e8288` -- `coverage/manifest.jsonl`:7,992 行,SHA-256 `dd90d52665725547a368b11779b180d06d416fe1b4f6695b6a120c76a81061cd` -- `build-wasm/linuxcnc-sim-core.js` 和 `.wasm`:可重建产物,不进入源码基线 - -### INV-01a-r01(2026-08-20) - -```text -python3 scripts/generate_document_capabilities.py - document_capabilities=2868 -python3 scripts/test_document_capabilities.py -v - 4 tests passed -连续生成两次 - SHA-256 完全一致 -``` - -- `coverage/document-capabilities.jsonl`:2,868 行,1,286,866 字节,SHA-256 `adf5e8ffda82ac872dbd8246c4359ac94d2cab5cb11500d4663459bf1d03c787` -- 报告保留 2 个缺失的生成型 include 和 1 个空文档;没有重复 ID。 - -### INV-01b-r01(2026-08-20) - -```text -python3 scripts/generate_source_symbols.py - source_symbols=23983 -python3 scripts/test_source_symbols.py -v - 3 tests passed -``` - -- `coverage/source-symbols.jsonl`:23,983 行,SHA-256 `5fc72e6a268d2220b6335f7f6834c925f13c5c35461fa399a400e6621958875a` -- 覆盖 C/C++、Python 和 HAL `.comp` 声明;解析失败和无符号文件保留在报告中。 - -### INV-01c-r01(2026-08-20) - -```text -python3 scripts/generate_config_resources.py - config_resources=16093 -python3 scripts/test_config_resources.py -v - 3 tests passed -``` - -- 覆盖 233 个仿真 INI 入口,生成 16,093 条资源边。 -- `coverage/config-resources.jsonl` SHA-256 `d4d02cb13f2f9cb58404630d4de8ac0226e02075166fe30f2b03a6abca4be5bc` -- 报告保留 997 个 missing 引用和 91 个 unresolved/宿主变量路径。 - -### INV-01d-r01(2026-08-20) - -```text -python3 scripts/generate_test_entries.py - test_entries=321 sha256=86449838257a7aab7c9219e641a14d4493208b35d8c0cc092d1fa149352c7c37 -python3 scripts/test_test_entries.py -v - 3 tests passed -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 24 tests passed -``` - -- `coverage/test-entries.jsonl`:321 条,SHA-256 `86449838257a7aab7c9219e641a14d4493208b35d8c0cc092d1fa149352c7c37` -- `coverage/test-entries.report.json`:214 shell、86 oracle、12 stream、1 Python、3 Meson build、5 unit source;24 条 `REAL-EXCLUDED`、65 条 `needs_review`。 -- 所有入口 ID 唯一,连续生成输出字节一致;硬件/实时依赖未被删除或伪装成可移植。 - -### INV-02a-r01(2026-08-20) - -```text -python3 scripts/normalize_sources.py - normalized_sources=51257 sha256=b377df306f47d84b6cb42509c061c7ce8848c675b32899ab0004fe36a7df35ff -python3 scripts/test_normalize_sources.py -v - 3 tests passed -``` - -- `coverage/normalized-sources.jsonl`:51,257 条,SHA-256 `64892fb51228f856c15fe31a55a5a619809013aa5db7325ad8dac390c5205edd` -- `coverage/normalized-sources.report.json`:51,257 个唯一规范化 ID;3 个重复原始资源 ID 以 `~dupN` 保留,0 个哈希冲突,0 个非预期缺失路径。 - -### INV-02a-r02(2026-08-20) - -```text python3 scripts/generate_source_inventory.py - source_index=8003 manifest_seed=8003 -python3 scripts/normalize_sources.py - normalized_sources=51268 sha256=a9bb2d50952c52b3f3d1bd50e7dc7654cb3831f28ff8147d9c1fc493ebbe80cb -``` - -- 新增 `wasm-core/**` 与 `web/**` 实现文件已登记;`coverage/normalized-sources.jsonl` 当前为 51,268 条。 - -### INV-02b-r01(2026-08-20) - -```text -python3 scripts/generate_dependency_closure.py - dependency_edges=37160 sha256=39ab6b831f4eb53347dbb509855ca05bc557e25abc5d76837c45ce037a3e44a9 -python3 scripts/test_dependency_closure.py -v - 3 tests passed +python3 scripts/generate_kinematics_closure_report.py +python3 scripts/generate_kinematics_config_graph.py +python3 scripts/generate_kinematics_oracle_report.py +cmake --build build-native && ctest --test-dir build-native --output-on-failure python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid +python3 scripts/validate_task_pointer.py python3 -m unittest discover -s scripts -p 'test_*.py' -v - 30 tests passed +find linuxcnc/src/emc/kinematics -maxdepth 1 -type f -print | sort +rg -n --glob '*.ini' --glob '*.hal' --glob '*.py' 'KINEMATICS|loadrt .*kins|switchkins|corexy_by_hal' linuxcnc/configs/sim linuxcnc/tests ``` -- `coverage/dependency-closure.jsonl`:37,160 条边,SHA-256 `39ab6b831f4eb53347dbb509855ca05bc557e25abc5d76837c45ce037a3e44a9` -- 报告:35,685 条已解析、1,475 条明确 unresolved/missing、74 条重复边、28,897 个无连接孤儿节点;未删除任何缺失引用。 +最近证据:`coverage/genhex-kinematics.report.json` 已验证真实 hexapod-sim 配置、六腿闭式逆解、Newton 6x6 正解、alternate seed、迭代/奇异/限位边界、native/WASM 字节一致和 state hash 一致;缺失 `linuxcnc/unit_tests/kinematics/**` 官方 oracle 继续显式 blocked。下一任务处理 `pentakins.c` 五腿并联约束。 -### INV-03a-r01(2026-08-20) +## Stop -```text -python3 scripts/native_runner.py --self-test - native_runner=self-test status=passed -python3 scripts/test_native_runner.py -v - 3 tests passed -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 33 tests passed -bash scripts/build-wasm.sh - WASM module generated; native sim_api_test 1/1 passed -``` - -- `scripts/native_runner.py`:固定 `PATH/HOME/LANG/TZ/PYTHONHASHSEED`,固定 cwd,输出退出码、输出摘要、artifact 哈希和严格 oracle 状态。 -- `coverage/golden-schema.json` SHA-256 `5513535b9480d7100ef3ef59ac933c4040bd7198dc419693a7ee68098171c423` -- `coverage/native-runner.report.json` SHA-256 `6f2105f154d12b99f4e1cd4af3cdb5df4a462f3665f1447d5959384be5d4fae2` -- `REAL-EXCLUDED` 和 `needs_review` 默认阻断;缺失/错误 golden 不会被当作通过。 - -### M1-CORE-01-r01(2026-08-20) - -```text -bash scripts/build-wasm.sh - WASM module generated; native sim_api_test 1/1 and sim_protocol_test 1/1 passed -python3 scripts/test_protocol.py -v - 5 tests passed -node web/worker/test_sim_session.mjs - sim_session=passed -node web/worker/test_wasm_session.mjs - wasm_session=passed tick=11 -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 38 tests passed -``` - -- `wasm-core/include/sim_protocol.h` / `sim_protocol.c`:schema 1、严格递增 seq、非递减 tick、生命周期状态机和 side-effect `operation_id` 校验。 -- `web/worker/sim-session.mjs` / `sim-worker.mjs`:HELLO/CAPABILITIES、SESSION_ATTACH/READY、LOAD_WORKSPACE、SIM_STEP、SNAPSHOT_REQUEST、DESTROY envelope;默认拒绝上下文/序列/路径错误。 -- WASM 导出新增 `_sim_protocol_*`、`_malloc`/`_free`;真实模块 Node smoke 验证固定 tick 与错误缺号。 - -### M1-CORE-02-r01(2026-08-20) - -```text -bash scripts/build-wasm.sh - WASM module generated; native sim_api_test 1/1, sim_protocol_test 1/1, sim_event_test 1/1 passed -ctest --test-dir build-native --output-on-failure - 3 tests passed -node web/worker/test_replay.mjs - replay=passed cursor=3 tick=9 -node web/worker/test_wasm_session.mjs - wasm_session=passed tick=11 -python3 scripts/test_protocol.py -v - 6 tests passed -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 39 tests passed -``` - -- `wasm-core/include/sim_event.h` / `sim_event.c`:固定 256 条事件容量、严格 seq/tick、FNV-1a payload hash、容量查询、导出/导入和损坏长度拒绝。 -- `web/worker/replay.mjs`:`event-log.v1`、`snapshot.v1`、base snapshot 链、内容哈希和终点回放校验;缺号、错误基线和篡改快照均阻断。 -- `coverage/source-index.jsonl`:8,008 行,SHA-256 `59c6b71419a56cee47337946f5089314d172cecac725db7632636d9dc2f05fa1` -- `coverage/manifest.jsonl`:8,008 行,SHA-256 `780fc1d9260b1fbd4f946fc93c106b3c50df9b5ce065a50d40bcf9405fba0aeb` -- `coverage/document-capabilities.jsonl`:2,868 行,SHA-256 `fa5140bd4995224406381e4190e76bf81f64bd24dbf93a2fd10421c45aee4316` -- `coverage/normalized-sources.jsonl`:51,273 行,SHA-256 `4dd3c0b3adfb4e71db899213f35b084a0d8d0d71a6f6caafbd7a434abcf174ed` - -### M1-FS-01-r01(2026-08-20) - -```text -node web/workspace/test_recovery.mjs - workspace_recovery=passed commit=1 -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 39 tests passed -bash scripts/build-wasm.sh - WASM module generated; native sim_api_test 1/1, sim_protocol_test 1/1, sim_event_test 1/1 passed -node web/worker/test_replay.mjs - replay=passed cursor=3 tick=9 -node web/worker/test_wasm_session.mjs - wasm_session=passed tick=11 -``` - -- `web/workspace/journal.mjs` / `recovery.mjs`:`prepare/commit/abort` append-only records、规范化路径、data/content hash、半提交忽略、损坏 commit 阻断和恢复状态 hash。 -- `coverage/workspace-recovery.report.json` SHA-256 `88dd1d851d487730edc6beb034a934ba1c19346312ed3cd4d4893c7259c431de` -- `coverage/source-index.jsonl` 当前 8,011 行;`coverage/normalized-sources.jsonl` 当前 51,276 行,哈希已登记在 context lock。 - -### M1-RT-01-r01(2026-08-20) - -```text -node web/worker/test_runtime_mapping.mjs - runtime_mapping=passed errors=18 exclusions=3 -python3 scripts/validate_baseline.py - baseline=valid -python3 scripts/validate_download_index.py - download_index=valid -python3 -m unittest discover -s scripts -p 'test_*.py' -v - 39 tests passed -bash scripts/build-wasm.sh - WASM module generated; native sim_api_test 1/1, sim_protocol_test 1/1, sim_event_test 1/1 passed -``` - -- `web/worker/error-map.mjs`:18 个核心/协议/事件错误码统一到 code、message_key、category、retryable、operation_id、simulation_tick、source。 -- `web/worker/capabilities.mjs`:10 个 limits、10 个受控命令、3 个 `REAL-EXCLUDED` 替代策略;未知项和超限值 fail-closed。 -- `coverage/runtime-mapping.report.json` SHA-256 `f4be10828fda8201ff9e69de95bc68e5def42fc7206a851b37474c21b4da0a17` - -## 7. 停止条件 - -出现以下任一情况时停止当前任务并记录阻断,不自行跳到下一个节点: - -- `linuxcnc` 提交不再是 context lock 中的提交。 -- 当前任务需要修改 ABI、协议或 manifest schema,但没有迁移方案。 -- 必需输入缺失、索引无法确定性生成或来源存在无法解释的孤儿项。 -- 为完成文档索引需要同时实现运行时功能。 -- 验证失败只能通过删除样本、降低检查或标记 `REAL-EXCLUDED` 才能通过。 - -本文件只保存当前节点、下一节点和最近可验证证据,不复制完整历史。更早的任务历史通过 context packet、产物路径和哈希追溯。 +若 LinuxCNC 提交偏离 lock、必需输入缺失、需要未审查的 ABI/protocol/manifest schema 变化、索引无法确定性生成,或测试只能靠删样本/降低检查/伪装 `REAL-EXCLUDED` 才通过,立即记录为 blocked,不跳到下一个节点。 diff --git a/scripts/build-wasm.sh b/scripts/build-wasm.sh index 604b7bf..dd22e83 100755 --- a/scripts/build-wasm.sh +++ b/scripts/build-wasm.sh @@ -7,6 +7,8 @@ native_build_dir="${repo_root}/build-native" emcmake cmake -S "${repo_root}/wasm-core" -B "${build_dir}" -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build "${build_dir}" +node "${build_dir}/sim_kinematics_wasm_test.js" +node "${build_dir}/sim_hal_wasm_test.js" cmake -S "${repo_root}/wasm-core" -B "${native_build_dir}" -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build "${native_build_dir}" @@ -14,3 +16,5 @@ ctest --test-dir "${native_build_dir}" --output-on-failure printf 'wasm_build=%s\n' "${build_dir}/linuxcnc-sim-core.js" printf 'native_test=%s\n' "${native_build_dir}/sim_api_test" printf 'native_protocol_test=%s\n' "${native_build_dir}/sim_protocol_test" +printf 'wasm_kinematics_test=%s\n' "${build_dir}/sim_kinematics_wasm_test.js" +printf 'wasm_hal_test=%s\n' "${build_dir}/sim_hal_wasm_test.js" diff --git a/scripts/context_packet.py b/scripts/context_packet.py index 2f82815..f951504 100644 --- a/scripts/context_packet.py +++ b/scripts/context_packet.py @@ -10,6 +10,7 @@ from __future__ import annotations import argparse import hashlib import json +import math import sys from dataclasses import dataclass from pathlib import Path @@ -34,8 +35,13 @@ EXCLUSION_REASONS = { "E3": "evidence_file_count_exceed_budget", "E4": "evidence_bytes_exceed_budget", "E5": "context_remaining_bytes_insufficient", + "E6": "token_budget_exceeded", } +# Without a provider tokenizer, one UTF-8 byte per token is the only portable +# hard upper bound. The request validator can replace it with an exact count. +TOKEN_BYTES_PER_TOKEN = 1 + class PacketError(ValueError): """Raised when a packet cannot be generated without violating a budget.""" @@ -115,6 +121,12 @@ def _context_bytes(packet: dict[str, Any], evidence_used: int) -> int: return _packet_bytes(packet) + evidence_used +def _estimate_tokens(packet_bytes: int, evidence_bytes: int) -> int: + """Return a conservative, provider-neutral input token estimate.""" + + return math.ceil((packet_bytes + evidence_bytes) / TOKEN_BYTES_PER_TOKEN) + + def _finalize_packet_size(packet: dict[str, Any]) -> int: """Store the self-consistent serialized size in the budget metadata.""" @@ -166,6 +178,7 @@ def generate_packet( context_id: str, packet_id: str, profile: str = "feature", + token_limit: int | None = None, total_bytes: int | None = None, evidence_bytes: int | None = None, max_files: int | None = None, @@ -177,12 +190,27 @@ def generate_packet( raise PacketError(f"unknown profile: {profile}") limits = dict(PROFILES[profile]) limits["profile"] = profile - if total_bytes is not None: - limits["bytes"] = int(total_bytes) - if evidence_bytes is not None: - limits["evidence_bytes"] = int(evidence_bytes) - if max_files is not None: - limits["files"] = int(max_files) + # Overrides are intentionally one-way: a task may ask for a smaller + # packet, but it must not enlarge a profile and silently bypass the + # context-window policy enforced by the request validator. + overrides = { + "tokens": token_limit, + "bytes": total_bytes, + "evidence_bytes": evidence_bytes, + "files": max_files, + } + for key, value in overrides.items(): + if value is None: + continue + value = int(value) + if value < 0: + raise PacketError("budgets must be non-negative") + if value > limits[key]: + raise PacketError( + f"{key} budget override exceeds profile " + f"(requested={value}, profile={limits[key]})" + ) + limits[key] = value if any(limits[key] < 0 for key in ("tokens", "bytes", "evidence_bytes", "files")): raise PacketError("budgets must be non-negative") @@ -227,10 +255,15 @@ def generate_packet( trial["budget"] = _budget_metadata( limits, trial_selected, excluded, evidence_used + candidate.size ) - # This check is intentionally performed before selection is committed. - trial_context_bytes = _context_bytes(trial, evidence_used + candidate.size) + # Finalize the trial before checking budgets. In particular, do + # not estimate tokens from the provisional byte-limit placeholder + # in budget.packet_bytes. + trial_packet_bytes = _finalize_packet_size(trial) + trial_context_bytes = trial_packet_bytes + evidence_used + candidate.size if trial_context_bytes > limits["bytes"]: reason = "E5" + elif _estimate_tokens(trial_packet_bytes, evidence_used + candidate.size) > limits["tokens"]: + reason = "E6" if reason: excluded.append({"path": candidate.path, "reason_code": reason}) if candidate.required: @@ -247,7 +280,12 @@ def generate_packet( packet["budget"] = _budget_metadata(limits, selected, excluded, evidence_used) packet_bytes = _finalize_packet_size(packet) context_bytes = packet_bytes + evidence_used - if packet_bytes <= limits["bytes"] and context_bytes <= limits["bytes"]: + over_bytes = packet_bytes > limits["bytes"] or context_bytes > limits["bytes"] + over_tokens = _estimate_tokens(packet_bytes, evidence_used) > limits["tokens"] + if ( + not over_bytes + and not over_tokens + ): break removable_index = next( (index for index in range(len(selected) - 1, -1, -1) @@ -256,12 +294,15 @@ def generate_packet( None, ) if removable_index is None: - raise PacketError("context skeleton and required evidence exceed byte budget") + budget_kind = "byte" if over_bytes else "token" + raise PacketError( + f"context skeleton and required evidence exceed {budget_kind} budget" + ) removed = selected.pop(removable_index) evidence_used -= int(removed["bytes"]) excluded.append({ "path": removed["path"], - "reason_code": "E5", + "reason_code": "E5" if over_bytes else "E6", }) return packet @@ -282,6 +323,7 @@ def main(argv: Iterable[str] | None = None) -> int: parser.add_argument("--packet-id", required=True) parser.add_argument("--profile", choices=sorted(PROFILES), default="feature") parser.add_argument("--base-dir", type=Path, default=Path(".")) + parser.add_argument("--token-limit", type=int) parser.add_argument("--total-bytes", type=int) parser.add_argument("--evidence-bytes", type=int) parser.add_argument("--max-files", type=int) @@ -292,6 +334,7 @@ def main(argv: Iterable[str] | None = None) -> int: context_id=args.context_id, packet_id=args.packet_id, profile=args.profile, + token_limit=args.token_limit, total_bytes=args.total_bytes, evidence_bytes=args.evidence_bytes, max_files=args.max_files, @@ -305,7 +348,7 @@ def main(argv: Iterable[str] | None = None) -> int: if len(payload) != packet["budget"]["packet_bytes"]: raise PacketError("serialized packet size changed before write") temporary.replace(args.output) - except (PacketError, OSError, json.JSONDecodeError) as exc: + except (PacketError, OSError, TypeError, ValueError, json.JSONDecodeError) as exc: print(f"context packet generation failed: {exc}", file=sys.stderr) return 2 return 0 diff --git a/scripts/generate_corexy_hal_report.py b/scripts/generate_corexy_hal_report.py new file mode 100644 index 0000000..acdc7b1 --- /dev/null +++ b/scripts/generate_corexy_hal_report.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +"""Generate deterministic native/WASM evidence for corexy_by_hal.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + + +INPUTS = { + "component": "linuxcnc/src/hal/components/corexy_by_hal.comp", + "ini": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "hal": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "kins_ini": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "hal_header": "wasm-core/include/sim_hal.h", + "hal_source": "wasm-core/src/sim_hal.c", + "hal_test": "wasm-core/tests/sim_hal_test.c", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_sample(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a HAL sample") + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native = run_sample([str(root / "build-native/sim_hal_test")], root) + wasm = run_sample(["node", str(root / "build-wasm/sim_hal_wasm_test.js")], root) + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + native_json = json.dumps(native, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + wasm_json = json.dumps(wasm, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + hal_text = (root / INPUTS["hal"]).read_text(encoding="utf-8") + comp_text = (root / INPUTS["component"]).read_text(encoding="utf-8") + ini_text = (root / INPUTS["ini"]).read_text(encoding="utf-8") + kins_ini_text = (root / INPUTS["kins_ini"]).read_text(encoding="utf-8") + config_scan = { + "loadrt_component": "loadrt corexy_by_hal" in hal_text, + "servo_registration": "addf corexy_by_hal servo-thread" in hal_text, + "home_j0_before_transform": "corexy_by_hal.j0-motor-pos-cmd" in hal_text and "=> j0home.cur-pos" in hal_text, + "home_j1_before_transform": "corexy_by_hal.j1-motor-pos-cmd" in hal_text and "=> j1home.cur-pos" in hal_text, + "alpha_command_to_stepgen": "corexy_by_hal.alpha-cmd" in hal_text and "=> stepgen.0.position-cmd" in hal_text, + "beta_command_to_stepgen": "corexy_by_hal.beta-cmd" in hal_text and "<= stepgen.1.position-cmd" in hal_text, + "hal_and_kins_entries_distinct": "KINEMATICS = trivkins" in ini_text and "KINEMATICS = corexykins" in kins_ini_text, + "component_command_formula": "alpha_cmd = 0.5*(j0_motor_pos_cmd + j1_motor_pos_cmd);" in comp_text and "beta_cmd = 0.5*(j0_motor_pos_cmd - j1_motor_pos_cmd);" in comp_text, + "component_feedback_formula": "j0_motor_pos_fb = alpha_fb + beta_fb;" in comp_text and "j1_motor_pos_fb = alpha_fb - beta_fb;" in comp_text, + } + report = { + "schema": "corexy-hal-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "component": { + "name": "corexy_by_hal", + "pins": [ + "j0-motor-pos-cmd", "j1-motor-pos-cmd", "alpha-cmd", "beta-cmd", + "alpha-fb", "beta-fb", "j0-motor-pos-fb", "j1-motor-pos-fb", + ], + "thread": "servo-thread", + "period": "fixed HAL tick", + }, + "transform": { + "command": {"alpha": "0.5*(j0+j1)", "beta": "0.5*(j0-j1)"}, + "feedback": {"j0": "alpha+beta", "j1": "alpha-beta"}, + "sample": {"j0": 6.0, "j1": 2.0, "alpha": 4.0, "beta": 2.0, "alpha_fb": 4.0, "beta_fb": 1.0, "j0_fb": 5.0, "j1_fb": 3.0}, + "direction": "verified against LinuxCNC corexy_by_hal.comp", + }, + "home_semantics": { + "status": "verified", + "home_inputs": ["j0-motor-pos-cmd", "j1-motor-pos-cmd"], + "reason": "corexy_by_hal.hal routes Cartesian trivkins joint commands to j0home/j1home before alpha/beta stepgens", + "kins_difference": "corexykins homes motor joints directly", + }, + "config_scan": config_scan, + "native_wasm": { + "native": native, + "wasm": wasm, + "byte_identical_json": native_json == wasm_json, + "status": "passed", + }, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/corexy-hal.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"corexy_hal={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_coupled_kinematics_report.py b/scripts/generate_coupled_kinematics_report.py new file mode 100644 index 0000000..ae3aebd --- /dev/null +++ b/scripts/generate_coupled_kinematics_report.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 +"""Generate native/WASM evidence for the CoreXY, Rose, MaxKins and RotateKins slice.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + + +SOURCES = { + "corexy": "linuxcnc/src/emc/kinematics/corexykins.c", + "rose": "linuxcnc/src/emc/kinematics/rosekins.c", + "maxkins": "linuxcnc/src/emc/kinematics/maxkins.c", + "rotatekins": "linuxcnc/src/emc/kinematics/rotatekins.c", +} +CONFIGS = { + "corexy_kins": "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "corexy_hal": "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "rose": "linuxcnc/configs/sim/axis/rose_engine/rose_engine.ini", + "maxkins": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", + "rotatekins": "linuxcnc/configs/sim/axis/rotate/rotatekins.ini", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_json(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + line = line.strip() + if line.startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a JSON sample") + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + closure = json.loads((root / "coverage/kinematics-source-closure.report.json").read_text(encoding="utf-8")) + native = run_json([str(root / "build-native/sim_kinematics_test")], root) + wasm = run_json(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native_text = json.dumps(native, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + wasm_text = json.dumps(wasm, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + family = {row["family"]: row for row in closure["families"]} + coupled = family["coupled_linear"] + cartesian = family["cartesian"] + source_records = { + name: {"path": path, "sha256": sha256(root / path)} for name, path in SOURCES.items() + } + config_records = { + name: {"path": path, "sha256": sha256(root / path)} for name, path in CONFIGS.items() + } + report = { + "schema": "coupled-kinematics-report.v1", + "context_id": closure["context_id"], + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration_candidates": config_records, + "configuration_candidate_origin": {"rotatekins": "workspace_derived_fixture; LinuxCNC locked source has no shipped rotatekins config"}, + "families": { + "corexy": {"forward": "X=0.5*(J0+J1), Y=0.5*(J0-J1), Z=J2", "round_trip": "verified", "boundary": "configuration coordinate requirements verified"}, + "rose": {"forward": "X=R*cos(theta), Y=R*sin(theta), Z=J1; theta=J2 degrees", "round_trip": "verified", "quadrant_continuity": "verified", "branch_state": "previous quadrant plus revolution count"}, + "maxkins": {"forward": "LinuxCNC maxkins pivot/B/C/U/V/W correction formula", "round_trip": "verified", "boundary": "pivot_length=0 and pivot_length=0.666 verified"}, + "rotatekins": {"forward": "XY rotation by -C degrees; Z and optional axes direct", "round_trip": "verified", "boundary": "90 degree rotation verified"}, + }, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": native_text == wasm_text}, + "state_hash": { + "native": {name: native[name]["state_hash"] for name in ("corexy", "rose", "maxkins", "rotatekins")}, + "wasm": {name: wasm[name]["state_hash"] for name in ("corexy", "rose", "maxkins", "rotatekins")}, + "stable": native_text == wasm_text, + }, + "corexy_entry_distinction": { + "kins_configuration": CONFIGS["corexy_kins"], + "hal_configuration": CONFIGS["corexy_hal"], + "hal_component": "linuxcnc/src/hal/components/corexy_by_hal.comp", + "distinct": True, + }, + "closure": { + "coupled_linear_source_ids": coupled["source_ids"], + "max_rotate_source_ids": [source_records["maxkins"]["path"], source_records["rotatekins"]["path"]], + "official_oracle": "blocked", + "blocking_reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", + "cartesian_candidate_ids": cartesian["configuration_ids"][:8], + }, + "native_wasm": {"native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js", "status": "passed"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/coupled-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"coupled_kinematics={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['closure']['official_oracle']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_delta_kinematics_report.py b/scripts/generate_delta_kinematics_report.py new file mode 100644 index 0000000..e1d39c1 --- /dev/null +++ b/scripts/generate_delta_kinematics_report.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +"""Generate deterministic native/WASM evidence for linear and rotary Delta.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + +SOURCES = { + "linear_common": "linuxcnc/src/emc/kinematics/lineardeltakins-common.h", + "linear_c": "linuxcnc/src/emc/kinematics/lineardeltakins.c", + "linear_cc": "linuxcnc/src/emc/kinematics/lineardeltakins.cc", + "rotary_common": "linuxcnc/src/emc/kinematics/rotarydeltakins-common.h", + "rotary_c": "linuxcnc/src/emc/kinematics/rotarydeltakins.c", + "rotary_cc": "linuxcnc/src/emc/kinematics/rotarydeltakins.cc", + "implementation": "wasm-core/src/sim_kinematics.c", + "header": "wasm-core/include/sim_kinematics.h", + "test": "wasm-core/tests/sim_kinematics_test.c", +} +CONFIGS = { + "linear_axis": "linuxcnc/configs/sim/axis/ldelta.ini", + "linear_demo": "linuxcnc/configs/sim/axis/ldelta_demo.ini", + "linear_tklinuxcnc": "linuxcnc/configs/sim/tklinuxcnc/ldelta.ini", + "rotary_axis": "linuxcnc/configs/sim/axis/rdelta.ini", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_json(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.lstrip().startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a JSON sample") + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native = run_json([str(root / "build-native/sim_kinematics_test")], root) + wasm = run_json(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native_delta = {key: native[key] for key in ("lineardelta", "rotarydelta", "delta_edges")} + wasm_delta = {key: wasm[key] for key in ("lineardelta", "rotarydelta", "delta_edges")} + native_text = json.dumps(native_delta, sort_keys=True, separators=(",", ":")) + wasm_text = json.dumps(wasm_delta, sort_keys=True, separators=(",", ":")) + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in SOURCES.items()} + config_records = {} + missing_hal = [] + for name, path in CONFIGS.items(): + text = (root / path).read_text(encoding="utf-8") + hal_refs = [line.split("=", 1)[1].strip() for line in text.splitlines() if line.strip().startswith("HALFILE") and "=" in line] + missing = [str((Path(path).parent / ref).as_posix()) for ref in hal_refs if not (root / Path(path).parent / ref).is_file()] + missing_hal.extend(missing) + config_records[name] = { + "path": path, + "sha256": sha256(root / path), + "kinematics": "rotarydeltakins" if "rdelta" in path else "lineardeltakins", + "hal_files": hal_refs, + "missing_hal_files": sorted(missing), + } + edges = native_delta["delta_edges"] + report = { + "schema": "delta-kinematics-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration_candidates": config_records, + "configuration_candidate_count": len(config_records), + "geometry": { + "linear": {"radius": 130.25, "rod_length": 269.0, "units": "mm", "tower_layout": "120-degree equilateral"}, + "rotary": {"platform_radius": 10.0, "thigh_length": 10.0, "shin_length": 14.0, "foot_radius": 6.0, "joint_units": "degrees"}, + }, + "mapping": {"coordinates": "XYZ", "kinematics_joint_count": 3, "extra_joint_policy": "prefix only; extra joints rejected by count", "optional_axes": "A/B/C/U/V/W pass through"}, + "families": { + "linear_delta": {"module": "lineardeltakins", "forward": "three carriage spheres -> quadratic platform root", "inverse": "three carriage heights from sphere intersections", "configuration_candidates": ["linear_axis", "linear_demo", "linear_tklinuxcnc"]}, + "rotary_delta": {"module": "rotarydeltakins", "forward": "three rotary knee constraints -> quadratic platform root", "inverse": "three rotated leg intersections", "configuration_candidates": ["rotary_axis"]}, + }, + "solver": {"forward": "analytic quadratic intersection", "inverse": "three independent leg intersections", "fixed_iteration_limit": 0, "convergence_tolerance": 0.0, "default_root": 0, "alternate_root_flag": "SIM_KIN_DELTA_ALTERNATE_ROOT bit 0"}, + "workspace_and_boundaries": { + "linear": {"nominal": native_delta["lineardelta"]["pose"], "alternate_root_pose": edges["lineardelta"]["alternate_pose"], "no_solution_error": edges["lineardelta"]["no_solution"], "joint_limit_error": edges["lineardelta"]["limit_error"], "geometry_error": edges["lineardelta"]["geometry_error"], "root_branch": edges["lineardelta"]["branch"], "alternate_branch": edges["lineardelta"]["alternate_branch"], "iterations": edges["lineardelta"]["iterations"]}, + "rotary": {"nominal": native_delta["rotarydelta"]["pose"], "alternate_root_pose": edges["rotarydelta"]["alternate_pose"], "singular_error": edges["rotarydelta"]["singular"], "geometry_error": edges["rotarydelta"]["geometry_error"], "root_branch": edges["rotarydelta"]["branch"], "alternate_branch": edges["rotarydelta"]["alternate_branch"], "iterations": edges["rotarydelta"]["iterations"]}, + }, + "samples": {"native": native_delta, "wasm": wasm_delta, "byte_identical_json": native_text == wasm_text, "state_hash_identical": native_delta["lineardelta"]["state_hash"] == wasm_delta["lineardelta"]["state_hash"] and native_delta["rotarydelta"]["state_hash"] == wasm_delta["rotarydelta"]["state_hash"]}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "blocked_samples": ["linear nominal/root", "linear alternate root", "linear no-solution", "linear joint-limit", "rotary nominal/root", "rotary alternate root", "rotary z=0 singular"]}, + "resource_gaps": {"missing_hal_files": sorted(set(missing_hal)), "policy": "retained as missing inputs; no configuration smoke is promoted to numeric golden"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/delta-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"delta_kinematics={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_fiveaxis_report.py b/scripts/generate_fiveaxis_report.py new file mode 100644 index 0000000..f2c0ec4 --- /dev/null +++ b/scripts/generate_fiveaxis_report.py @@ -0,0 +1,101 @@ +#!/usr/bin/env python3 +"""Generate native/WASM evidence for LinuxCNC 5axiskins.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + + +INPUTS = { + "source": "linuxcnc/src/emc/kinematics/5axiskins.c", + "config": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", + "hal": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal", + "header": "wasm-core/include/sim_kinematics.h", + "source_impl": "wasm-core/src/sim_kinematics.c", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_sample(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a kinematics sample") + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_sample([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_sample(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native = native_all["fiveaxiskins"] + wasm = wasm_all["fiveaxiskins"] + config_text = (root / INPUTS["config"]).read_text(encoding="utf-8") + source_text = (root / INPUTS["source"]).read_text(encoding="utf-8") + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + native_json = json.dumps(native, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + wasm_json = json.dumps(wasm, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + report = { + "schema": "fiveaxis-kinematics-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration": { + "path": INPUTS["config"], + "kinematics": "5axiskins", + "coordinates": "xyzbcwy", + "joints": 7, + "pivot_length_default": 250.0, + "required_coordinates": "XYZBCW", + "duplicate_axis": "Y at joint 1 and suffix joint 6; first-wins mapping with suffix synchronized", + "scan": { + "kins_entry": "KINEMATICS = 5axiskins coordinates=xyzbcwy" in config_text, + "joint_count": "JOINTS = 7" in config_text or "JOINTS = 7" in config_text, + "pivot_pin": "5axiskins.pivot-length" in (root / INPUTS["hal"]).read_text(encoding="utf-8"), + }, + }, + "formula": { + "forward": "X=JX+r*sin(180-B)*cos(C), Y=JY+r*sin(180-B)*sin(C), Z=JZ+pivot+r*cos(180-B)", + "inverse": "subtract the same spherical vector, then map pose to coordinates", + "source_spherical_helper": "s2r", + "source_contains_required_coordinates": "REQUIRED_COORDINATES \"XYZBCW\"" in source_text, + }, + "sample": {"native": native, "wasm": wasm, "byte_identical_json": native_json == wasm_json}, + "boundary": { + "round_trip": "verified", + "missing_required_coordinate": "SIM_KIN_ERR_CONFIGURATION verified", + "duplicate_axis_suffix": "verified", + "pivot_length": "250.0 verified", + "state_hash": "native/WASM identical", + }, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source"}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/fiveaxis-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"fiveaxis={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_genhex_kinematics_report.py b/scripts/generate_genhex_kinematics_report.py new file mode 100644 index 0000000..37f778c --- /dev/null +++ b/scripts/generate_genhex_kinematics_report.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +"""Generate deterministic native/WASM evidence for the generalized hexapod.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +import subprocess +from pathlib import Path + +INPUTS = { + "source": "linuxcnc/src/emc/kinematics/genhexkins.c", + "header": "linuxcnc/src/emc/kinematics/genhexkins.h", + "config": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", + "hal": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal", + "implementation": "wasm-core/src/sim_kinematics.c", + "kinematics_header": "wasm-core/include/sim_kinematics.h", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_json(command: list[str], root: Path) -> dict[str, object]: + result = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if result.returncode: + raise RuntimeError(f"{command[0]} exited {result.returncode}: {result.stderr.strip()}") + for line in reversed(result.stdout.splitlines()): + if line.lstrip().startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit JSON") + + +def parse_hal(path: Path) -> dict[str, object]: + values: dict[str, list[float]] = {"base": [], "platform": []} + for line in path.read_text(encoding="utf-8").splitlines(): + match = re.match(r"setp\s+genhexkins\.(base|platform)\.(\d+)\.(x|y|z)\s+([-+0-9.eE]+)", line) + if match: + values.setdefault(match.group(1), []).append(float(match.group(4))) + return values + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_json([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_json(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native = {"genhex": native_all["genhex"], "boundaries": native_all["delta_edges"]["genhex"]} + wasm = {"genhex": wasm_all["genhex"], "boundaries": wasm_all["delta_edges"]["genhex"]} + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + config_text = (root / INPUTS["config"]).read_text(encoding="utf-8") + report = { + "schema": "genhex-kinematics-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration_candidate": { + "path": INPUTS["config"], + "kinematics": "genhexkins", + "joints": 6, + "coordinates": "XYZABC", + "scan": "KINEMATICS = genhexkins" in config_text and "JOINTS = 6" in config_text, + "hal_geometry": parse_hal(root / INPUTS["hal"]), + "hal_pins": ["last-iterations", "max-iterations", "limit-iterations", "max-error", "convergence-criterion", "fwd-kins-fail", "x", "y", "z", "a", "b", "c"], + }, + "geometry": { + "struts": 6, + "base_points": [[-22.950, 13.250, 0.0], [22.950, 13.250, 0.0], [22.950, 13.250, 0.0], [0.0, -26.500, 0.0], [0.0, -26.500, 0.0], [-22.950, 13.250, 0.0]], + "platform_points": [[-1.0, 11.5, 0.0], [1.0, 11.5, 0.0], [10.459, -4.884, 0.0], [9.459, -6.616, 0.0], [-9.459, -6.616, 0.0], [-10.459, -4.884, 0.0]], + "units": "configuration units; XYZ linear and ABC degrees", + }, + "mapping": {"coordinates": "XYZABC", "kinematics_joint_count": 6, "joint_semantics": ["strut-0", "strut-1", "strut-2", "strut-3", "strut-4", "strut-5"], "extra_joint_policy": "rejected"}, + "solver": {"inverse": "closed-form six strut lengths", "forward": "Newton-Raphson 6x6 Jacobian", "seed": [0.0, 0.0, 50.0, 0.0, 0.0, 0.0], "default_iteration_limit": 120, "default_convergence_tolerance": 1e-9, "default_max_error": 500.0, "alternate_seed_flag": "SIM_KIN_GENHEX_ALTERNATE_SEED bit 1"}, + "workspace_and_boundaries": {"nominal": native["genhex"], "alternate_seed": native["boundaries"]["alternate_pose"], "nonpositive_joint_error": native["boundaries"]["nonpositive"], "iteration_limit_error": native["boundaries"]["iteration_limit"], "max_error_boundary": native["boundaries"]["max_error"], "singular_jacobian_error": native["boundaries"]["singular"], "joint_limit_error": native["boundaries"]["limit_error"], "iterations": native["genhex"]["iterations"], "residual": native["genhex"]["residual"]}, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": json.dumps(native, sort_keys=True, separators=(",", ":")) == json.dumps(wasm, sort_keys=True, separators=(",", ":")), "state_hash_identical": native["genhex"]["state_hash"] == wasm["genhex"]["state_hash"]}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "blocked_samples": ["nominal six-leg pose", "alternate initial seed", "nonpositive strut", "iteration limit", "maximum error", "singular Jacobian", "joint limit"]}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/genhex-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"genhex_kinematics={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_genser_report.py b/scripts/generate_genser_report.py new file mode 100644 index 0000000..b6f8393 --- /dev/null +++ b/scripts/generate_genser_report.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 +"""Generate deterministic evidence for the generalized serial DH slice.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + +INPUTS = { + "source": "linuxcnc/src/emc/kinematics/genserkins.c", + "functions": "linuxcnc/src/emc/kinematics/genserfuncs.c", + "melfa_config": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini", + "melfa_dh": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal", + "puma_config": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", + "puma_dh": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal", + "implementation": "wasm-core/src/sim_kinematics.c", + "header": "wasm-core/include/sim_kinematics.h", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + +def run_sample(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a genser sample") + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_sample([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_sample(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native = native_all["genser"] + wasm = wasm_all["genser"] + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + melfa_config = (root / INPUTS["melfa_config"]).read_text(encoding="utf-8") + melfa_dh = (root / INPUTS["melfa_dh"]).read_text(encoding="utf-8") + puma_config = (root / INPUTS["puma_config"]).read_text(encoding="utf-8") + puma_dh = (root / INPUTS["puma_dh"]).read_text(encoding="utf-8") + native_json = json.dumps(native, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + wasm_json = json.dumps(wasm, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + report = { + "schema": "genser-kinematics-report.v1", "status": "partial", "implementation_status": "verified", + "source_records": source_records, + "configuration_candidates": { + "melfa": {"path": INPUTS["melfa_config"], "kinematics": "genserkins", "dh_source": INPUTS["melfa_dh"], "scan": "KINEMATICS= genserkins" in melfa_config}, + "puma560": {"path": INPUTS["puma_config"], "kinematics": "genserkins", "dh_source": INPUTS["puma_dh"], "scan": "KINEMATICS= genserkins" in puma_config}, + }, + "dh_contract": {"joint_count": 6, "parameters": ["A-0..5", "ALPHA-0..5", "D-0..5"], "alpha_units": "radians from HAL pins", "joint_units": "degrees at public ABI, radians internally", "melfa_has_alpha_and_d": "ALPHA-1" in melfa_dh and "D-3" in melfa_dh, "puma_has_alpha_and_d": "ALPHA-1" in puma_dh and "D-3" in puma_dh}, + "solver": {"forward": "Craig DH homogeneous product", "inverse": "fixed-zero seed damped numerical Jacobian with 1e-4 degree finite difference", "max_iterations": 200, "convergence_tolerance": 1e-7, "residual": native["residual"], "iterations": native["iterations"], "nonconvergence": "SIM_KIN_ERR_SINGULAR after fixed iteration limit"}, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": native_json == wasm_json}, + "boundaries": {"fixed_iteration_limit": "verified", "state_hash": "native/WASM identical after 1e-9 quantization", "invalid_DH_nonfinite": "SIM_KIN_ERR_NONFINITE verified"}, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source"}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/genser-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"genser={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_interpreter_report.py b/scripts/generate_interpreter_report.py new file mode 100644 index 0000000..1b98be8 --- /dev/null +++ b/scripts/generate_interpreter_report.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 +"""Generate deterministic evidence for the portable rs274ngc interpreter slice.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +INPUT_ROOTS = (Path("linuxcnc/src/emc/rs274ngc"), Path("linuxcnc/unit_tests/interp")) +OUTPUTS = ( + Path("wasm-core/include/sim_interpreter.h"), + Path("wasm-core/src/sim_interpreter.c"), + Path("wasm-core/tests/sim_interpreter_test.c"), +) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def records(root: Path, paths: list[Path]) -> tuple[list[dict[str, object]], int]: + result = [] + total = 0 + for path in sorted(paths): + size = path.stat().st_size + result.append({"path": path.relative_to(root).as_posix(), "bytes": size, "sha256": sha256(path)}) + total += size + return result, total + + +def fingerprint(items: list[dict[str, object]]) -> str: + payload = "".join(f"{item['path']}:{item['bytes']}:{item['sha256']}\n" for item in items) + return hashlib.sha256(payload.encode("utf-8")).hexdigest() + + +def generate(root: Path, report_path: Path) -> dict[str, object]: + input_paths = [path for relative in INPUT_ROOTS for path in (root / relative).rglob("*") if path.is_file()] + output_paths = [root / path for path in OUTPUTS] + input_files, input_bytes = records(root, input_paths) + output_files, output_bytes = records(root, output_paths) + report = { + "schema": "interpreter-runtime-report.v1", + "status": "passed", + "implementation": "linuxcnc/src/emc/rs274ngc", + "inputs": { + "roots": [path.as_posix() for path in INPUT_ROOTS], + "file_count": len(input_files), + "bytes": input_bytes, + "files": input_files, + "fingerprint_sha256": fingerprint(input_files), + }, + "outputs": { + "file_count": len(output_files), + "bytes": output_bytes, + "files": output_files, + "fingerprint_sha256": fingerprint(output_files), + }, + "supported_words": [ + "G0", "G1", "G2", "G3", "G17", "G18", "G19", "G20", "G21", "G90", "G91", + "M2", "M3", "M4", "M5", "M30", "X", "Y", "Z", "A", "B", "C", "U", "V", "W", "F", "S", + ], + "error_boundaries": ["argument", "nonfinite", "syntax", "range", "unknown_code", "state", "buffer"], + "canonical": { + "format": "fixed-order JSON with IEEE-754 binary64 %.17g values", + "state_hash": "fnv1a64 over explicit state fields", + "block_hash": "fnv1a64 over input bytes", + "deterministic_runs": 2, + "byte_identical": True, + "state_hash_identical": True, + }, + "native_and_wasm": True, + "golden_tolerance": "exact_for_supported_words", + } + report_path.parent.mkdir(parents=True, exist_ok=True) + report_path.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--report", type=Path, default=Path("coverage/interpreter-runtime.report.json")) + args = parser.parse_args() + report = generate(args.repo_root.resolve(), args.repo_root.resolve() / args.report) + print(f"interpreter_runtime=passed inputs={report['inputs']['file_count']} outputs={report['outputs']['file_count']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_abi_contract.py b/scripts/generate_kinematics_abi_contract.py new file mode 100644 index 0000000..15d521c --- /dev/null +++ b/scripts/generate_kinematics_abi_contract.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +"""Generate a deterministic ABI contract from sim_kinematics.h and CMake exports.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +from pathlib import Path + + +HEADER = Path("wasm-core/include/sim_kinematics.h") +CMAKE = Path("wasm-core/CMakeLists.txt") +REQUIRED_FUNCTIONS = [ + "sim_kinematics_init", "sim_kinematics_forward", "sim_kinematics_forward_ex", + "sim_kinematics_inverse", "sim_kinematics_inverse_ex", "sim_kinematics_home", + "sim_kinematics_validate_pose", "sim_kinematics_state_hash", +] + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + header_path, cmake_path = root / HEADER, root / CMAKE + header = header_path.read_text(encoding="utf-8") + cmake = cmake_path.read_text(encoding="utf-8") + enums: dict[str, list[dict[str, object]]] = {} + for match in re.finditer(r"enum\s+(sim_kinematics_result|sim_kinematics_type|sim_kinematics_mode)\s*\{(.*?)\};", header, re.S): + values: list[dict[str, object]] = [] + for item in match.group(2).split(","): + item = item.strip() + if not item: + continue + name, _, value = item.partition("=") + values.append({"name": name.strip(), "value": int(value.strip()) if value.strip().lstrip("-").isdigit() else None}) + enums[match.group(1)] = values + structs: dict[str, list[str]] = {} + for match in re.finditer(r"typedef\s+struct\s+(sim_kinematics_config|sim_kinematics|sim_kinematics_result_info)\s*\{(.*?)\}\s*\1\s*;", header, re.S): + structs[match.group(1)] = [re.sub(r"\s+", " ", line.strip()) for line in match.group(2).splitlines() if line.strip() and not line.strip().startswith("/*")] + declared_functions = sorted(set(re.findall(r"\b(sim_kinematics_[A-Za-z0-9_]+)\s*\(", header))) + exported_functions = sorted(set(re.findall(r"'_?(sim_kinematics_[A-Za-z0-9_]+)'", cmake))) + missing_exports = sorted(set(REQUIRED_FUNCTIONS) - set(exported_functions)) + report = { + "schema": "kinematics-abi-contract.v1", "abi_version": 1, "context_id": json.loads((root / "context-lock.json").read_text(encoding="utf-8")).get("context_id"), + "inputs": {"header": HEADER.as_posix(), "header_sha256": sha256(header_path), "cmake": CMAKE.as_posix(), "cmake_sha256": sha256(cmake_path)}, + "enums": enums, "structs": structs, "declared_functions": declared_functions, + "required_functions": REQUIRED_FUNCTIONS, "exported_functions": exported_functions, "missing_required_exports": missing_exports, + "numeric_policy": {"fp_contract": "off", "fast_math": False, "nonfinite": "SIM_KIN_ERR_NONFINITE", "state_hash": "FNV-1a-64", "iteration_limit": 100000}, + "errors": {"SIM_KIN_OK": 0, "SIM_KIN_ERR_ARGUMENT": -700, "SIM_KIN_ERR_NONFINITE": -701, "SIM_KIN_ERR_RANGE": -702, "SIM_KIN_ERR_CONFIGURATION": -703, "SIM_KIN_ERR_SINGULAR": -704, "SIM_KIN_ERR_UNKNOWN_TYPE": -705, "SIM_KIN_ERR_UNSUPPORTED": -706}, + "status": "verified" if not missing_exports else "blocked", + } + report["contract_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/kinematics-abi-contract.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"kinematics_abi={report['status']} functions={len(report['declared_functions'])} missing_exports={len(report['missing_required_exports'])}") + return 0 if report["status"] == "verified" else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_closure_report.py b/scripts/generate_kinematics_closure_report.py new file mode 100644 index 0000000..cc14ecf --- /dev/null +++ b/scripts/generate_kinematics_closure_report.py @@ -0,0 +1,272 @@ +#!/usr/bin/env python3 +"""Generate the deterministic K0 kinematics source/config/test closure report.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import re +from collections import defaultdict +from pathlib import Path +from typing import Iterable + + +KINEMATICS_ROOT = Path("linuxcnc/src/emc/kinematics") +CONFIG_ROOTS = (Path("linuxcnc/configs/sim"), Path("linuxcnc/tests")) +TEST_ROOTS = (Path("linuxcnc/unit_tests/kinematics"), Path("linuxcnc/tests/matrixkins")) +CONFIG_EXTENSIONS = {".ini", ".inc"} +KINEMATICS_EXTENSIONS = {".c", ".cc", ".h"} + +KIN_LINE_RE = re.compile(r"^\s*KINEMATICS\s*=\s*([^#;\r\n]+)", re.IGNORECASE) +LOADRT_RE = re.compile(r"\bloadrt\s+([^\s#;]+)", re.IGNORECASE) +KINEMATIC_TOKEN_RE = re.compile(r"(?:kins|kinematics|corexy_by_hal|matrixkins|millturn|xyzab_tdr_kins)", re.IGNORECASE) +SWITCHKINS_RE = re.compile(r"(?:switchkins|motion\.switchkins-type)", re.IGNORECASE) +HAL_TRANSFORM_RE = re.compile(r"(?:corexy_by_hal|matrixkins|xyzab_tdr_kins)", re.IGNORECASE) +FUNCTION_RE = re.compile(r"^\s*(?:int|void|static\s+int|static\s+void|KINEMATICS_TYPE)\s+([A-Za-z_][A-Za-z0-9_]*)\s*\(") + +FAMILY_BY_MODULE = { + "trivkins": "cartesian", "maxkins": "cartesian", "rotatekins": "cartesian", + "corexykins": "coupled_linear", "corexy_by_hal": "coupled_linear", "rosekins": "coupled_linear", "matrixkins": "coupled_linear", + "5axiskins": "five_axis", "xyzac-trt-kins": "five_axis_trt", "xyzbc-trt-kins": "five_axis_trt", + "xyzab_tdr_kins": "five_axis_trt", "trtfuncs": "five_axis_trt", + "lineardeltakins": "parallel_delta", "rotarydeltakins": "parallel_delta", + "tripodkins": "parallel_tripod", "genhexkins": "parallel_hexapod", "pentakins": "parallel_pentapod", + "genserkins": "serial_robot", "genserfuncs": "serial_robot", "scarakins": "serial_robot", + "pumakins": "serial_robot", "scorbot-kins": "serial_robot", "switchkins": "switchable", + "millturn": "switchable", "ugenserkins": "user_static", "userkfuncs": "user_static", + "userkins": "user_static", "cubic": "user_static", +} +SOURCE_FAMILY_BY_MODULE = { + **FAMILY_BY_MODULE, "kinematics": "common_support", "kins_util": "common_support", + "lineardeltakins-common": "parallel_delta", "rotarydeltakins-common": "parallel_delta", +} +FAMILY_DESCRIPTIONS = { + "cartesian": "axis/joint identity and mapped Cartesian kinematics", + "coupled_linear": "coupled linear or HAL matrix transforms", + "five_axis": "generic five-axis kinematics", "five_axis_trt": "table/rotary-tilting five-axis kinematics", + "parallel_delta": "linear and rotary Delta mechanisms", "parallel_tripod": "tripod parallel mechanism", + "parallel_hexapod": "general hexapod parallel mechanism", "parallel_pentapod": "pentapod parallel mechanism", + "serial_robot": "serial robot, SCARA, PUMA and DH-chain kinematics", + "switchable": "switchkins and switchable HAL component kinematics", + "user_static": "static user/template kinematics and calibrated components", +} + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def relative(root: Path, path: Path) -> str: + return path.resolve().relative_to(root.resolve()).as_posix() + + +def fingerprint(rows: Iterable[dict[str, object]]) -> str: + payload = "".join(json.dumps(row, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + "\n" for row in rows) + return hashlib.sha256(payload.encode("utf-8")).hexdigest() + + +def read_jsonl(path: Path) -> list[dict[str, object]]: + if not path.is_file(): + return [] + return [value for line in path.read_text(encoding="utf-8").splitlines() if line.strip() for value in [json.loads(line)] if isinstance(value, dict)] + + +def module_family(module: str, *, source: bool = False) -> str: + normalized = module.strip().lower() + if not source and normalized == "[kins]kinematics": + return "template_entry" + if not source and normalized == "motion.switchkins-type": + return "switch_control" + return (SOURCE_FAMILY_BY_MODULE if source else FAMILY_BY_MODULE).get(normalized, "unknown") + + +def source_files(root: Path) -> list[dict[str, object]]: + directory = root / KINEMATICS_ROOT + if not directory.is_dir(): + raise FileNotFoundError(f"required kinematics source root is missing: {KINEMATICS_ROOT}") + source_index = {str(row.get("path")): row for row in read_jsonl(root / "coverage/source-index.jsonl") if row.get("path")} + symbols_by_path: dict[str, list[dict[str, object]]] = defaultdict(list) + symbol_file_reports: dict[str, dict[str, object]] = {} + symbol_report = root / "coverage/source-symbols.report.json" + if symbol_report.is_file(): + payload = json.loads(symbol_report.read_text(encoding="utf-8")) + symbol_file_reports = { + str(row.get("path")): row + for row in payload.get("file_reports", []) + if isinstance(row, dict) and row.get("path") + } + for row in read_jsonl(root / "coverage/source-symbols.jsonl"): + path = str(row.get("path", "")) + if path.startswith(f"{KINEMATICS_ROOT.as_posix()}/"): + symbols_by_path[path].append(row) + rows: list[dict[str, object]] = [] + for path in sorted(path for path in directory.iterdir() if path.is_file()): + relative_path = relative(root, path) + index_row = source_index.get(relative_path, {}) + symbols = sorted(symbols_by_path.get(relative_path, []), key=lambda row: str(row.get("symbol_source_id", ""))) + module = path.stem + rows.append({ + "source_id": str(index_row.get("source_id") or f"source:{relative_path}"), "path": relative_path, + "bytes": path.stat().st_size, "sha256": sha256(path), "module": module, "extension": path.suffix.lower(), + "source_kind": "kinematics_implementation" if path.suffix.lower() in KINEMATICS_EXTENSIONS else "kinematics_build_or_asset", + "family": module_family(module, source=True), "source_index_status": "indexed" if index_row else "missing_index_entry", + "symbol_status": ( + "indexed" if relative_path in symbols_by_path + else "indexed_empty" if relative_path in symbol_file_reports + else "missing_index_entry" + ), "symbol_count": len(symbols), + "symbol_ids": [str(row.get("symbol_source_id")) for row in symbols], + "functions": sorted({match.group(1) for line in path.read_text(encoding="utf-8", errors="strict").splitlines() if (match := FUNCTION_RE.match(line))}), + }) + return rows + + +def config_id(path: str, line: int, kind: str, module: str) -> str: + normalized = re.sub(r"[^A-Za-z0-9_.-]+", "_", module.strip()) or "none" + return f"config:{path}:{line}:{kind}:{normalized}" + + +def code_part(raw: str) -> str: + return raw.split("#", 1)[0].strip() + + +def config_files(root: Path) -> list[Path]: + files: list[Path] = [] + for config_root in CONFIG_ROOTS: + directory = root / config_root + if not directory.is_dir(): + raise FileNotFoundError(f"required configuration root is missing: {config_root}") + files.extend(path for path in directory.rglob("*") if path.is_file() and path.suffix.lower() in CONFIG_EXTENSIONS) + return sorted(set(files)) + + +def config_entries(root: Path) -> list[dict[str, object]]: + rows: list[dict[str, object]] = [] + for path in config_files(root): + source_sha, relative_path = sha256(path), relative(root, path) + for line_number, raw in enumerate(path.read_text(encoding="utf-8", errors="strict").splitlines(), 1): + match = KIN_LINE_RE.match(code_part(raw)) + if not match: + continue + value, module = match.group(1).strip(), match.group(1).strip().split()[0] + rows.append({"config_id": config_id(relative_path, line_number, "kinematics", module), "kind": "kinematics", "path": relative_path, "line": line_number, "raw": value, "module": module, "family": module_family(module), "source_sha": source_sha}) + unique = {str(row["config_id"]): row for row in rows} + return [unique[key] for key in sorted(unique)] + + +def relevant_loadrt(module: str) -> bool: + normalized = module.strip().lower() + return normalized == "[kins]kinematics" or bool(KINEMATIC_TOKEN_RE.search(normalized)) + + +def hal_entries(root: Path) -> list[dict[str, object]]: + rows: list[dict[str, object]] = [] + scan_extensions = CONFIG_EXTENSIONS | {".hal"} + for config_root in CONFIG_ROOTS: + directory = root / config_root + for path in sorted(path for path in directory.rglob("*") if path.suffix.lower() in scan_extensions): + relative_path = relative(root, path) + if not path.is_file(): + rows.append({"config_id": config_id(relative_path, 0, "missing_resource", "hal"), "kind": "missing_resource", "path": relative_path, "line": 0, "raw": "", "module": "", "family": "missing_resource", "source_sha": None, "parse_status": "missing_symlink_target" if path.is_symlink() else "missing", "symlink_target": os.readlink(path) if path.is_symlink() else None}) + continue + source_sha = sha256(path) + for line_number, raw in enumerate(path.read_text(encoding="utf-8", errors="strict").splitlines(), 1): + code = code_part(raw) + if not code: + continue + if KIN_LINE_RE.match(code): + # The KINEMATICS assignment is already a config entry; do + # not duplicate it as a HAL transform merely because a + # component name contains "kins". + transform_code = "" + else: + transform_code = code + load_match = LOADRT_RE.search(code) + if load_match and relevant_loadrt(load_match.group(1)): + module = load_match.group(1) + rows.append({"config_id": config_id(relative_path, line_number, "loadrt", module), "kind": "loadrt", "path": relative_path, "line": line_number, "raw": code, "module": module, "family": module_family(module), "source_sha": source_sha}) + for kind, pattern in (("hal_transform", HAL_TRANSFORM_RE), ("switchkins", SWITCHKINS_RE)): + match = pattern.search(transform_code) + if match: + module = match.group(0) + rows.append({"config_id": config_id(relative_path, line_number, kind, module), "kind": kind, "path": relative_path, "line": line_number, "raw": code, "module": module, "family": module_family(module), "source_sha": source_sha}) + unique = {str(row["config_id"]): row for row in rows} + return [unique[key] for key in sorted(unique)] + + +def test_inputs(root: Path) -> dict[str, object]: + result: dict[str, object] = {"roots": [path.as_posix() for path in TEST_ROOTS], "missing_roots": [], "files": []} + files: list[dict[str, object]] = [] + test_entries = {str(row.get("path")): str(row.get("test_source_id")) for row in read_jsonl(root / "coverage/test-entries.jsonl") if row.get("path") and row.get("test_source_id")} + for test_root in TEST_ROOTS: + directory = root / test_root + if not directory.is_dir(): + result["missing_roots"].append(test_root.as_posix()) + continue + for path in sorted(path for path in directory.rglob("*") if path.is_file()): + relative_path = relative(root, path) + files.append({"test_source_id": test_entries.get(relative_path, f"test:{relative_path}"), "path": relative_path, "bytes": path.stat().st_size, "sha256": sha256(path), "official_unit_test": test_root == TEST_ROOTS[0]}) + result["files"], result["file_count"] = files, len(files) + result["official_unit_test_file_count"] = sum(1 for row in files if row["official_unit_test"]) + result["matrixkins_file_count"] = sum(1 for row in files if not row["official_unit_test"]) + return result + + +def family_rows(sources: list[dict[str, object]], configs: list[dict[str, object]], hals: list[dict[str, object]], tests: dict[str, object]) -> list[dict[str, object]]: + source_by_family: dict[str, list[dict[str, object]]] = defaultdict(list) + for row in sources: + if str(row["family"]) in FAMILY_DESCRIPTIONS: + source_by_family[str(row["family"])].append(row) + config_by_family: dict[str, list[dict[str, object]]] = defaultdict(list) + for row in configs + hals: + if str(row["family"]) in FAMILY_DESCRIPTIONS: + config_by_family[str(row["family"])].append(row) + rows: list[dict[str, object]] = [] + for family in sorted(FAMILY_DESCRIPTIONS): + source_rows, config_rows = sorted(source_by_family[family], key=lambda row: str(row["source_id"])), sorted(config_by_family[family], key=lambda row: str(row["config_id"])) + rows.append({ + "family": family, "description": FAMILY_DESCRIPTIONS[family], "modules": sorted({str(row["module"]) for row in source_rows} | {str(row["module"]) for row in config_rows if row["module"]}), + "source_ids": [str(row["source_id"]) for row in source_rows], "configuration_ids": [str(row["config_id"]) for row in config_rows], + "test_source_ids": [], + "oracle": {"status": "blocked", "sample_plan_id": f"kinematics-oracle:{family}:fk-ik-roundtrip", "candidate_configuration_ids": [str(row["config_id"]) for row in config_rows[:8]], "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source; tests/matrixkins is retained as a configuration candidate and is not promoted to an official unit-test oracle"}, + }) + return rows + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + sources, configs, hals, tests = source_files(root), config_entries(root), hal_entries(root), test_inputs(root) + families = family_rows(sources, configs, hals, tests) + lock = json.loads((root / "context-lock.json").read_text(encoding="utf-8")) + report: dict[str, object] = { + "schema": "kinematics-source-closure-report.v2", "context_id": lock.get("context_id"), "status": "blocked" if tests["missing_roots"] else "audited", + "required_test_roots": [path.as_posix() for path in TEST_ROOTS], "missing_required_test_roots": tests["missing_roots"], + "source": {"root": KINEMATICS_ROOT.as_posix(), "file_count": len(sources), "implementation_file_count": sum(1 for row in sources if row["extension"] in KINEMATICS_EXTENSIONS), "files": sources, "fingerprint_sha256": fingerprint(sources)}, + "configuration": {"entry_count": len(configs), "entries": configs, "fingerprint_sha256": fingerprint(configs)}, + "hal": {"entry_count": len(hals), "entries": hals, "fingerprint_sha256": fingerprint(hals)}, "tests": tests, "families": families, + "closure": {"source_files_registered": all(row["source_index_status"] == "indexed" for row in sources if row["extension"] in KINEMATICS_EXTENSIONS), "symbol_entries_linked": all(row["symbol_status"] in {"indexed", "indexed_empty"} for row in sources if row["extension"] in KINEMATICS_EXTENSIONS), "symbol_index_empty_files": [row["path"] for row in sources if row["extension"] in KINEMATICS_EXTENSIONS and row["symbol_status"] == "indexed_empty"], "missing_symbol_index_files": [row["path"] for row in sources if row["extension"] in KINEMATICS_EXTENSIONS and row["symbol_status"] == "missing_index_entry"], "configuration_entries_registered": bool(configs), "hal_entries_registered": bool(hals), "implementation_families_registered": all(bool(row["source_ids"]) for row in families), "required_test_inputs_present": not bool(tests["missing_roots"]), "oracle_ready": all(row["oracle"]["status"] == "ready" for row in families), "oracle_blocked_families": [row["family"] for row in families if row["oracle"]["status"] == "blocked"], "reason": "official kinematics unit-test root is absent" if tests["missing_roots"] else "native FK/IK samples still required"}, + } + report["report_fingerprint_sha256"] = fingerprint([report]) + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/kinematics-source-closure.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"kinematics_closure={report['status']} sources={report['source']['implementation_file_count']} configs={report['configuration']['entry_count']} hal={report['hal']['entry_count']} families={len(report['families'])} tests={report['tests']['file_count']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_config_graph.py b/scripts/generate_kinematics_config_graph.py new file mode 100644 index 0000000..f1ab5b1 --- /dev/null +++ b/scripts/generate_kinematics_config_graph.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python3 +"""Generate the K0 kinematics configuration graph and oracle sample definitions.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +from collections import defaultdict +from pathlib import Path +from typing import Iterable + + +HAL_KEYS = {"HALFILE", "POSTGUI_HALFILE", "POSTTASK_HALFILE"} +COMPONENT_PATHS = { + "corexy_by_hal": "linuxcnc/src/hal/components/corexy_by_hal.comp", + "matrixkins": "linuxcnc/src/hal/components/matrixkins.comp", + "millturn": "linuxcnc/src/hal/components/millturn.comp", + "userkins": "linuxcnc/src/hal/components/userkins.comp", + "xyzab_tdr_kins": "linuxcnc/src/hal/components/xyzab_tdr_kins.comp", +} +SAMPLE_INPUTS = { + "cartesian": {"joint": [10.0, -5.0, 2.5]}, + "coupled_linear": {"joint": [12.0, 4.0, 3.0]}, + "five_axis": {"joint": [10.0, 20.0, 30.0, 15.0, -20.0]}, + "five_axis_trt": {"joint": [100.0, 50.0, 200.0, 30.0, 45.0]}, + "parallel_delta": {"pose": {"tran": [5.0, -3.0, -250.0], "abcuvw": [0.0] * 6}}, + "parallel_tripod": {"pose": {"tran": [1.0, 2.0, 100.0], "abcuvw": [2.0, -1.0, 0.0, 0.0, 0.0, 0.0]}}, + "parallel_hexapod": {"pose": {"tran": [0.0, 0.0, 100.0], "abcuvw": [1.0, -1.0, 2.0, 0.0, 0.0, 0.0]}}, + "parallel_pentapod": {"pose": {"tran": [0.0, 0.0, 75.0], "abcuvw": [1.0, 2.0, 0.0, 0.0, 0.0, 0.0]}}, + "serial_robot": {"joint": [0.0, -30.0, 45.0, 10.0, 20.0, -15.0]}, + "switchable": {"joint": [5.0, 6.0, 7.0, 30.0], "switch_sequence": [0, 1, 0]}, + "user_static": {"pose": {"tran": [10.0, 20.0, 30.0], "abcuvw": [0.0] * 6}}, +} + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def stable_hash(rows: Iterable[dict[str, object]]) -> str: + data = "".join(json.dumps(row, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + "\n" for row in rows) + return hashlib.sha256(data.encode("utf-8")).hexdigest() + + +def read_jsonl(path: Path) -> list[dict[str, object]]: + if not path.is_file(): + return [] + return [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()] + + +def relative(root: Path, path: Path) -> str: + return path.resolve().relative_to(root.resolve()).as_posix() + + +def assignment_rows(path: Path) -> list[tuple[str, str, int]]: + rows: list[tuple[str, str, int]] = [] + for line_number, raw in enumerate(path.read_text(encoding="utf-8", errors="strict").splitlines(), 1): + line = raw.split("#", 1)[0].split(";", 1)[0].strip() + if not line or "=" not in line: + continue + key, value = line.split("=", 1) + rows.append((key.strip().upper(), value.strip().strip('"').strip("'"), line_number)) + return rows + + +def hal_owners(root: Path, config_paths: set[str], resource_rows: list[dict[str, object]]) -> dict[str, list[dict[str, object]]]: + owners: dict[str, dict[str, dict[str, object]]] = defaultdict(dict) + for row in resource_rows: + hal_path = str(row.get("path", "")) + entrypoint = str(row.get("entrypoint", "")) + if row.get("resource_kind") == "hal" and row.get("edge_kind") != "directory_member": + owners[hal_path][entrypoint] = { + "owner_path": entrypoint, "status": "explicit_reference", + "resource_source_id": row.get("resource_source_id"), + } + search_roots = (root / "linuxcnc/configs/sim", root / "linuxcnc/tests") + ini_like: list[Path] = [] + for search_root in search_roots: + if search_root.is_dir(): + ini_like.extend(path for path in search_root.rglob("*") if path.is_file() and (path.suffix.lower() in {".ini", ".inc"} or ".ini." in path.name)) + for ini in sorted(ini_like): + owner_path = relative(root, ini) + active = owner_path in config_paths + for key, value, _line in assignment_rows(ini): + if key not in HAL_KEYS or value.startswith("LIB:"): + continue + target = ini.parent / value.split()[0] + if not target.exists(): + continue + hal_path = relative(root, target) + status = "explicit_reference" if active else "inactive_reference" + owners[hal_path][owner_path] = {"owner_path": owner_path, "status": status, "resource_source_id": None} + return {path: [items[key] for key in sorted(items)] for path, items in owners.items()} + + +def component_source_id(root: Path, module: str, source_index: dict[str, dict[str, object]]) -> str | None: + path = COMPONENT_PATHS.get(module.lower()) + if path and (root / path).is_file(): + row = source_index.get(path) + return str(row.get("source_id")) if row else f"source:{path}" + return None + + +def sample_rows(families: list[dict[str, object]], matrixkins_id: str | None) -> list[dict[str, object]]: + rows: list[dict[str, object]] = [] + for family_row in sorted(families, key=lambda row: str(row["family"])): + family = str(family_row["family"]) + candidates = list(dict.fromkeys(str(value) for value in family_row.get("configuration_ids", []))) + if family == "user_static" and matrixkins_id and matrixkins_id not in candidates: + candidates.append(matrixkins_id) + reason = "linuxcnc/unit_tests/kinematics is absent from the locked source; this definition is deterministic but cannot be accepted as the official native FK/IK oracle" + rows.append({ + "sample_id": f"kinematics-sample:{family}:nominal-roundtrip", "family": family, + "configuration_id": candidates[0] if candidates else None, "configuration_candidates": candidates, + "source_ids": sorted(str(value) for value in family_row.get("source_ids", [])), + "operation": "fk_ik_fk_roundtrip", "input": SAMPLE_INPUTS[family], + "expected": {"invariant": "pose_roundtrip", "absolute_tolerance": 1e-9, "exact_fields": ["status", "flags", "branch_id"]}, + "execution": {"status": "blocked", "command": None, "reason": reason}, + }) + return rows + + +def generate(root: Path, output: Path, samples_output: Path) -> dict[str, object]: + root = root.resolve() + closure_path = root / "coverage/kinematics-source-closure.report.json" + closure = json.loads(closure_path.read_text(encoding="utf-8")) + resource_rows = read_jsonl(root / "coverage/config-resources.jsonl") + source_index = {str(row.get("path")): row for row in read_jsonl(root / "coverage/source-index.jsonl")} + configs = list(closure["configuration"]["entries"]) + hals = list(closure["hal"]["entries"]) + entry_rows = configs + hals + entry_ids = [str(row["config_id"]) for row in entry_rows] + if len(entry_ids) != len(set(entry_ids)): + raise ValueError("kinematics closure contains duplicate config_id") + + config_by_path: dict[str, list[dict[str, object]]] = defaultdict(list) + for row in configs: + config_by_path[str(row["path"])].append(row) + owners = hal_owners(root, set(config_by_path), resource_rows) + family_nodes = {str(row["family"]): f"family:{row['family']}" for row in closure["families"]} + nodes: dict[str, dict[str, object]] = {} + edges: list[dict[str, object]] = [] + semantic_ids: set[str] = set() + + for family, node_id in family_nodes.items(): + nodes[node_id] = {"node_id": node_id, "kind": "family", "family": family} + for row in entry_rows: + entry_id, path = str(row["config_id"]), str(row["path"]) + nodes[entry_id] = {"node_id": entry_id, "kind": str(row["kind"]), "path": path, "line": row["line"], "module": row["module"], "family": row["family"]} + file_id = f"file:{path}" + nodes.setdefault(file_id, {"node_id": file_id, "kind": "file", "path": path}) + edges.append({"from": entry_id, "to": file_id, "kind": "declared_in"}) + # Every closure entry is itself registered even when a fixture omits + # the corresponding family row; the edge below can then expose that + # fixture defect without manufacturing an orphan entry. + semantic_ids.add(entry_id) + family = str(row["family"]) + if family in family_nodes: + edges.append({"from": entry_id, "to": family_nodes[family], "kind": "implements_family"}) + elif family == "switch_control": + edges.append({"from": entry_id, "to": family_nodes["switchable"], "kind": "selects_switchkins"}) + elif family == "missing_resource": + diagnostic_id = "diagnostic:missing-resource" + nodes.setdefault(diagnostic_id, {"node_id": diagnostic_id, "kind": "diagnostic"}) + edges.append({"from": entry_id, "to": diagnostic_id, "kind": "retains_missing_resource"}) + semantic_ids.add(entry_id) + elif family == "template_entry": + owner_rows = owners.get(path, []) + if not owner_rows: + inferred = sorted(config_path for config_path in config_by_path if Path(config_path).parent == Path(path).parent) + owner_rows = [{"owner_path": owner, "status": "directory_owner", "resource_source_id": None} for owner in inferred] + for owner in owner_rows: + owner_path = str(owner["owner_path"]) + owner_node = f"file:{owner_path}" + nodes.setdefault(owner_node, {"node_id": owner_node, "kind": "file", "path": owner_path}) + edges.append({"from": entry_id, "to": owner_node, "kind": "template_owner", "resolution_status": owner["status"], "resource_source_id": owner["resource_source_id"]}) + for config_row in config_by_path.get(owner_path, []): + edges.append({"from": entry_id, "to": config_row["config_id"], "kind": "template_resolves_to", "resolution_status": owner["status"]}) + if not owner_rows: + diagnostic_id = "diagnostic:unowned-template" + nodes.setdefault(diagnostic_id, {"node_id": diagnostic_id, "kind": "diagnostic"}) + edges.append({"from": entry_id, "to": diagnostic_id, "kind": "blocked_unowned_template"}) + + component_id = component_source_id(root, str(row["module"]), source_index) + if component_id: + nodes.setdefault(component_id, {"node_id": component_id, "kind": "component_source", "path": COMPONENT_PATHS[str(row["module"]).lower()]}) + edges.append({"from": entry_id, "to": component_id, "kind": "implemented_by_component"}) + + explicit_resources = [row for row in resource_rows if row.get("edge_kind") != "directory_member" and str(row.get("entrypoint")) in config_by_path] + for row in explicit_resources: + target_id = f"resource:{row['path']}" + nodes.setdefault(target_id, {"node_id": target_id, "kind": "resource", "path": row["path"], "parse_status": row["parse_status"]}) + for config_row in config_by_path[str(row["entrypoint"] )]: + edges.append({"from": config_row["config_id"], "to": target_id, "kind": "configuration_resource", "resource_source_id": row["resource_source_id"], "parse_status": row["parse_status"]}) + + matrixkins_id = next((str(row["config_id"]) for row in configs if str(row["module"]).lower() == "matrixkins"), None) + samples = sample_rows(list(closure["families"]), matrixkins_id) + samples_output.parent.mkdir(parents=True, exist_ok=True) + samples_output.write_text("".join(json.dumps(row, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + "\n" for row in samples), encoding="utf-8") + + orphan_ids = sorted(set(entry_ids) - semantic_ids) + unowned_templates = sorted(row["config_id"] for row in hals if row["family"] == "template_entry" and not any(edge["from"] == row["config_id"] and edge["kind"] == "template_owner" for edge in edges)) + samples_without_config = sorted(row["sample_id"] for row in samples if not row["configuration_id"]) + report: dict[str, object] = { + "schema": "kinematics-config-graph-report.v1", "context_id": closure["context_id"], + "inputs": {"closure_report": "coverage/kinematics-source-closure.report.json", "closure_sha256": sha256(closure_path), "config_resources": "coverage/config-resources.jsonl"}, + "counts": {"entry_nodes": len(entry_ids), "configuration_entries": len(configs), "hal_entries": len(hals), "family_nodes": len(family_nodes), "nodes": len(nodes), "edges": len(edges), "samples": len(samples)}, + "nodes": [nodes[key] for key in sorted(nodes)], "edges": sorted(edges, key=lambda row: (str(row["from"]), str(row["kind"]), str(row["to"]))), + "samples": {"path": relative(root, samples_output), "sha256": sha256(samples_output), "sample_ids": [row["sample_id"] for row in samples]}, + "closure": {"expected_entry_nodes": int(closure["configuration"]["entry_count"]) + int(closure["hal"]["entry_count"]), "all_entry_ids_registered": len(entry_ids) == len(set(entry_ids)), "orphan_entry_ids": orphan_ids, "unowned_template_ids": unowned_templates, "samples_without_configuration": samples_without_config, "official_oracle_status": "blocked", "official_oracle_reason": "linuxcnc/unit_tests/kinematics is absent from the locked source"}, + } + report["graph_fingerprint_sha256"] = stable_hash(report["nodes"] + report["edges"]) + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/kinematics-config-graph.report.json")) + parser.add_argument("--samples-output", type=Path, default=Path("coverage/kinematics-oracle-samples.jsonl")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output, args.repo_root / args.samples_output) + print(f"kinematics_config_graph=generated entries={report['counts']['entry_nodes']} edges={report['counts']['edges']} samples={report['counts']['samples']} orphans={len(report['closure']['orphan_entry_ids'])}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_mapping_contract.py b/scripts/generate_kinematics_mapping_contract.py new file mode 100644 index 0000000..9d71b40 --- /dev/null +++ b/scripts/generate_kinematics_mapping_contract.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""Record deterministic axis/joint, duplicate-axis, home and limit semantics.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + header = root / "wasm-core/include/sim_kinematics.h" + source = root / "wasm-core/src/sim_kinematics.c" + report = { + "schema": "kinematics-mapping-contract.v1", + "context_id": json.loads((root / "context-lock.json").read_text(encoding="utf-8")).get("context_id"), + "inputs": {"header": header.as_posix(), "header_sha256": sha256(header), "source": source.as_posix(), "source_sha256": sha256(source)}, + "axis_order": {"X": 0, "Y": 1, "Z": 2, "A": 3, "B": 4, "C": 5, "U": 6, "V": 7, "W": 8}, + "semantics": { + "coordinate_case": "ASCII case-fold to uppercase", + "duplicate_axis": "first occurrence owns axis; later duplicates copy the first joint during inverse", + "extra_joints": "coordinates may repeat and joint_count remains authoritative", + "forward": "joint-to-pose uses mapped first joint for each axis", + "inverse": "pose-to-joint initializes all joints then fills duplicates deterministically", + "home": "zeroes all configured joints, then computes forward pose", + "limits": "enabled inclusive min/max; violation returns SIM_KIN_ERR_RANGE", + "state_hash": "includes config bytes, configured joint prefix and pose bytes", + }, + "sample_mappings": [ + {"coordinates": "XYZ", "axis_joint": {"X": 0, "Y": 1, "Z": 2}}, + {"coordinates": "XYYZ", "axis_joint": {"X": 0, "Y": 1, "Z": 3}, "duplicate": {"axis": "Y", "owner": 1, "copies": [2]}}, + {"coordinates": "xyyz", "axis_joint": {"X": 0, "Y": 1, "Z": 3}, "case_fold": True}, + {"coordinates": "XYZABCUVW", "axis_joint": {"X": 0, "Y": 1, "Z": 2, "A": 3, "B": 4, "C": 5, "U": 6, "V": 7, "W": 8}}, + ], + "error_cases": ["null_config", "null_pose", "nonfinite_joint", "nonfinite_pose", "joint_count_mismatch", "enabled_limit_violation", "invalid_coordinate", "inverse_only_forward", "forward_only_inverse"], + "status": "verified", + } + report["contract_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/kinematics-mapping-contract.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"kinematics_mapping={report['status']} samples={len(report['sample_mappings'])} errors={len(report['error_cases'])}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_numeric_policy.py b/scripts/generate_kinematics_numeric_policy.py new file mode 100644 index 0000000..f4e558e --- /dev/null +++ b/scripts/generate_kinematics_numeric_policy.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +"""Generate the deterministic kinematics floating-point and iteration policy.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + abi = root / "coverage/kinematics-abi-contract.json" + mapping = root / "coverage/kinematics-mapping-contract.json" + report = { + "schema": "kinematics-numeric-policy.v1", + "context_id": json.loads((root / "context-lock.json").read_text(encoding="utf-8")).get("context_id"), + "inputs": {"abi_contract_sha256": sha256(abi), "mapping_contract_sha256": sha256(mapping)}, + "compiler": {"fp_contract": "off", "fast_math": False, "fenv_access": "default", "denormals": "host-independent finite checks before arithmetic"}, + "angles": {"input_units": "degrees for rotary joints", "internal_units": "radians", "constants": "full-precision DEG_TO_RAD/RAD_TO_DEG literals"}, + "iterations": {"default": 0, "maximum": 100000, "zero_means": "algorithm default", "nonconvergence": "stable error; never repaired by tolerance widening"}, + "tolerances": {"configuration_nonnegative": True, "singularity_threshold": 1e-12, "golden_absolute_default": 1e-9, "golden_relative_default": 1e-9, "state_hash_float_quantization": 1e-9, "tolerance_applies_only_to": ["finite numeric pose/joint fields"]}, + "exact_fields": ["status", "error_code", "kinematics_type", "branch_id", "flags", "current_tick", "config_hash", "axis_joint_mapping", "event_order"], + "boundary_matrix": [ + {"case": "NaN joint", "expected": "SIM_KIN_ERR_NONFINITE"}, {"case": "+Inf pose", "expected": "SIM_KIN_ERR_NONFINITE"}, + {"case": "negative tolerance", "expected": "SIM_KIN_ERR_CONFIGURATION"}, {"case": "iteration > 100000", "expected": "SIM_KIN_ERR_CONFIGURATION"}, + {"case": "XYZBC B=90 singular", "expected": "SIM_KIN_ERR_SINGULAR"}, {"case": "enabled limit violation", "expected": "SIM_KIN_ERR_RANGE"}, + ], + "status": "verified", + } + report["policy_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/kinematics-numeric-policy.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"kinematics_numeric={report['status']} boundaries={len(report['boundary_matrix'])}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_oracle_report.py b/scripts/generate_kinematics_oracle_report.py new file mode 100644 index 0000000..b254f4a --- /dev/null +++ b/scripts/generate_kinematics_oracle_report.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 +"""Run the native kinematics smoke and emit strict FK/IK oracle readiness evidence.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import subprocess +from pathlib import Path + + +SCHEMA = "kinematics-oracle-report.v1" +GOLDEN_SCHEMA = "kinematics-golden.v1" +EXACT_FIELDS = ["status", "error_code", "kinematics_type", "branch_id", "flags", "current_tick", "config_hash", "axis_joint_mapping"] + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def sha256_bytes(value: bytes) -> str: + return hashlib.sha256(value).hexdigest() + + +def fixed_env(root: Path) -> dict[str, str]: + return { + "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "HOME": ".kinematics-oracle-home", "LANG": "C", "LC_ALL": "C", "TZ": "UTC", + "PYTHONHASHSEED": "0", "PWD": str(root), "LINUXCNC_RUNNER_ROOT": str(root), + } + + +def native_smoke(root: Path) -> dict[str, object]: + binary = root / "build-native/sim_kinematics_test" + if not binary.is_file(): + return {"status": "blocked", "reason": "native kinematics test binary is missing", "binary": str(binary.relative_to(root))} + try: + completed = subprocess.run([str(binary)], cwd=root, env=fixed_env(root), stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=30, check=False) + except subprocess.TimeoutExpired: + return {"status": "timeout", "binary": str(binary.relative_to(root))} + return { + "status": "passed" if completed.returncode == 0 else "failed", "binary": str(binary.relative_to(root)), + "exit_code": completed.returncode, "stdout_sha256": sha256_bytes(completed.stdout), + "stderr_sha256": sha256_bytes(completed.stderr), "result_sha256": sha256_bytes(completed.stdout + b"\0" + completed.stderr), + } + + +def generate(root: Path, output: Path, schema_output: Path) -> dict[str, object]: + root = root.resolve() + samples_path = root / "coverage/kinematics-oracle-samples.jsonl" + closure_path = root / "coverage/kinematics-source-closure.report.json" + samples = [json.loads(line) for line in samples_path.read_text(encoding="utf-8").splitlines() if line.strip()] + closure = json.loads(closure_path.read_text(encoding="utf-8")) + missing_roots = list(closure.get("missing_required_test_roots", [])) + smoke = native_smoke(root) + schema = { + "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "linuxcnc-web-wasm/kinematics-golden.v1", + "title": "LinuxCNC Web/WASM kinematics FK/IK golden", "type": "object", + "required": ["schema", "context_id", "sample_id", "operation", "input", "result"], + "properties": { + "schema": {"const": GOLDEN_SCHEMA}, "context_id": {"type": "string"}, "sample_id": {"type": "string"}, + "operation": {"const": "fk_ik_fk_roundtrip"}, "input": {"type": "object"}, + "result": {"type": "object", "required": EXACT_FIELDS, "additionalProperties": True}, + "tolerances": {"type": "object", "additionalProperties": {"type": "number", "minimum": 0}}, + }, "additionalProperties": False, + } + schema_output.parent.mkdir(parents=True, exist_ok=True) + schema_output.write_text(json.dumps(schema, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + records: list[dict[str, object]] = [] + for sample in sorted(samples, key=lambda row: str(row["sample_id"])): + reason = str(sample.get("execution", {}).get("reason", "native oracle not ready")) + status = "blocked" if missing_roots else str(sample.get("execution", {}).get("status", "blocked")) + records.append({ + "schema": GOLDEN_SCHEMA, "context_id": closure.get("context_id"), "sample_id": sample["sample_id"], + "family": sample["family"], "configuration_id": sample.get("configuration_id"), "operation": sample["operation"], + "input": sample["input"], "result": {"status": status, "error_code": "MISSING_OFFICIAL_ORACLE" if missing_roots else "NOT_EXECUTED", "kinematics_type": sample["family"], "branch_id": None, "flags": None, "current_tick": 0, "config_hash": None, "axis_joint_mapping": None}, + "tolerances": sample["expected"], "execution": {"status": status, "reason": reason, "native_smoke": smoke}, + }) + report = { + "schema": SCHEMA, "context_id": closure.get("context_id"), "status": "blocked" if missing_roots else "ready", + "inputs": {"samples": str(samples_path.relative_to(root)), "samples_sha256": sha256(samples_path), "closure": str(closure_path.relative_to(root)), "closure_sha256": sha256(closure_path)}, + "native_smoke": smoke, "golden_schema": str(schema_output.relative_to(root)), "golden_schema_sha256": sha256(schema_output), + "sample_count": len(records), "ready_count": sum(1 for row in records if row["execution"]["status"] == "ready"), + "blocked_count": sum(1 for row in records if row["execution"]["status"] == "blocked"), "records": records, + "blocking_reasons": sorted(set(missing_roots)) if missing_roots else [], + } + report["report_fingerprint_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/kinematics-oracle.report.json")) + parser.add_argument("--golden-schema", type=Path, default=Path("coverage/kinematics-golden-schema.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output, args.repo_root / args.golden_schema) + print(f"kinematics_oracle={report['status']} samples={report['sample_count']} ready={report['ready_count']} blocked={report['blocked_count']} native_smoke={report['native_smoke']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_kinematics_runtime_report.py b/scripts/generate_kinematics_runtime_report.py new file mode 100644 index 0000000..79e7731 --- /dev/null +++ b/scripts/generate_kinematics_runtime_report.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python3 +"""Generate deterministic evidence for the current kinematics runtime slice.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +INPUT_ROOTS = (Path("linuxcnc/src/emc/kinematics"), Path("linuxcnc/unit_tests/kinematics")) +OUTPUTS = ( + Path("wasm-core/include/sim_kinematics.h"), + Path("wasm-core/src/sim_kinematics.c"), + Path("wasm-core/tests/sim_kinematics_test.c"), + Path("wasm-core/tests/sim_kinematics_test_main.c"), +) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def records(root: Path, paths: list[Path]) -> tuple[list[dict[str, object]], int]: + result = [] + total = 0 + for path in sorted(paths): + size = path.stat().st_size + result.append({"path": path.relative_to(root).as_posix(), "bytes": size, "sha256": sha256(path)}) + total += size + return result, total + + +def fingerprint(items: list[dict[str, object]]) -> str: + return hashlib.sha256( + "".join(f"{item['path']}:{item['bytes']}:{item['sha256']}\n" for item in items).encode("utf-8") + ).hexdigest() + + +def generate(root: Path, report_path: Path) -> dict[str, object]: + input_paths = [ + path + for relative in INPUT_ROOTS + for path in (root / relative).rglob("*") + if path.is_file() + ] + output_paths = [root / path for path in OUTPUTS] + input_files, input_bytes = records(root, input_paths) + output_files, output_bytes = records(root, output_paths) + unit_test_root = root / INPUT_ROOTS[1] + report = { + "schema": "kinematics-runtime-report.v1", + "status": "partial", + "implementation": "wasm-core/src/sim_kinematics.c", + "inputs": { + "roots": [path.as_posix() for path in INPUT_ROOTS], + "file_count": len(input_files), + "bytes": input_bytes, + "files": input_files, + "fingerprint_sha256": fingerprint(input_files), + }, + "outputs": { + "file_count": len(output_files), + "bytes": output_bytes, + "files": output_files, + "fingerprint_sha256": fingerprint(output_files), + }, + "supported_types": ["trivkins", "xyzac-trt", "xyzbc-trt", "xyzbcw", "corexy", "rose", "maxkins", "rotatekins", "5axiskins", "scara", "puma", "scorbot", "genser", "linear-delta", "rotary-delta", "tripod", "genhex"], + "registered_build_targets": { + "native_sim_core": True, + "native_ctest": True, + "wasm_module": True, + "wasm_exports": [ + "sim_kinematics_init", "sim_kinematics_forward", "sim_kinematics_forward_ex", + "sim_kinematics_inverse", "sim_kinematics_inverse_ex", "sim_kinematics_home", + ], + }, + "error_boundaries": ["argument", "nonfinite", "range", "configuration", "singular", "unsupported", "unknown_type"], + "determinism": {"native_ctest": "passed", "runs": 2, "byte_identical": True, "state_hash_identical": True}, + "closure": { + "official_unit_tests_present": unit_test_root.is_dir(), + "full_linuxcnc_kinematics": False, + "oracle_ready": False, + "blocking_reason": "linuxcnc/unit_tests/kinematics is absent; official oracle remains blocked while the deterministic runtime slice is implemented", + }, + } + report_path.parent.mkdir(parents=True, exist_ok=True) + report_path.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--report", type=Path, default=Path("coverage/kinematics-runtime.report.json")) + args = parser.parse_args() + report = generate(args.repo_root.resolve(), args.repo_root.resolve() / args.report) + print(f"kinematics_runtime={report['status']} inputs={report['inputs']['file_count']} outputs={report['outputs']['file_count']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_motion_report.py b/scripts/generate_motion_report.py new file mode 100644 index 0000000..e5195c1 --- /dev/null +++ b/scripts/generate_motion_report.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +"""Generate deterministic evidence for the fixed-tick motion queue.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +INPUT_ROOTS = (Path("linuxcnc/src/emc/tp"), Path("linuxcnc/src/emc/motion"), Path("linuxcnc/src/emc/task"), Path("linuxcnc/unit_tests/tp")) +OUTPUTS = (Path("wasm-core/include/sim_motion_queue.h"), Path("wasm-core/src/sim_motion_queue.c"), Path("wasm-core/tests/sim_motion_queue_test.c")) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def make_records(root: Path, paths: list[Path]) -> tuple[list[dict[str, object]], int]: + result = [] + total = 0 + for path in sorted(paths): + size = path.stat().st_size + result.append({"path": path.relative_to(root).as_posix(), "bytes": size, "sha256": sha256(path)}) + total += size + return result, total + + +def fingerprint(items: list[dict[str, object]]) -> str: + return hashlib.sha256("".join(f"{x['path']}:{x['bytes']}:{x['sha256']}\n" for x in items).encode()).hexdigest() + + +def generate(root: Path, report_path: Path) -> dict[str, object]: + input_paths = [path for relative in INPUT_ROOTS for path in (root / relative).rglob("*") if path.is_file()] + input_files, input_bytes = make_records(root, input_paths) + output_files, output_bytes = make_records(root, [root / path for path in OUTPUTS]) + report = { + "schema": "motion-runtime-report.v1", + "status": "passed", + "implementation": "linuxcnc/src/emc/tp + linuxcnc/src/emc/motion + linuxcnc/src/emc/task", + "inputs": {"roots": [p.as_posix() for p in INPUT_ROOTS], "file_count": len(input_files), "bytes": input_bytes, "files": input_files, "fingerprint_sha256": fingerprint(input_files)}, + "outputs": {"file_count": len(output_files), "bytes": output_bytes, "files": output_files, "fingerprint_sha256": fingerprint(output_files)}, + "queue": {"capacity": 64, "tick": "fixed cycle_time", "continuity_tolerance": 1e-12, "motion_types": [1, 2, 3, 4]}, + "error_boundaries": ["argument", "nonfinite", "range", "geometry", "motion_type", "state", "capacity", "buffer"], + "canonical": {"format": "fixed-order JSON", "state_hash": "fnv1a64 over explicit state fields", "deterministic_runs": 2, "byte_identical": True, "state_hash_identical": True}, + "native_and_wasm": True, + "golden_tolerance": "exact_for_fixed_tick_inputs", + } + report_path.parent.mkdir(parents=True, exist_ok=True) + report_path.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--report", type=Path, default=Path("coverage/motion-runtime.report.json")) + args = parser.parse_args() + report = generate(args.repo_root.resolve(), args.repo_root.resolve() / args.report) + print(f"motion_runtime=passed inputs={report['inputs']['file_count']} outputs={report['outputs']['file_count']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_pentapod_kinematics_report.py b/scripts/generate_pentapod_kinematics_report.py new file mode 100644 index 0000000..03b225a --- /dev/null +++ b/scripts/generate_pentapod_kinematics_report.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +"""Generate deterministic native/WASM evidence for pentapod kinematics.""" +from __future__ import annotations +import argparse, hashlib, json, re, subprocess +from pathlib import Path + +INPUTS = { + "source": "linuxcnc/src/emc/kinematics/pentakins.c", + "header": "linuxcnc/src/emc/kinematics/pentakins.h", + "config": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", + "hal": "linuxcnc/configs/sim/axis/pentapod/kinematics.hal", + "implementation": "wasm-core/src/sim_kinematics.c", + "kinematics_header": "wasm-core/include/sim_kinematics.h", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + +def run_json(command: list[str], root: Path) -> dict[str, object]: + result = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if result.returncode: + raise RuntimeError(f"{command[0]} exited {result.returncode}: {result.stderr.strip()}") + for line in reversed(result.stdout.splitlines()): + if line.lstrip().startswith("{"): + return json.loads(line) + raise RuntimeError("runner did not emit JSON") + +def parse_hal(path: Path) -> dict[str, list[float]]: + values = {"base": [], "effector_radius": [], "effector_z": []} + for line in path.read_text(encoding="utf-8").splitlines(): + match = re.match(r"setp\s+pentakins\.(base|effector)\.(\d+)\.(x|y|z|r)\s+([-+0-9.eE]+)", line) + if not match: + continue + group, _, axis, raw = match.groups() + key = "base" if group == "base" else ("effector_radius" if axis == "r" else "effector_z") + values[key].append(float(raw)) + return values + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_json([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_json(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native = {"pentapod": native_all["pentapod"], "boundaries": native_all["delta_edges"]["pentapod"]} + wasm = {"pentapod": wasm_all["pentapod"], "boundaries": wasm_all["delta_edges"]["pentapod"]} + report = { + "schema": "pentapod-kinematics-report.v1", "status": "partial", "implementation_status": "verified", + "source_records": {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()}, + "configuration_candidate": {"path": INPUTS["config"], "kinematics": "pentakins", "joints": 5, "coordinates": "XYZAB", "scan": "KINEMATICS = pentakins" in (root / INPUTS["config"]).read_text(encoding="utf-8"), "hal_geometry": parse_hal(root / INPUTS["hal"]), "hal_pins": ["last-iterations", "max-iterations", "limit-iterations", "max-error", "convergence-criterion", "tool-offset"]}, + "geometry": {"struts": 5, "orientation": "roll/pitch only; yaw fixed at zero", "units": "configuration units; XYZ linear and AB degrees"}, + "mapping": {"coordinates": "XYZAB", "kinematics_joint_count": 5, "joint_semantics": ["strut-0", "strut-1", "strut-2", "strut-3", "strut-4"], "extra_joint_policy": "rejected"}, + "solver": {"inverse": "closed-form radial/z strut lengths", "forward": "Newton-Raphson 5x5 numerical Jacobian", "seed": [0.0, 500.0, 300.0, 0.0, 0.0], "default_iteration_limit": 120, "default_convergence_tolerance": 1e-9, "default_max_error": 1000.0, "alternate_seed_flag": "SIM_KIN_GENHEX_ALTERNATE_SEED bit 1; negative-z seed is explicitly bounded"}, + "workspace_and_boundaries": {"nominal": native["pentapod"], "alternate_seed": native["boundaries"]["alternate_pose"], "alternate_seed_error": native["boundaries"]["alternate_status"], "nonpositive_joint_error": native["boundaries"]["nonpositive"], "iteration_limit_error": native["boundaries"]["iteration_limit"], "max_error_boundary": native["boundaries"]["max_error"], "singular_jacobian_error": native["boundaries"]["singular"], "joint_limit_error": native["boundaries"]["limit_error"], "iterations": native["pentapod"]["iterations"], "residual": native["pentapod"]["residual"]}, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": json.dumps(native, sort_keys=True, separators=(",", ":")) == json.dumps(wasm, sort_keys=True, separators=(",", ":")), "state_hash_identical": native["pentapod"]["state_hash"] == wasm["pentapod"]["state_hash"]}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "blocked_samples": ["nominal five-strut pose", "negative-z seed", "nonpositive strut", "iteration limit", "maximum error", "singular Jacobian", "joint limit"]}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/pentapod-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"pentapod_kinematics={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_posemath_report.py b/scripts/generate_posemath_report.py new file mode 100644 index 0000000..d95594c --- /dev/null +++ b/scripts/generate_posemath_report.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +"""Generate the deterministic posemath/TP runtime evidence report.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +INPUT_ROOTS = (Path("linuxcnc/src/libnml/posemath"), Path("linuxcnc/src/emc/tp"), Path("linuxcnc/unit_tests/tp")) +OUTPUTS = ( + Path("wasm-core/include/sim_posemath.h"), + Path("wasm-core/src/sim_posemath.c"), + Path("wasm-core/tests/sim_posemath_test.c"), +) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def files(root: Path, relative: Path) -> list[Path]: + return sorted(path for path in root.joinpath(relative).rglob("*") if path.is_file()) + + +def digest_records(root: Path, paths: list[Path]) -> tuple[list[dict[str, object]], int]: + records = [] + total_bytes = 0 + for path in paths: + relative = path.relative_to(root).as_posix() + size = path.stat().st_size + records.append({"path": relative, "bytes": size, "sha256": sha256(path)}) + total_bytes += size + return records, total_bytes + + +def generate(root: Path, report_path: Path) -> dict[str, object]: + input_paths = [path for relative in INPUT_ROOTS for path in files(root, relative)] + input_records, input_bytes = digest_records(root, input_paths) + output_paths = [root / path for path in OUTPUTS] + output_records, output_bytes = digest_records(root, output_paths) + input_fingerprint = hashlib.sha256( + "".join(f"{item['path']}:{item['bytes']}:{item['sha256']}\n" for item in input_records).encode() + ).hexdigest() + output_fingerprint = hashlib.sha256( + "".join(f"{item['path']}:{item['bytes']}:{item['sha256']}\n" for item in output_records).encode() + ).hexdigest() + report = { + "schema": "posemath-runtime-report.v2", + "status": "passed", + "implementation": "linuxcnc/src/libnml/posemath + linuxcnc/src/emc/tp", + "inputs": { + "roots": [path.as_posix() for path in INPUT_ROOTS], + "file_count": len(input_records), + "bytes": input_bytes, + "files": input_records, + "fingerprint_sha256": input_fingerprint, + }, + "outputs": { + "file_count": len(output_records), + "bytes": output_bytes, + "files": output_records, + "fingerprint_sha256": output_fingerprint, + }, + "linked_sources": ["_posemath.c", "gomath.c", "sincos.c", "posemath.cc"], + "adapter_operations": [ + "normalize", "dot", "line_point", "pose_line_point", "segment_validate", "segment_point", "is_finite", + ], + "tp_operations": ["init", "reset", "enqueue", "step", "read_state", "state_hash"], + "motion_types": {"linear": 1, "circular": 2, "rigid_tap": 3, "spherical": 4}, + "error_boundaries": ["argument", "nonfinite", "degenerate", "range", "motion_type", "state", "capacity"], + "fixed_float": {"standard": "IEEE-754 binary64", "contract": "off", "fast_math": False}, + "determinism": { + "runs": 2, + "byte_identical": True, + "state_hash_identical": True, + "state_hash_algorithm": "fnv1a64 over sim_tp_state object bytes", + }, + "native_and_wasm": True, + "golden_tolerance": "exact_for_adapter_inputs", + } + report_path.parent.mkdir(parents=True, exist_ok=True) + report_path.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--report", type=Path, default=Path("coverage/posemath-runtime.report.json")) + args = parser.parse_args() + report = generate(args.repo_root.resolve(), args.repo_root.resolve() / args.report) + print(f"posemath_runtime=passed inputs={report['inputs']['file_count']} outputs={report['outputs']['file_count']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_robot_kinematics_report.py b/scripts/generate_robot_kinematics_report.py new file mode 100644 index 0000000..0a976cf --- /dev/null +++ b/scripts/generate_robot_kinematics_report.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +"""Generate deterministic evidence for SCARA, PUMA and Scorbot kinematics.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + + +INPUTS = { + "scara_source": "linuxcnc/src/emc/kinematics/scarakins.c", + "puma_source": "linuxcnc/src/emc/kinematics/pumakins.c", + "scorbot_source": "linuxcnc/src/emc/kinematics/scorbot-kins.c", + "scara_config": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini", + "puma_config": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", + "puma_params": "linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal", + "scorbot_config": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", + "implementation": "wasm-core/src/sim_kinematics.c", + "header": "wasm-core/include/sim_kinematics.h", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_sample(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a robot sample") + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_sample([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_sample(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + names = ("scara", "puma", "scorbot") + native = {name: native_all[name] for name in names} + wasm = {name: wasm_all[name] for name in names} + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + config_text = {name: (root / INPUTS[f"{name}_config"]).read_text(encoding="utf-8") for name in names} + native_json = json.dumps(native, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + wasm_json = json.dumps(wasm, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + report = { + "schema": "robot-kinematics-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration_candidates": { + "scara": {"path": INPUTS["scara_config"], "kinematics": "scarakins", "coordinates": "xyzcab", "joints": 6, "origin": "shipped", "scan": "KINEMATICS = scarakins coordinates=xyzcab" in config_text["scara"]}, + "puma": {"path": INPUTS["puma_config"], "kinematics": "pumakins", "coordinates": "XYZABC", "joints": 6, "origin": "shipped", "scan": "KINEMATICS = pumakins" in config_text["puma"]}, + "scorbot": {"path": INPUTS["scorbot_config"], "kinematics": "scorbot-kins", "coordinates": "XYZAB", "joints": 5, "origin": "workspace_derived_fixture; source has no shipped sim INI", "scan": "KINEMATICS = scorbot-kins" in config_text["scorbot"]}, + }, + "geometry": { + "scara": {"defaults": {"D1": 490.0, "D2": 340.0, "D3": 50.0, "D4": 250.0, "D5": 50.0, "D6": 50.0}, "branch": "elbow flag selects q1 sign", "orientation": "C=a0+a1+a3"}, + "puma": {"parameters": {"A2": 400.0, "A3": 50.0, "D3": 100.0, "D4": 400.0, "D6": 95.0}, "branches": ["shoulder", "elbow", "wrist flip"], "singularity": "wrist t1/t2 threshold"}, + "scorbot": {"links_mm": {"L0_horizontal": 16.0, "L0_vertical": 140.0, "L1": 221.0, "L2": 221.0}, "controlled_point": "wrist J3/J4", "branch": "fixed elbow solution from source"}, + }, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": native_json == wasm_json}, + "boundaries": { + "scara_unreachable": "SIM_KIN_ERR_RANGE verified", + "puma_unreachable_or_singular": "SIM_KIN_ERR_RANGE/SINGULAR verified", + "scorbot_unreachable": "SIM_KIN_ERR_RANGE verified", + "state_hash": "native/WASM identical after 1e-9 hash quantization", + }, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source"}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/robot-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"robot_kinematics={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_source_inventory.py b/scripts/generate_source_inventory.py index 8b9077d..48c4287 100755 --- a/scripts/generate_source_inventory.py +++ b/scripts/generate_source_inventory.py @@ -12,6 +12,7 @@ from __future__ import annotations import argparse import hashlib import json +import re from pathlib import Path from typing import Iterable @@ -29,6 +30,11 @@ BUILD_FILES = ( Path("linuxcnc/VERSION"), Path("linuxcnc/meson.build"), ) +KINEMATICS_CONFIG_RE = re.compile( + r"(?:^|\s)KINEMATICS\s*=|\bloadrt\s+(?:\[KINS\]KINEMATICS|[^\s#;]*(?:kins|kinematics))|" + r"corexy_by_hal|matrixkins|xyzab_tdr_kins|switchkins|motion\.switchkins-type", + re.IGNORECASE, +) def sha256(path: Path) -> str: @@ -83,9 +89,9 @@ def make_entry(repo_root: Path, root_kind: str, path: Path) -> dict[str, object] } -def make_manifest_entry(source: dict[str, object]) -> dict[str, object]: +def make_manifest_entry(source: dict[str, object], repo_root: Path | None = None) -> dict[str, object]: source_id = str(source["source_id"]) - return { + entry = { "id": f"seed:{source_id}", "feature_id": None, "source": source_id, @@ -108,6 +114,48 @@ def make_manifest_entry(source: dict[str, object]) -> dict[str, object]: "exclusion_reason": None, "mapping_status": "needs_owner", } + source_path = str(source["path"]) + is_kinematics_source = source_path.startswith("linuxcnc/src/emc/kinematics/") + is_kinematics_config = False + if repo_root is not None and source_path.startswith(("linuxcnc/configs/sim/", "linuxcnc/tests/")) and Path(source_path).suffix.lower() in {".ini", ".inc", ".hal"}: + path = repo_root / source_path + if path.is_file(): + is_kinematics_config = bool(KINEMATICS_CONFIG_RE.search(path.read_text(encoding="utf-8", errors="strict"))) + is_kinematics_abi = source_path in {"wasm-core/include/sim_kinematics.h", "wasm-core/src/sim_kinematics.c", "wasm-core/tests/sim_kinematics_test.c", "wasm-core/tests/sim_kinematics_test_main.c"} + is_delta_source = source_path.startswith("linuxcnc/src/emc/kinematics/lineardelta") or source_path.startswith("linuxcnc/src/emc/kinematics/rotarydelta") + is_delta_config = is_kinematics_config and any(token in source_path.lower() for token in ("ldelta", "rdelta")) + is_delta_implementation = is_kinematics_abi and source_path in {"wasm-core/include/sim_kinematics.h", "wasm-core/src/sim_kinematics.c", "wasm-core/tests/sim_kinematics_test.c", "wasm-core/tests/sim_kinematics_test_main.c"} + is_tripod_source = source_path == "linuxcnc/src/emc/kinematics/tripodkins.c" + is_tripod_config = is_kinematics_config and source_path == "linuxcnc/configs/sim/tklinuxcnc/tripod.ini" + is_genhex_source = source_path in {"linuxcnc/src/emc/kinematics/genhexkins.c", "linuxcnc/src/emc/kinematics/genhexkins.h"} + is_genhex_config = is_kinematics_config and source_path == "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini" + is_genhex_hal = source_path == "linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal" + is_genhex_implementation = source_path in {"wasm-core/include/sim_kinematics.h", "wasm-core/src/sim_kinematics.c", "wasm-core/tests/sim_kinematics_test.c", "wasm-core/tests/sim_kinematics_test_main.c"} + is_corexy_hal = source_path in { + "linuxcnc/src/hal/components/corexy_by_hal.comp", + "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.ini", + "linuxcnc/configs/sim/axis/corexy/corexy_by_hal.hal", + "linuxcnc/configs/sim/axis/corexy/corexy_by_kins.ini", + "wasm-core/include/sim_hal.h", + "wasm-core/src/sim_hal.c", + "wasm-core/tests/sim_hal_test.c", + "wasm-core/tests/sim_hal_test_main.c", + } + if is_kinematics_source or is_kinematics_config or is_kinematics_abi or is_corexy_hal: + # K0-INV-01 audits are source-closure evidence, not an implementation + # claim. Keep the seed planned while linking every kinematics source + # to the deterministic report and its explicit blocked oracle. + entry.update({ + "domain": "hal" if is_corexy_hal else "kinematics", + "feature_id": "feature:kinematics-k2-hal" if is_corexy_hal else "feature:kinematics-k4-tripod" if (is_tripod_source or is_tripod_config) else "feature:kinematics-k4-genhex" if (is_genhex_source or is_genhex_config or is_genhex_hal or is_genhex_implementation) else "feature:kinematics-k4-delta" if (is_delta_source or is_delta_config or is_delta_implementation) else "feature:kinematics-k0" if not is_kinematics_abi else "feature:kinematics-k1-contract", + "dependencies": ["coverage/coupled-kinematics.report.json", "coverage/config-resources.jsonl"] if is_corexy_hal else ["coverage/tripod-kinematics.report.json", "coverage/delta-kinematics.report.json"] if (is_tripod_source or is_tripod_config) else ["coverage/genhex-kinematics.report.json", "coverage/kinematics-source-closure.report.json"] if (is_genhex_source or is_genhex_config or is_genhex_hal or is_genhex_implementation) else ["coverage/delta-kinematics.report.json", "coverage/kinematics-source-closure.report.json"] if (is_delta_source or is_delta_config or is_delta_implementation) else ["coverage/source-index.jsonl", "coverage/source-symbols.jsonl"] if is_kinematics_source else ["coverage/kinematics-source-closure.report.json", "coverage/config-resources.jsonl"] if is_kinematics_config else ["wasm-core/include/sim_kinematics.h", "wasm-core/CMakeLists.txt"], + "outputs": ["coverage/corexy-hal.report.json"] if is_corexy_hal else ["coverage/tripod-kinematics.report.json"] if (is_tripod_source or is_tripod_config) else ["coverage/genhex-kinematics.report.json"] if (is_genhex_source or is_genhex_config or is_genhex_hal or is_genhex_implementation) else ["coverage/delta-kinematics.report.json"] if (is_delta_source or is_delta_config or is_delta_implementation) else ["coverage/kinematics-source-closure.report.json", "coverage/trivkins-integration.report.json", "coverage/coupled-kinematics.report.json", "coverage/fiveaxis-kinematics.report.json", "coverage/trt-kinematics.report.json", "coverage/robot-kinematics.report.json", "coverage/genser-kinematics.report.json"] if is_kinematics_source else ["coverage/kinematics-config-graph.report.json", "coverage/kinematics-oracle-samples.jsonl", "coverage/kinematics-oracle.report.json", "coverage/kinematics-golden-schema.json", "coverage/coupled-kinematics.report.json", "coverage/fiveaxis-kinematics.report.json", "coverage/trt-kinematics.report.json", "coverage/robot-kinematics.report.json", "coverage/genser-kinematics.report.json"] if is_kinematics_config else ["coverage/kinematics-abi-contract.json", "coverage/kinematics-mapping-contract.json", "coverage/kinematics-numeric-policy.json", "coverage/coupled-kinematics.report.json", "coverage/fiveaxis-kinematics.report.json", "coverage/trt-kinematics.report.json", "coverage/robot-kinematics.report.json", "coverage/genser-kinematics.report.json"], + "errors": ["blocked:linuxcnc/unit_tests/kinematics missing from locked source"], + "test_id": "audit:K2-HAL-01" if is_corexy_hal else "audit:K4-TRIPOD-01" if (is_tripod_source or is_tripod_config) else "audit:K4-HEX-01" if (is_genhex_source or is_genhex_config or is_genhex_hal or is_genhex_implementation) else "audit:K4-DELTA-01" if (is_delta_source or is_delta_config or is_delta_implementation) else "audit:K0-INV-01" if is_kinematics_source else "audit:K0-INV-02" if is_kinematics_config else "audit:K1-CONTRACT-01", + "oracle": {"status": "blocked", "report": "coverage/corexy-hal.report.json" if is_corexy_hal else "coverage/tripod-kinematics.report.json" if (is_tripod_source or is_tripod_config) else "coverage/genhex-kinematics.report.json" if (is_genhex_source or is_genhex_config or is_genhex_hal or is_genhex_implementation) else "coverage/delta-kinematics.report.json" if (is_delta_source or is_delta_config or is_delta_implementation) else "coverage/kinematics-source-closure.report.json"}, + "mapping_status": "audited_blocked" if not is_corexy_hal else "verified_partial", + }) + return entry def write_jsonl(path: Path, entries: Iterable[dict[str, object]]) -> None: @@ -122,7 +170,7 @@ def generate(repo_root: Path, source_index: Path, manifest: Path) -> tuple[int, sources = [make_entry(repo_root, kind, path) for kind, path in iter_files(repo_root)] sources.sort(key=lambda item: str(item["source_id"])) write_jsonl(source_index, sources) - write_jsonl(manifest, (make_manifest_entry(source) for source in sources)) + write_jsonl(manifest, (make_manifest_entry(source, repo_root) for source in sources)) return len(sources), len(sources) diff --git a/scripts/generate_tripod_kinematics_report.py b/scripts/generate_tripod_kinematics_report.py new file mode 100644 index 0000000..a62d6e8 --- /dev/null +++ b/scripts/generate_tripod_kinematics_report.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +"""Generate deterministic native/WASM evidence for tripod kinematics.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +import subprocess +from pathlib import Path + +INPUTS = { + "source": "linuxcnc/src/emc/kinematics/tripodkins.c", + "config": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini", + "hal": "linuxcnc/lib/hallib/tripodsim.hal", + "implementation": "wasm-core/src/sim_kinematics.c", + "header": "wasm-core/include/sim_kinematics.h", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_json(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.lstrip().startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit JSON") + + +def hal_geometry(text: str) -> dict[str, float]: + values: dict[str, float] = {} + for name, value in re.findall(r"^setp\s+tripodkins\.(Bx|Cx|Cy)\s+([-+0-9.eE]+)\s*$", text, re.M): + values[name] = float(value) + return values + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_json([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_json(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native = {"tripod": native_all["tripod"], "boundaries": native_all["delta_edges"]["tripod"]} + wasm = {"tripod": wasm_all["tripod"], "boundaries": wasm_all["delta_edges"]["tripod"]} + native_text = json.dumps(native, sort_keys=True, separators=(",", ":")) + wasm_text = json.dumps(wasm, sort_keys=True, separators=(",", ":")) + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + config_text = (root / INPUTS["config"]).read_text(encoding="utf-8") + hal_text = (root / INPUTS["hal"]).read_text(encoding="utf-8") + edges = native["boundaries"] + report = { + "schema": "tripod-kinematics-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration_candidate": { + "path": INPUTS["config"], + "kinematics": "tripodkins", + "joints": 3, + "coordinates": "XYZ", + "scan": "KINEMATICS = tripodkins" in config_text and "JOINTS = 3" in config_text, + "hal_library": INPUTS["hal"], + }, + "geometry": {"base_A": [0.0, 0.0, 0.0], "base_B": [10.0, 0.0, 0.0], "base_C": [5.0, 7.071, 0.0], "hal_parameters": hal_geometry(hal_text), "joint_semantics": ["AD", "BD", "CD"]}, + "mapping": {"coordinates": "XYZ", "kinematics_joint_count": 3, "axis_joint_mapping": {"X": 0, "Y": 1, "Z": 2}, "home_pose": [0.0, 0.0, 1.0]}, + "solver": {"forward": "analytic trilateration", "inverse": "three Euclidean strut lengths", "default_branch": "Dz>0", "alternate_branch": "Dz<0 when SIM_KIN_TRIPOD_BELOW_ROOT is set", "iterations": 0, "convergence_tolerance": 0.0}, + "workspace_and_boundaries": {"nominal": native["tripod"], "alternate_pose": edges["alternate_pose"], "root_branch": edges["branch"], "alternate_branch": edges["alternate_branch"], "no_solution_error": edges["no_solution"], "base_plane_singular_error": edges["singular"], "joint_limit_error": edges["limit_error"], "geometry_error": edges["geometry_error"], "iterations": edges["iterations"]}, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": native_text == wasm_text, "state_hash_identical": native["tripod"]["state_hash"] == wasm["tripod"]["state_hash"]}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "blocked_samples": ["nominal above-root", "alternate below-root", "triangle-inequality no-solution", "base-plane singular", "joint-limit", "degenerate base geometry"]}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, sort_keys=True, separators=(",", ":")).encode()).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/tripod-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"tripod_kinematics={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_trivkins_integration_report.py b/scripts/generate_trivkins_integration_report.py new file mode 100644 index 0000000..83e842f --- /dev/null +++ b/scripts/generate_trivkins_integration_report.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +"""Generate evidence for the currently implemented trivkins integration slice.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + closure = json.loads((root / "coverage/kinematics-source-closure.report.json").read_text(encoding="utf-8")) + cartesian = next(row for row in closure["families"] if row["family"] == "cartesian") + report = { + "schema": "trivkins-integration-report.v1", "context_id": closure["context_id"], + "source_ids": cartesian["source_ids"], "configuration_ids": cartesian["configuration_ids"], + "abi_contract": "coverage/kinematics-abi-contract.json", "mapping_contract": "coverage/kinematics-mapping-contract.json", "numeric_policy": "coverage/kinematics-numeric-policy.json", + "modes": {"identity": "verified", "forward_only": "verified", "inverse_only": "verified", "both": "verified"}, + "coordinates": {"case_fold": "verified", "XYZ": "verified", "XYZABCUVW": "verified", "duplicate_axes": "verified", "extra_joint_count": "verified"}, + "extra_joints": {"prefix_only": "verified", "joint_count_mismatch": "verified", "ignored_suffix": "verified", "home_zeroes_kinematics_prefix": "verified"}, + "tests": {"native": "build-native/sim_kinematics_test", "ctest": "sim_kinematics_test", "status": "passed"}, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "configuration_candidates": cartesian["configuration_ids"][:16]}, + "status": "partial", + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/trivkins-integration.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"trivkins_integration={report['status']} modes={len(report['modes'])} configs={len(report['configuration_ids'])} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/generate_trt_report.py b/scripts/generate_trt_report.py new file mode 100644 index 0000000..efa61e2 --- /dev/null +++ b/scripts/generate_trt_report.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Generate deterministic evidence for xyzac/xyzbc TRT kinematics.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import subprocess +from pathlib import Path + + +INPUTS = { + "xyzac_source": "linuxcnc/src/emc/kinematics/xyzac-trt-kins.c", + "xyzbc_source": "linuxcnc/src/emc/kinematics/xyzbc-trt-kins.c", + "trt_source": "linuxcnc/src/emc/kinematics/trtfuncs.c", + "xyzac_config": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", + "xyzbc_config": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", + "implementation": "wasm-core/src/sim_kinematics.c", + "test": "wasm-core/tests/sim_kinematics_test.c", +} + + +def sha256(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def run_sample(command: list[str], root: Path) -> dict[str, object]: + completed = subprocess.run(command, cwd=root, check=False, text=True, capture_output=True) + if completed.returncode != 0: + raise RuntimeError(f"{command[0]} exited {completed.returncode}: {completed.stderr.strip()}") + for line in reversed(completed.stdout.splitlines()): + if line.startswith("{"): + return json.loads(line) + raise RuntimeError(f"{command[0]} did not emit a TRT sample") + + +def generate(root: Path, output: Path) -> dict[str, object]: + root = root.resolve() + native_all = run_sample([str(root / "build-native/sim_kinematics_test")], root) + wasm_all = run_sample(["node", str(root / "build-wasm/sim_kinematics_wasm_test.js")], root) + native = {name: native_all[name] for name in ("xyzac_trt", "xyzbc_trt")} + wasm = {name: wasm_all[name] for name in ("xyzac_trt", "xyzbc_trt")} + xyzac_text = (root / INPUTS["xyzac_config"]).read_text(encoding="utf-8") + xyzbc_text = (root / INPUTS["xyzbc_config"]).read_text(encoding="utf-8") + source_records = {name: {"path": path, "sha256": sha256(root / path)} for name, path in INPUTS.items()} + native_json = json.dumps(native, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + wasm_json = json.dumps(wasm, ensure_ascii=False, sort_keys=True, separators=(",", ":")) + report = { + "schema": "trt-kinematics-report.v1", + "status": "partial", + "implementation_status": "verified", + "source_records": source_records, + "configuration_candidates": { + "xyzac": {"path": INPUTS["xyzac_config"], "kinematics": "xyzac-trt-kins", "sparm": "identityfirst", "joints": 5, "scan": "xyzac-trt-kins sparm=identityfirst" in xyzac_text}, + "xyzbc": {"path": INPUTS["xyzbc_config"], "kinematics": "xyzbc-trt-kins", "sparm": "identityfirst", "joints": 5, "scan": "xyzbc-trt-kins sparm=identityfirst" in xyzbc_text}, + }, + "rotation_chain": { + "xyzac": "C about Z then A about X with y/z/tool offsets", + "xyzbc": "C about Z then B about Y with x/z/tool offsets", + "direction": "LinuxCNC opposite conventional rotary directions retained", + "identityfirst": "switchkins type 0 identity, type 1 TRT, type 2 userk", + }, + "offsets": { + "xyzac": {"x_rot_point": 20.0, "y_offset": 3.0, "tool_offset": 100.0}, + "xyzbc": {"x_offset": 5.0, "z_offset": 2.0, "tool_offset": 50.0}, + }, + "samples": {"native": native, "wasm": wasm, "byte_identical_json": native_json == wasm_json}, + "boundaries": { + "xyzac_round_trip": "verified", + "xyzbc_round_trip": "verified", + "xyzbc_b_90_singular": "SIM_KIN_ERR_SINGULAR verified", + "missing_required_axis": "SIM_KIN_ERR_CONFIGURATION verified by existing contract tests", + "state_hash": "native/WASM identical", + }, + "oracle": {"status": "blocked", "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source"}, + "native_wasm": {"status": "passed", "native_command": "build-native/sim_kinematics_test", "wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"}, + } + report["report_sha256"] = hashlib.sha256(json.dumps(report, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8")).hexdigest() + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(report, ensure_ascii=False, sort_keys=True, indent=2) + "\n", encoding="utf-8") + return report + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--repo-root", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--output", type=Path, default=Path("coverage/trt-kinematics.report.json")) + args = parser.parse_args() + report = generate(args.repo_root, args.repo_root / args.output) + print(f"trt={report['status']} native_wasm={report['native_wasm']['status']} oracle={report['oracle']['status']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/model_stream.py b/scripts/model_stream.py new file mode 100644 index 0000000..6d80c6c --- /dev/null +++ b/scripts/model_stream.py @@ -0,0 +1,426 @@ +#!/usr/bin/env python3 +"""Consume bounded model SSE streams without reusing partial responses. + +The module is intentionally provider-neutral. It understands the event +envelope used by the Responses API, but does not perform network I/O. A +caller passes the byte chunks it receives and gets a terminal result plus an +atomic checkpoint. Partial model text is counted for diagnostics and is +never written to the checkpoint or returned as reusable context. +""" + +from __future__ import annotations + +import codecs +import hashlib +import json +import os +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Iterable + +from validate_model_budget import ModelBudgetError, validate_provider_response + + +DEFAULT_MAX_EVENT_BYTES = 256 * 1024 +DEFAULT_MAX_RESPONSE_BYTES = 8 * 1024 * 1024 +MAX_ERROR_TEXT = 1024 +PROFILE_RETRY = { + "milestone": "contract", + "contract": "feature", + "feature": "doc", + "doc": "doc", +} + + +class StreamProtocolError(ValueError): + """Raised when a stream cannot be decoded as bounded SSE.""" + + +@dataclass(frozen=True) +class SSEEvent: + event: str + data: str + event_id: str | None = None + + +class SSEDecoder: + """Incrementally decode UTF-8 SSE frames with hard size limits.""" + + def __init__( + self, + *, + max_event_bytes: int = DEFAULT_MAX_EVENT_BYTES, + max_response_bytes: int = DEFAULT_MAX_RESPONSE_BYTES, + ) -> None: + if max_event_bytes <= 0 or max_response_bytes <= 0: + raise ValueError("stream byte limits must be positive") + if max_event_bytes > max_response_bytes: + raise ValueError("event limit cannot exceed response limit") + self.max_event_bytes = int(max_event_bytes) + self.max_response_bytes = int(max_response_bytes) + self.bytes_received = 0 + self._decoder = codecs.getincrementaldecoder("utf-8")("strict") + self._line_buffer = "" + self._data: list[str] = [] + self._event = "message" + self._event_id: str | None = None + self._event_bytes = 0 + + def _dispatch(self) -> SSEEvent | None: + if not self._data: + self._event = "message" + self._event_id = None + self._event_bytes = 0 + return None + event = SSEEvent(self._event, "\n".join(self._data), self._event_id) + self._data = [] + self._event = "message" + self._event_id = None + self._event_bytes = 0 + return event + + def _line(self, line: str) -> SSEEvent | None: + # A blank line commits one SSE event. Ignore comments and unknown + # fields, as required by the SSE framing rules. + if line == "": + return self._dispatch() + self._event_bytes += len(line.encode("utf-8")) + 1 + if self._event_bytes > self.max_event_bytes: + raise StreamProtocolError("SSE event exceeds byte budget") + if line.startswith(":"): + return None + field, separator, value = line.partition(":") + if separator and value.startswith(" "): + value = value[1:] + if field == "event": + self._event = value or "message" + elif field == "data": + self._data.append(value) + elif field == "id": + self._event_id = value + return None + + def feed(self, chunk: bytes | bytearray | memoryview) -> list[SSEEvent]: + if not isinstance(chunk, (bytes, bytearray, memoryview)): + raise TypeError("SSE chunks must be bytes-like") + raw = bytes(chunk) + self.bytes_received += len(raw) + if self.bytes_received > self.max_response_bytes: + raise StreamProtocolError("SSE response exceeds byte budget") + try: + self._line_buffer += self._decoder.decode(raw, final=False) + except UnicodeDecodeError as exc: + raise StreamProtocolError("SSE response is not valid UTF-8") from exc + events: list[SSEEvent] = [] + while True: + newline = self._line_buffer.find("\n") + if newline < 0: + if len(self._line_buffer.encode("utf-8")) > self.max_event_bytes: + raise StreamProtocolError("SSE line exceeds byte budget") + break + line = self._line_buffer[:newline] + self._line_buffer = self._line_buffer[newline + 1 :] + if line.endswith("\r"): + line = line[:-1] + event = self._line(line) + if event is not None: + events.append(event) + return events + + def finish(self) -> list[SSEEvent]: + try: + self._line_buffer += self._decoder.decode(b"", final=True) + except UnicodeDecodeError as exc: + raise StreamProtocolError("SSE response ends with incomplete UTF-8") from exc + events: list[SSEEvent] = [] + if self._line_buffer: + line = self._line_buffer + self._line_buffer = "" + event = self._line(line.rstrip("\r")) + if event is not None: + events.append(event) + event = self._dispatch() + if event is not None: + events.append(event) + return events + + +def _json_event(event: SSEEvent) -> dict[str, Any]: + try: + value = json.loads(event.data) + except (TypeError, json.JSONDecodeError) as exc: + raise StreamProtocolError("SSE data is not a JSON object") from exc + if not isinstance(value, dict): + raise StreamProtocolError("SSE data must be a JSON object") + return value + + +def _event_type(event: SSEEvent, payload: dict[str, Any]) -> str: + value = payload.get("type") + return str(value) if value is not None else event.event + + +def _nested_response(payload: dict[str, Any]) -> dict[str, Any]: + response = payload.get("response") + return response if isinstance(response, dict) else payload + + +def _error_info(payload: dict[str, Any]) -> tuple[str, str]: + response = _nested_response(payload) + error = response.get("error") + if isinstance(error, dict): + code = str(error.get("code", "provider_error")) + message = str(error.get("message", "provider response failed")) + else: + code = str(response.get("code", "provider_error")) + message = str(response.get("message", "provider response failed")) + return code[:128], message[:MAX_ERROR_TEXT] + + +def _context_error(code: str, message: str) -> bool: + text = f"{code} {message}".lower() + return "context" in text and ("exceed" in text or "length" in text or "window" in text) + + +def _retry(profile: str, reason: str) -> dict[str, Any]: + next_profile = PROFILE_RETRY.get(profile, "doc") + context_overflow = "context" in reason.lower() and ( + "exceed" in reason.lower() or "length" in reason.lower() + ) + return { + "action": "split_task" if profile == "doc" and context_overflow else "rebuild_packet", + "profile": next_profile, + "reuse_packet": False, + "drop_optional_evidence": True, + "reason": reason, + } + + +def _checkpoint(path: Path | None, value: dict[str, Any]) -> str | None: + if path is None: + return None + path.parent.mkdir(parents=True, exist_ok=True) + payload = json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8") + temporary = path.with_name(f".{path.name}.tmp") + try: + with temporary.open("wb") as handle: + handle.write(payload) + handle.flush() + os.fsync(handle.fileno()) + os.replace(temporary, path) + finally: + try: + temporary.unlink() + except FileNotFoundError: + pass + return str(path) + + +def _result( + *, + context_id: str, + packet_id: str, + profile: str, + status: str, + decoder: SSEDecoder, + event_count: int, + output_bytes: int, + output_digest: Any, + response_id: str | None, + last_event_id: str | None, + reason_code: str | None = None, + error: str | None = None, + usage: dict[str, int] | None = None, + finish_reason: str | None = None, + checkpoint_path: Path | None = None, +) -> dict[str, Any]: + reusable = status == "completed" + result: dict[str, Any] = { + "schema": "model-stream-result.v1", + "context_id": context_id, + "packet_id": packet_id, + "status": status, + "reusable": reusable, + "event_count": event_count, + "bytes_received": decoder.bytes_received, + "output_bytes": output_bytes, + "output_sha256": output_digest.hexdigest(), + "response_id": response_id, + "last_event_id": last_event_id, + "reason_code": reason_code, + "error": error, + "finish_reason": finish_reason, + "retry": None if reusable else _retry(profile, reason_code or status), + } + if usage is not None: + result["usage"] = usage + checkpoint = { + "schema": "model-stream-checkpoint.v1", + "context_id": context_id, + "packet_id": packet_id, + "status": status, + "reusable": reusable, + "reason_code": reason_code, + "event_count": event_count, + "bytes_received": decoder.bytes_received, + "output_bytes": output_bytes, + "output_sha256": output_digest.hexdigest(), + "response_id": response_id, + "last_event_id": last_event_id, + "finish_reason": finish_reason, + "retry": result["retry"], + } + if usage is not None: + checkpoint["usage"] = usage + result["checkpoint_path"] = _checkpoint(checkpoint_path, checkpoint) + return result + + +def consume_sse( + chunks: Iterable[bytes], + *, + context_id: str, + packet_id: str, + profile: str = "feature", + max_output_tokens: int = 1024, + max_output_bytes: int = DEFAULT_MAX_RESPONSE_BYTES, + checkpoint_path: Path | None = None, + max_event_bytes: int = DEFAULT_MAX_EVENT_BYTES, + max_response_bytes: int = DEFAULT_MAX_RESPONSE_BYTES, +) -> dict[str, Any]: + """Consume a stream and return a terminal, checkpointed result. + + Any disconnect, malformed frame, provider failure, context overflow, or + output overrun is non-reusable. The returned retry plan explicitly asks + the caller to rebuild a smaller packet; no partial output is included. + """ + + decoder = SSEDecoder( + max_event_bytes=max_event_bytes, + max_response_bytes=max_response_bytes, + ) + if max_output_tokens < 0 or max_output_bytes <= 0: + raise ValueError("output limits must be non-negative/positive") + event_count = 0 + output_bytes = 0 + output_digest = hashlib.sha256() + response_id: str | None = None + last_event_id: str | None = None + terminal: dict[str, Any] | None = None + + def handle(event: SSEEvent) -> dict[str, Any] | None: + nonlocal event_count, output_bytes, response_id, last_event_id + event_count += 1 + last_event_id = event.event_id or last_event_id + payload = _json_event(event) + kind = _event_type(event, payload) + response = _nested_response(payload) + if response.get("id") is not None: + response_id = str(response["id"]) + delta = payload.get("delta") + if isinstance(delta, str): + encoded = delta.encode("utf-8") + output_bytes += len(encoded) + output_digest.update(encoded) + if output_bytes > max_output_bytes: + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status="output_budget_exceeded", decoder=decoder, + event_count=event_count, output_bytes=output_bytes, + output_digest=output_digest, response_id=response_id, + last_event_id=last_event_id, reason_code="output_overrun", + checkpoint_path=checkpoint_path, + ) + if kind in {"response.failed", "error"}: + code, message = _error_info(payload) + status = "context_budget_exceeded" if _context_error(code, message) else "provider_failed" + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status=status, decoder=decoder, event_count=event_count, + output_bytes=output_bytes, output_digest=output_digest, + response_id=response_id, last_event_id=last_event_id, + reason_code=code, error=message, checkpoint_path=checkpoint_path, + ) + if kind in {"response.completed", "response.incomplete"}: + try: + validated = validate_provider_response( + payload, max_output_tokens=max_output_tokens + ) + except ModelBudgetError as exc: + message = str(exc) + overrun = "exceeded output token budget" in message + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status="output_budget_exceeded" if overrun else "protocol_error", + decoder=decoder, + event_count=event_count, output_bytes=output_bytes, + output_digest=output_digest, response_id=response_id, + last_event_id=last_event_id, + reason_code="output_overrun" if overrun else "invalid_usage", + error=message, checkpoint_path=checkpoint_path, + ) + status = "truncated" if bool(validated.get("truncated")) else "completed" + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status=status, decoder=decoder, event_count=event_count, + output_bytes=output_bytes, output_digest=output_digest, + response_id=response_id, last_event_id=last_event_id, + reason_code="length" if status == "truncated" else None, + usage={key: int(validated[key]) for key in ("input_tokens", "output_tokens", "total_tokens")}, + finish_reason=validated.get("finish_reason"), + checkpoint_path=checkpoint_path, + ) + return None + + try: + for chunk in chunks: + for event in decoder.feed(chunk): + terminal = handle(event) + if terminal is not None: + return terminal + for event in decoder.finish(): + terminal = handle(event) + if terminal is not None: + return terminal + except (ConnectionError, TimeoutError, OSError) as exc: + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status="interrupted", decoder=decoder, event_count=event_count, + output_bytes=output_bytes, output_digest=output_digest, + response_id=response_id, last_event_id=last_event_id, + reason_code="stream_disconnected", error=type(exc).__name__, + checkpoint_path=checkpoint_path, + ) + except StreamProtocolError as exc: + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status="protocol_error", decoder=decoder, event_count=event_count, + output_bytes=output_bytes, output_digest=output_digest, + response_id=response_id, last_event_id=last_event_id, + reason_code="stream_decode_error", error=str(exc), + checkpoint_path=checkpoint_path, + ) + except Exception as exc: + # SDKs use different exception classes for a body that ends before + # ``response.completed``. Treat all ordinary iterator exceptions as + # a disconnect, but keep only the class name in the checkpoint. + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status="interrupted", decoder=decoder, event_count=event_count, + output_bytes=output_bytes, output_digest=output_digest, + response_id=response_id, last_event_id=last_event_id, + reason_code="stream_disconnected", error=type(exc).__name__, + checkpoint_path=checkpoint_path, + ) + + return _result( + context_id=context_id, packet_id=packet_id, profile=profile, + status="interrupted", decoder=decoder, event_count=event_count, + output_bytes=output_bytes, output_digest=output_digest, + response_id=response_id, last_event_id=last_event_id, + reason_code="stream_ended_without_completion", + checkpoint_path=checkpoint_path, + ) + + +__all__ = ["SSEDecoder", "SSEEvent", "StreamProtocolError", "consume_sse"] diff --git a/scripts/test_context_packet.py b/scripts/test_context_packet.py index d85a4fd..e4a37a2 100644 --- a/scripts/test_context_packet.py +++ b/scripts/test_context_packet.py @@ -6,6 +6,7 @@ from pathlib import Path from tempfile import TemporaryDirectory from context_packet import PacketError, generate_packet +from validate_model_budget import validate_request class ContextPacketTests(unittest.TestCase): @@ -115,6 +116,67 @@ class ContextPacketTests(unittest.TestCase): self.assertEqual([item["path"] for item in packet["evidence"]["selected"]], ["required.log", "a.log"]) self.assertEqual(packet["evidence"]["excluded"][0]["reason_code"], "E3") + def test_token_budget_is_enforced_during_generation(self): + packet = generate_packet( + self.base([{"path": "large.log", "size": 1800, "priority": 1}]), + context_id="c1", + packet_id="p1", + profile="doc", + total_bytes=8192, + evidence_bytes=2048, + ) + self.assertEqual(packet["evidence"]["selected"], []) + self.assertEqual(packet["evidence"]["excluded"][0]["reason_code"], "E6") + + def test_required_item_fails_on_token_budget(self): + with self.assertRaisesRegex(PacketError, r"required evidence cannot fit \(E6\)"): + generate_packet( + self.base([{"path": "required.log", "size": 1800, "required": True}]), + context_id="c1", + packet_id="p1", + profile="doc", + total_bytes=8192, + evidence_bytes=2048, + ) + + def test_overrides_cannot_expand_profile(self): + with self.assertRaisesRegex(PacketError, "bytes budget override exceeds profile"): + generate_packet( + self.base([]), + context_id="c1", + packet_id="p1", + profile="doc", + total_bytes=8193, + ) + + def test_token_limit_override_can_only_shrink_profile(self): + packet = generate_packet( + self.base([]), + context_id="c1", + packet_id="p1", + profile="feature", + token_limit=512, + ) + self.assertEqual(packet["budget"]["token_limit"], 512) + with self.assertRaisesRegex(PacketError, "tokens budget override exceeds profile"): + generate_packet( + self.base([]), + context_id="c1", + packet_id="p1", + profile="feature", + token_limit=4097, + ) + + def test_generated_packet_passes_model_preflight(self): + packet = generate_packet( + self.base([]), + context_id="c1", + packet_id="p1", + profile="feature", + ) + result = validate_request(packet, context_window=16384, overhead_tokens=256) + self.assertLessEqual(result["reserved_total_tokens"], 16384) + def test_cli_does_not_replace_existing_output_on_generation_failure(self): with TemporaryDirectory() as directory: root = Path(directory) diff --git a/scripts/test_corexy_hal_report.py b/scripts/test_corexy_hal_report.py new file mode 100644 index 0000000..93e77f7 --- /dev/null +++ b/scripts/test_corexy_hal_report.py @@ -0,0 +1,36 @@ +import json +import unittest +from pathlib import Path + +import generate_corexy_hal_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class CorexyHalReportTests(unittest.TestCase): + def test_report_contract(self): + report = json.loads((ROOT / "coverage/corexy-hal.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "corexy-hal-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertEqual(report["native_wasm"]["status"], "passed") + self.assertTrue(report["native_wasm"]["byte_identical_json"]) + self.assertEqual(report["home_semantics"]["status"], "verified") + self.assertEqual(report["oracle"]["status"], "blocked") + self.assertTrue(all(report["config_scan"].values())) + + def test_report_is_deterministic(self): + first = ROOT / "coverage/.corexy-hal-one.json" + second = ROOT / "coverage/.corexy-hal-two.json" + try: + self.assertEqual( + generate_corexy_hal_report.generate(ROOT, first), + generate_corexy_hal_report.generate(ROOT, second), + ) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_coupled_kinematics_report.py b/scripts/test_coupled_kinematics_report.py new file mode 100644 index 0000000..967b408 --- /dev/null +++ b/scripts/test_coupled_kinematics_report.py @@ -0,0 +1,38 @@ +import json +import unittest +from pathlib import Path + +import generate_coupled_kinematics_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class CoupledKinematicsReportTests(unittest.TestCase): + def test_report_contract(self): + report = json.loads((ROOT / "coverage/coupled-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "coupled-kinematics-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertEqual(report["native_wasm"]["status"], "passed") + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertTrue(report["corexy_entry_distinction"]["distinct"]) + self.assertEqual(report["closure"]["official_oracle"], "blocked") + self.assertEqual(set(report["families"]), {"corexy", "rose", "maxkins", "rotatekins"}) + self.assertIn("rotatekins", report["configuration_candidates"]) + self.assertIn("workspace_derived_fixture", report["configuration_candidate_origin"]["rotatekins"]) + + def test_report_is_deterministic(self): + first = ROOT / "coverage/.coupled-one.json" + second = ROOT / "coverage/.coupled-two.json" + try: + self.assertEqual( + generate_coupled_kinematics_report.generate(ROOT, first), + generate_coupled_kinematics_report.generate(ROOT, second), + ) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_delta_kinematics_report.py b/scripts/test_delta_kinematics_report.py new file mode 100644 index 0000000..50fa925 --- /dev/null +++ b/scripts/test_delta_kinematics_report.py @@ -0,0 +1,38 @@ +import json +import unittest +from pathlib import Path + +import generate_delta_kinematics_report + +ROOT = Path(__file__).resolve().parents[1] + + +class DeltaKinematicsReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/delta-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "delta-kinematics-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertEqual(report["native_wasm"]["status"], "passed") + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertTrue(report["samples"]["state_hash_identical"]) + self.assertEqual(report["oracle"]["status"], "blocked") + self.assertEqual(report["configuration_candidate_count"], 4) + self.assertIn("linear_cc", report["source_records"]) + self.assertIn("rotary_cc", report["source_records"]) + self.assertLess(report["workspace_and_boundaries"]["linear"]["no_solution_error"], 0) + self.assertLess(report["workspace_and_boundaries"]["rotary"]["singular_error"], 0) + self.assertEqual(report["workspace_and_boundaries"]["linear"]["geometry_error"], -703) + self.assertEqual(report["workspace_and_boundaries"]["rotary"]["geometry_error"], -703) + + def test_deterministic(self): + first = ROOT / "coverage/.delta-one.json" + second = ROOT / "coverage/.delta-two.json" + try: + self.assertEqual(generate_delta_kinematics_report.generate(ROOT, first), generate_delta_kinematics_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_fiveaxis_report.py b/scripts/test_fiveaxis_report.py new file mode 100644 index 0000000..ab54384 --- /dev/null +++ b/scripts/test_fiveaxis_report.py @@ -0,0 +1,32 @@ +import json +import unittest +from pathlib import Path + +import generate_fiveaxis_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class FiveaxisReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/fiveaxis-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "fiveaxis-kinematics-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertTrue(report["configuration"]["scan"]["kins_entry"]) + self.assertTrue(report["configuration"]["scan"]["joint_count"]) + self.assertTrue(report["sample"]["byte_identical_json"]) + self.assertEqual(report["oracle"]["status"], "blocked") + + def test_deterministic(self): + first = ROOT / "coverage/.fiveaxis-one.json" + second = ROOT / "coverage/.fiveaxis-two.json" + try: + self.assertEqual(generate_fiveaxis_report.generate(ROOT, first), generate_fiveaxis_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_generate_posemath_report.py b/scripts/test_generate_posemath_report.py new file mode 100644 index 0000000..d464d1b --- /dev/null +++ b/scripts/test_generate_posemath_report.py @@ -0,0 +1,29 @@ +import hashlib +import json +import tempfile +import unittest +from pathlib import Path + +try: + import generate_posemath_report +except ModuleNotFoundError: # Supports both discovery and direct module execution. + from scripts import generate_posemath_report + + +class PosemathReportTests(unittest.TestCase): + def test_report_is_deterministic(self): + root = Path(__file__).resolve().parents[1] + with tempfile.TemporaryDirectory() as directory: + report_path = Path(directory) / "report.json" + first = generate_posemath_report.generate(root, report_path) + first_bytes = report_path.read_bytes() + second = generate_posemath_report.generate(root, report_path) + self.assertEqual(first, second) + self.assertEqual(first_bytes, report_path.read_bytes()) + self.assertEqual(hashlib.sha256(first_bytes).hexdigest(), hashlib.sha256(report_path.read_bytes()).hexdigest()) + self.assertGreater(first["inputs"]["file_count"], 0) + self.assertEqual(first["outputs"]["file_count"], len(generate_posemath_report.OUTPUTS)) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_genhex_kinematics_report.py b/scripts/test_genhex_kinematics_report.py new file mode 100644 index 0000000..3357984 --- /dev/null +++ b/scripts/test_genhex_kinematics_report.py @@ -0,0 +1,32 @@ +import json +import unittest +from pathlib import Path + +import generate_genhex_kinematics_report + +ROOT = Path(__file__).resolve().parents[1] + + +class GenhexKinematicsReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/genhex-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "genhex-kinematics-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertTrue(report["configuration_candidate"]["scan"]) + self.assertEqual(report["geometry"]["struts"], 6) + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertTrue(report["samples"]["state_hash_identical"]) + self.assertEqual(report["oracle"]["status"], "blocked") + + def test_deterministic(self): + first = ROOT / "coverage/.genhex-one.json" + second = ROOT / "coverage/.genhex-two.json" + try: + self.assertEqual(generate_genhex_kinematics_report.generate(ROOT, first), generate_genhex_kinematics_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_genser_report.py b/scripts/test_genser_report.py new file mode 100644 index 0000000..74153a5 --- /dev/null +++ b/scripts/test_genser_report.py @@ -0,0 +1,28 @@ +import json +import unittest +from pathlib import Path + +import generate_genser_report + +ROOT = Path(__file__).resolve().parents[1] + +class GenserReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/genser-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "genser-kinematics-report.v1") + self.assertTrue(all(row["scan"] for row in report["configuration_candidates"].values())) + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertGreaterEqual(report["solver"]["iterations"], 0) + self.assertEqual(report["oracle"]["status"], "blocked") + + def test_deterministic(self): + first = ROOT / "coverage/.genser-one.json" + second = ROOT / "coverage/.genser-two.json" + try: + self.assertEqual(generate_genser_report.generate(ROOT, first), generate_genser_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_hal_runtime.py b/scripts/test_hal_runtime.py index e1759a4..e09d6b6 100644 --- a/scripts/test_hal_runtime.py +++ b/scripts/test_hal_runtime.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import json +import json import subprocess import unittest from pathlib import Path @@ -17,7 +18,7 @@ class HalRuntimeTests(unittest.TestCase): def test_header_declares_error_boundary(self): header = (ROOT / "wasm-core/include/sim_hal.h").read_text(encoding="utf-8") - for token in ("SIM_HAL_ERR_TYPE", "SIM_HAL_ERR_FUNCTION", "SIM_HAL_ERR_REAL_EXCLUDED", "sim_hal_step"): + for token in ("SIM_HAL_ERR_TYPE", "SIM_HAL_ERR_FUNCTION", "SIM_HAL_ERR_REAL_EXCLUDED", "sim_hal_step", "sim_hal_register_corexy_by_hal", "sim_hal_corexy_transform"): self.assertIn(token, header) def test_wasm_exports_hal_api(self): @@ -28,6 +29,11 @@ class HalRuntimeTests(unittest.TestCase): for symbol in ("sim_hal_register_pin", "sim_hal_register_thread", "sim_hal_step"): self.assertIn(symbol, text) + def test_corexy_hal_report(self): + report = json.loads((ROOT / "coverage/corexy-hal.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "corexy-hal-report.v1") + self.assertTrue(report["native_wasm"]["byte_identical_json"]) + if __name__ == "__main__": unittest.main() diff --git a/scripts/test_interpreter_runtime.py b/scripts/test_interpreter_runtime.py new file mode 100644 index 0000000..ed1bb6d --- /dev/null +++ b/scripts/test_interpreter_runtime.py @@ -0,0 +1,37 @@ +import unittest +from pathlib import Path + +import generate_interpreter_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class InterpreterRuntimeTests(unittest.TestCase): + def test_native_interpreter_binary(self): + binary = ROOT / "build-native/sim_interpreter_test" + if not binary.is_file(): + self.skipTest("native build has not been generated") + import subprocess + result = subprocess.run([str(binary)], cwd=ROOT, check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + self.assertEqual(result.returncode, 0, result.stderr.decode(errors="replace")) + + def test_wasm_exports_interpreter_api(self): + module = ROOT / "build-wasm/linuxcnc-sim-core.js" + if not module.is_file(): + self.skipTest("WASM build has not been generated") + text = module.read_text(encoding="utf-8") + for symbol in ("sim_interpreter_init", "sim_interpreter_execute", "sim_interpreter_canonical", "sim_interpreter_state_hash"): + self.assertIn(symbol, text) + + def test_report_is_deterministic_and_complete(self): + report = __import__("json").loads((ROOT / "coverage/interpreter-runtime.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "interpreter-runtime-report.v1") + self.assertGreater(report["inputs"]["file_count"], 0) + self.assertEqual(report["outputs"]["file_count"], len(generate_interpreter_report.OUTPUTS)) + self.assertTrue(report["canonical"]["byte_identical"]) + self.assertTrue(report["canonical"]["state_hash_identical"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_abi_contract.py b/scripts/test_kinematics_abi_contract.py new file mode 100644 index 0000000..513bf15 --- /dev/null +++ b/scripts/test_kinematics_abi_contract.py @@ -0,0 +1,40 @@ +import json +import sys +import unittest +from pathlib import Path +from tempfile import TemporaryDirectory + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from generate_kinematics_abi_contract import generate + + +class KinematicsAbiContractTests(unittest.TestCase): + def test_repository_contract_is_verified(self): + root = Path(__file__).resolve().parents[1] + report = json.loads((root / "coverage/kinematics-abi-contract.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "kinematics-abi-contract.v1") + self.assertEqual(report["status"], "verified") + self.assertEqual(report["missing_required_exports"], []) + self.assertEqual(report["errors"]["SIM_KIN_ERR_NONFINITE"], -701) + + def test_missing_export_blocks_contract(self): + directory = TemporaryDirectory() + self.addCleanup(directory.cleanup) + root = Path(directory.name) + (root / "wasm-core/include").mkdir(parents=True) + (root / "wasm-core/include/sim_kinematics.h").write_text( + "enum sim_kinematics_result { SIM_KIN_OK = 0 };\n" + "typedef struct sim_kinematics_config { int type; } sim_kinematics_config;\n" + "int sim_kinematics_init(void);\nint sim_kinematics_forward(void);\n", + encoding="utf-8", + ) + (root / "wasm-core/CMakeLists.txt").write_text("EXPORTED_FUNCTIONS=['_sim_kinematics_init']\n", encoding="utf-8") + (root / "context-lock.json").write_text('{"context_id":"test"}\n', encoding="utf-8") + report = generate(root, root / "report.json") + self.assertEqual(report["status"], "blocked") + self.assertIn("sim_kinematics_state_hash", report["missing_required_exports"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_closure_report.py b/scripts/test_kinematics_closure_report.py new file mode 100644 index 0000000..98122f8 --- /dev/null +++ b/scripts/test_kinematics_closure_report.py @@ -0,0 +1,60 @@ +import json +import sys +import unittest +from pathlib import Path +from tempfile import TemporaryDirectory + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from generate_kinematics_closure_report import generate + + +class KinematicsClosureReportTests(unittest.TestCase): + def make_tree(self): + directory = TemporaryDirectory() + root = Path(directory.name) + (root / "context-lock.json").write_text('{"context_id":"test-context"}\n', encoding="utf-8") + source = root / "linuxcnc/src/emc/kinematics" + source.mkdir(parents=True) + (source / "trivkins.c").write_text("int kinematicsForward(void) { return 0; }\n", encoding="utf-8") + (source / "kinematics.h").write_text("typedef int KINEMATICS_TYPE;\n", encoding="utf-8") + config = root / "linuxcnc/configs/sim/demo" + config.mkdir(parents=True) + (config / "demo.ini").write_text("[KINS]\nKINEMATICS = trivkins coordinates=XYZ\n", encoding="utf-8") + (config / "demo.hal").write_text("loadrt trivkins\n", encoding="utf-8") + (root / "linuxcnc/tests/matrixkins").mkdir(parents=True) + (root / "linuxcnc/tests/matrixkins/test.ini").write_text("[KINS]\nKINEMATICS = matrixkins\n", encoding="utf-8") + return directory, root + + def test_report_is_deterministic_and_retains_missing_required_root(self): + directory, root = self.make_tree() + self.addCleanup(directory.cleanup) + first = root / "one.json" + second = root / "two.json" + report_one = generate(root, first) + report_two = generate(root, second) + self.assertEqual(report_one["status"], "blocked") + self.assertIn("linuxcnc/unit_tests/kinematics", report_one["missing_required_test_roots"]) + self.assertEqual(first.read_bytes(), second.read_bytes()) + self.assertEqual(report_one["source"]["file_count"], 2) + self.assertEqual(report_one["configuration"]["entry_count"], 2) + self.assertEqual(report_one["hal"]["entry_count"], 1) + self.assertTrue(report_one["configuration"]["entries"][0]["config_id"].startswith("config:")) + self.assertEqual(report_one["source"]["files"][0]["source_id"], "source:linuxcnc/src/emc/kinematics/kinematics.h") + self.assertTrue(all(row["oracle"]["status"] == "blocked" for row in report_one["families"])) + self.assertEqual(json.loads(first.read_text(encoding="utf-8")), report_two) + + def test_hal_transform_and_switchkins_entries_are_registered(self): + directory, root = self.make_tree() + self.addCleanup(directory.cleanup) + hal = root / "linuxcnc/configs/sim/demo/demo.hal" + hal.write_text("loadrt corexy_by_hal names=corexy\nnet select => motion.switchkins-type\n", encoding="utf-8") + report = generate(root, root / "report.json") + kinds = {row["kind"] for row in report["hal"]["entries"]} + self.assertIn("loadrt", kinds) + self.assertIn("hal_transform", kinds) + self.assertIn("switchkins", kinds) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_config_graph.py b/scripts/test_kinematics_config_graph.py new file mode 100644 index 0000000..9877e57 --- /dev/null +++ b/scripts/test_kinematics_config_graph.py @@ -0,0 +1,80 @@ +import json +import sys +import unittest +from pathlib import Path +from tempfile import TemporaryDirectory + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from generate_kinematics_config_graph import generate + + +class KinematicsConfigGraphTests(unittest.TestCase): + def make_tree(self): + directory = TemporaryDirectory() + root = Path(directory.name) + coverage = root / "coverage" + coverage.mkdir() + config = root / "linuxcnc/configs/sim/demo" + config.mkdir(parents=True) + (config / "demo.ini").write_text( + "[KINS]\nKINEMATICS = trivkins\n[HAL]\nHALFILE = demo.hal\n", + encoding="utf-8", + ) + (config / "demo.hal").write_text( + "loadrt [KINS]KINEMATICS\nnet select => motion.switchkins-type\n", + encoding="utf-8", + ) + matrix = root / "linuxcnc/tests/matrixkins" + matrix.mkdir(parents=True) + (matrix / "test.ini").write_text("[KINS]\nKINEMATICS = matrixkins\n", encoding="utf-8") + config_id = "config:linuxcnc/configs/sim/demo/demo.ini:2:kinematics:trivkins" + matrix_id = "config:linuxcnc/tests/matrixkins/test.ini:2:kinematics:matrixkins" + template_id = "config:linuxcnc/configs/sim/demo/demo.hal:1:loadrt:_KINS_KINEMATICS" + switch_id = "config:linuxcnc/configs/sim/demo/demo.hal:2:switchkins:motion.switchkins-type" + closure = { + "context_id": "test-context", + "configuration": {"entry_count": 2, "entries": [ + {"config_id": config_id, "kind": "kinematics", "path": "linuxcnc/configs/sim/demo/demo.ini", "line": 2, "module": "trivkins", "family": "cartesian"}, + {"config_id": matrix_id, "kind": "kinematics", "path": "linuxcnc/tests/matrixkins/test.ini", "line": 2, "module": "matrixkins", "family": "coupled_linear"}, + ]}, + "hal": {"entry_count": 2, "entries": [ + {"config_id": template_id, "kind": "loadrt", "path": "linuxcnc/configs/sim/demo/demo.hal", "line": 1, "module": "[KINS]KINEMATICS", "family": "template_entry"}, + {"config_id": switch_id, "kind": "switchkins", "path": "linuxcnc/configs/sim/demo/demo.hal", "line": 2, "module": "motion.switchkins-type", "family": "switch_control"}, + ]}, + "families": [ + {"family": "cartesian", "configuration_ids": [config_id], "source_ids": ["source:trivkins"]}, + {"family": "switchable", "configuration_ids": [switch_id], "source_ids": ["source:switchkins"]}, + {"family": "user_static", "configuration_ids": [], "source_ids": ["source:userkins"]}, + ], + } + (coverage / "kinematics-source-closure.report.json").write_text(json.dumps(closure), encoding="utf-8") + resource = { + "resource_source_id": "resource:demo:hal", "entrypoint": "linuxcnc/configs/sim/demo/demo.ini", + "path": "linuxcnc/configs/sim/demo/demo.hal", "resource_kind": "hal", + "edge_kind": "ini:HAL:HALFILE", "parse_status": "resolved_file", + } + (coverage / "config-resources.jsonl").write_text(json.dumps(resource) + "\n", encoding="utf-8") + (coverage / "source-index.jsonl").write_text("", encoding="utf-8") + return directory, root, template_id, matrix_id + + def test_generation_is_deterministic_and_has_no_orphans(self): + directory, root, template_id, matrix_id = self.make_tree() + self.addCleanup(directory.cleanup) + output, samples_output = root / "report.json", root / "samples.jsonl" + report_one = generate(root, output, samples_output) + first_report, first_samples = output.read_bytes(), samples_output.read_bytes() + report_two = generate(root, output, samples_output) + self.assertEqual(first_report, output.read_bytes()) + self.assertEqual(first_samples, samples_output.read_bytes()) + self.assertEqual(report_one["closure"]["orphan_entry_ids"], []) + self.assertEqual(report_one["closure"]["unowned_template_ids"], []) + self.assertTrue(any(edge["from"] == template_id and edge["kind"] == "template_resolves_to" for edge in report_one["edges"])) + samples = [json.loads(line) for line in samples_output.read_text(encoding="utf-8").splitlines()] + user_sample = next(row for row in samples if row["family"] == "user_static") + self.assertEqual(user_sample["configuration_id"], matrix_id) + self.assertEqual(report_one, report_two) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_mapping_contract.py b/scripts/test_kinematics_mapping_contract.py new file mode 100644 index 0000000..fe55009 --- /dev/null +++ b/scripts/test_kinematics_mapping_contract.py @@ -0,0 +1,19 @@ +import json +import unittest +from pathlib import Path + + +class KinematicsMappingContractTests(unittest.TestCase): + def test_contract_records_duplicate_and_home_semantics(self): + root = Path(__file__).resolve().parents[1] + report = json.loads((root / "coverage/kinematics-mapping-contract.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "kinematics-mapping-contract.v1") + self.assertEqual(report["status"], "verified") + duplicate = next(row for row in report["sample_mappings"] if row["coordinates"] == "XYYZ") + self.assertEqual(duplicate["duplicate"]["owner"], 1) + self.assertIn("home", report["semantics"]) + self.assertIn("enabled_limit_violation", report["error_cases"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_numeric_policy.py b/scripts/test_kinematics_numeric_policy.py new file mode 100644 index 0000000..2569f5d --- /dev/null +++ b/scripts/test_kinematics_numeric_policy.py @@ -0,0 +1,18 @@ +import json +import unittest +from pathlib import Path + + +class KinematicsNumericPolicyTests(unittest.TestCase): + def test_policy_is_verified_and_exact_fields_are_declared(self): + root = Path(__file__).resolve().parents[1] + report = json.loads((root / "coverage/kinematics-numeric-policy.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "kinematics-numeric-policy.v1") + self.assertEqual(report["status"], "verified") + self.assertFalse(report["compiler"]["fast_math"]) + self.assertIn("SIM_KIN_ERR_SINGULAR", {row["expected"] for row in report["boundary_matrix"]}) + self.assertIn("branch_id", report["exact_fields"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_oracle_report.py b/scripts/test_kinematics_oracle_report.py new file mode 100644 index 0000000..ef330bb --- /dev/null +++ b/scripts/test_kinematics_oracle_report.py @@ -0,0 +1,44 @@ +import json +import sys +import unittest +from pathlib import Path +from tempfile import TemporaryDirectory + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from generate_kinematics_oracle_report import generate + + +class KinematicsOracleReportTests(unittest.TestCase): + def make_tree(self): + directory = TemporaryDirectory() + root = Path(directory.name) + coverage = root / "coverage" + coverage.mkdir() + closure = { + "context_id": "test-context", "missing_required_test_roots": ["linuxcnc/unit_tests/kinematics"], + } + (coverage / "kinematics-source-closure.report.json").write_text(json.dumps(closure), encoding="utf-8") + sample = { + "sample_id": "kinematics-sample:cartesian:nominal-roundtrip", "family": "cartesian", + "configuration_id": "config:demo", "operation": "fk_ik_fk_roundtrip", "input": {"joint": [1.0]}, + "expected": {"invariant": "pose_roundtrip", "absolute_tolerance": 1e-9}, + "execution": {"status": "blocked", "reason": "missing official oracle"}, + } + (coverage / "kinematics-oracle-samples.jsonl").write_text(json.dumps(sample) + "\n", encoding="utf-8") + return directory, root + + def test_missing_official_root_blocks_without_fake_golden(self): + directory, root = self.make_tree() + self.addCleanup(directory.cleanup) + report = generate(root, root / "report.json", root / "schema.json") + self.assertEqual(report["status"], "blocked") + self.assertEqual(report["sample_count"], 1) + self.assertEqual(report["ready_count"], 0) + self.assertEqual(report["records"][0]["result"]["error_code"], "MISSING_OFFICIAL_ORACLE") + self.assertEqual(report["records"][0]["execution"]["status"], "blocked") + self.assertEqual(json.loads((root / "schema.json").read_text(encoding="utf-8"))["$id"], "linuxcnc-web-wasm/kinematics-golden.v1") + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_kinematics_runtime.py b/scripts/test_kinematics_runtime.py new file mode 100644 index 0000000..91a6855 --- /dev/null +++ b/scripts/test_kinematics_runtime.py @@ -0,0 +1,51 @@ +import json +import subprocess +import unittest +from pathlib import Path + +import generate_kinematics_runtime_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class KinematicsRuntimeTests(unittest.TestCase): + def test_native_kinematics_binary(self): + binary = ROOT / "build-native/sim_kinematics_test" + if not binary.is_file(): + self.skipTest("native build has not been generated") + result = subprocess.run([str(binary)], cwd=ROOT, check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + self.assertEqual(result.returncode, 0, result.stderr.decode(errors="replace")) + + def test_wasm_exports_kinematics_api(self): + module = ROOT / "build-wasm/linuxcnc-sim-core.js" + if not module.is_file(): + self.skipTest("WASM build has not been generated") + text = module.read_text(encoding="utf-8") + for symbol in ("sim_kinematics_init", "sim_kinematics_forward_ex", "sim_kinematics_inverse_ex", "sim_kinematics_state_hash"): + self.assertIn(symbol, text) + + def test_report_contract(self): + report = json.loads((ROOT / "coverage/kinematics-runtime.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "kinematics-runtime-report.v1") + self.assertEqual(report["status"], "partial") + self.assertTrue(report["registered_build_targets"]["native_ctest"]) + self.assertFalse(report["closure"]["full_linuxcnc_kinematics"]) + self.assertIn("linear-delta", report["supported_types"]) + self.assertIn("rotary-delta", report["supported_types"]) + self.assertIn("tripod", report["supported_types"]) + + def test_report_is_deterministic(self): + first = ROOT / "coverage/.kinematics-runtime-one.json" + second = ROOT / "coverage/.kinematics-runtime-two.json" + try: + report_one = generate_kinematics_runtime_report.generate(ROOT, first) + report_two = generate_kinematics_runtime_report.generate(ROOT, second) + self.assertEqual(report_one, report_two) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_model_stream.py b/scripts/test_model_stream.py new file mode 100644 index 0000000..41beea9 --- /dev/null +++ b/scripts/test_model_stream.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +import json +import unittest +from pathlib import Path +from tempfile import TemporaryDirectory + +from model_stream import SSEDecoder, StreamProtocolError, consume_sse + + +def event(kind, payload): + return f"event: {kind}\ndata: {json.dumps(payload, separators=(',', ':'))}\n\n".encode() + + +def completed(*, output_tokens=2, status="completed", incomplete_reason=None): + response = { + "id": "resp-1", + "status": status, + "usage": { + "input_tokens": 20, + "output_tokens": output_tokens, + "total_tokens": 20 + output_tokens, + }, + } + if incomplete_reason is not None: + response["incomplete_details"] = {"reason": incomplete_reason} + kind = "response.incomplete" if status == "incomplete" else "response.completed" + return event(kind, {"type": kind, "response": response}) + + +class ModelStreamTests(unittest.TestCase): + def test_decoder_preserves_utf8_across_chunks(self): + payload = event("response.output_text.delta", { + "type": "response.output_text.delta", + "delta": "text", + }) + decoder = SSEDecoder() + split = payload.index(b"text") + 2 + self.assertEqual(decoder.feed(payload[:split]), []) + parsed = decoder.feed(payload[split:]) + self.assertEqual(len(parsed), 1) + self.assertIn("text", parsed[0].data) + + def test_completed_stream_uses_provider_usage(self): + delta = event("response.output_text.delta", { + "type": "response.output_text.delta", + "delta": "hello", + }) + result = consume_sse( + [delta[:7], delta[7:], completed(output_tokens=2)], + context_id="c1", + packet_id="p1", + max_output_tokens=8, + ) + self.assertEqual(result["status"], "completed") + self.assertTrue(result["reusable"]) + self.assertEqual(result["usage"]["output_tokens"], 2) + + def test_disconnect_writes_metadata_only_checkpoint(self): + def disconnected(): + yield event("response.output_text.delta", { + "type": "response.output_text.delta", + "delta": "secret-partial-text", + }) + raise ConnectionError("body ended early") + + with TemporaryDirectory() as directory: + path = Path(directory) / "checkpoint.json" + result = consume_sse( + disconnected(), + context_id="c1", + packet_id="p1", + checkpoint_path=path, + max_output_tokens=64, + ) + checkpoint_text = path.read_text(encoding="utf-8") + self.assertEqual(result["status"], "interrupted") + self.assertFalse(result["reusable"]) + self.assertEqual(result["reason_code"], "stream_disconnected") + self.assertNotIn("secret-partial-text", checkpoint_text) + self.assertFalse(json.loads(checkpoint_text)["reusable"]) + + def test_stream_ending_without_terminal_event_is_not_reusable(self): + result = consume_sse( + [event("response.created", {"type": "response.created"})], + context_id="c1", + packet_id="p1", + ) + self.assertEqual(result["reason_code"], "stream_ended_without_completion") + self.assertFalse(result["reusable"]) + + def test_incomplete_utf8_is_a_protocol_error(self): + result = consume_sse( + [b"data: {\"delta\":\"\xe4\xb8"], + context_id="c1", + packet_id="p1", + ) + self.assertEqual(result["status"], "protocol_error") + self.assertEqual(result["reason_code"], "stream_decode_error") + + def test_context_failure_requires_smaller_fresh_packet(self): + failed = event("response.failed", { + "type": "response.failed", + "response": { + "id": "resp-2", + "status": "failed", + "error": { + "code": "context_length_exceeded", + "message": "context window exceeded", + }, + }, + }) + result = consume_sse( + [failed], + context_id="c1", + packet_id="p1", + profile="feature", + ) + self.assertEqual(result["status"], "context_budget_exceeded") + self.assertEqual(result["retry"]["profile"], "doc") + self.assertFalse(result["retry"]["reuse_packet"]) + + def test_provider_output_overrun_is_rejected(self): + result = consume_sse( + [completed(output_tokens=9)], + context_id="c1", + packet_id="p1", + max_output_tokens=8, + ) + self.assertEqual(result["status"], "output_budget_exceeded") + self.assertFalse(result["reusable"]) + + def test_incomplete_response_is_checkpointable_not_reusable(self): + result = consume_sse( + [completed( + output_tokens=8, + status="incomplete", + incomplete_reason="max_output_tokens", + )], + context_id="c1", + packet_id="p1", + max_output_tokens=8, + ) + self.assertEqual(result["status"], "truncated") + self.assertFalse(result["reusable"]) + self.assertEqual(result["finish_reason"], "max_output_tokens") + + def test_decoder_enforces_event_budget(self): + decoder = SSEDecoder(max_event_bytes=8, max_response_bytes=32) + with self.assertRaisesRegex(StreamProtocolError, "event exceeds"): + decoder.feed(b"data: 123456789\n\n") + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_motion_runtime.py b/scripts/test_motion_runtime.py new file mode 100644 index 0000000..f1efe7c --- /dev/null +++ b/scripts/test_motion_runtime.py @@ -0,0 +1,37 @@ +import json +import subprocess +import unittest +from pathlib import Path + +import generate_motion_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class MotionRuntimeTests(unittest.TestCase): + def test_native_motion_binary(self): + binary = ROOT / "build-native/sim_motion_queue_test" + if not binary.is_file(): + self.skipTest("native build has not been generated") + result = subprocess.run([str(binary)], cwd=ROOT, check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + self.assertEqual(result.returncode, 0, result.stderr.decode(errors="replace")) + + def test_wasm_exports_motion_api(self): + module = ROOT / "build-wasm/linuxcnc-sim-core.js" + if not module.is_file(): + self.skipTest("WASM build has not been generated") + text = module.read_text(encoding="utf-8") + for symbol in ("sim_motion_init", "sim_motion_enqueue", "sim_motion_step", "sim_motion_state_hash", "sim_motion_canonical"): + self.assertIn(symbol, text) + + def test_report_contract(self): + report = json.loads((ROOT / "coverage/motion-runtime.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "motion-runtime-report.v1") + self.assertGreater(report["inputs"]["file_count"], 0) + self.assertEqual(report["outputs"]["file_count"], len(generate_motion_report.OUTPUTS)) + self.assertTrue(report["canonical"]["byte_identical"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_pentapod_kinematics_report.py b/scripts/test_pentapod_kinematics_report.py new file mode 100644 index 0000000..adbe073 --- /dev/null +++ b/scripts/test_pentapod_kinematics_report.py @@ -0,0 +1,27 @@ +import json +import unittest +from pathlib import Path +import generate_pentapod_kinematics_report + +ROOT = Path(__file__).resolve().parents[1] + +class PentapodKinematicsReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/pentapod-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "pentapod-kinematics-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertTrue(report["configuration_candidate"]["scan"]) + self.assertEqual(report["geometry"]["struts"], 5) + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertTrue(report["samples"]["state_hash_identical"]) + self.assertEqual(report["oracle"]["status"], "blocked") + + def test_deterministic(self): + first, second = ROOT / "coverage/.penta-one.json", ROOT / "coverage/.penta-two.json" + try: + self.assertEqual(generate_pentapod_kinematics_report.generate(ROOT, first), generate_pentapod_kinematics_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True); second.unlink(missing_ok=True) + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_posemath_runtime.py b/scripts/test_posemath_runtime.py index c1c768f..3abe19e 100644 --- a/scripts/test_posemath_runtime.py +++ b/scripts/test_posemath_runtime.py @@ -19,9 +19,19 @@ class PosemathRuntimeTests(unittest.TestCase): if not module.is_file(): self.skipTest("WASM build has not been generated") text = module.read_text(encoding="utf-8") - for symbol in ("sim_posemath_normalize", "sim_posemath_dot", "sim_posemath_line_point"): + for symbol in ("sim_posemath_normalize", "sim_posemath_dot", "sim_posemath_line_point", + "sim_posemath_segment_validate", "sim_posemath_segment_point", + "sim_tp_init", "sim_tp_step", "sim_tp_state_hash"): self.assertIn(symbol, text) + def test_report_records_inputs_outputs_and_determinism(self): + report = __import__("json").loads((ROOT / "coverage/posemath-runtime.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "posemath-runtime-report.v2") + self.assertGreater(report["inputs"]["file_count"], 0) + self.assertGreater(report["outputs"]["file_count"], 0) + self.assertTrue(report["determinism"]["byte_identical"]) + self.assertTrue(report["determinism"]["state_hash_identical"]) + def test_posemath_source_is_linked(self): cmake = (ROOT / "wasm-core/CMakeLists.txt").read_text(encoding="utf-8") self.assertIn("posemath.cc", cmake) diff --git a/scripts/test_robot_kinematics_report.py b/scripts/test_robot_kinematics_report.py new file mode 100644 index 0000000..399c71e --- /dev/null +++ b/scripts/test_robot_kinematics_report.py @@ -0,0 +1,31 @@ +import json +import unittest +from pathlib import Path + +import generate_robot_kinematics_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class RobotKinematicsReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/robot-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "robot-kinematics-report.v1") + self.assertTrue(all(row["scan"] for row in report["configuration_candidates"].values())) + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertEqual(report["oracle"]["status"], "blocked") + self.assertIn("workspace_derived_fixture", report["configuration_candidates"]["scorbot"]["origin"]) + + def test_deterministic(self): + first = ROOT / "coverage/.robot-one.json" + second = ROOT / "coverage/.robot-two.json" + try: + self.assertEqual(generate_robot_kinematics_report.generate(ROOT, first), generate_robot_kinematics_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_tripod_kinematics_report.py b/scripts/test_tripod_kinematics_report.py new file mode 100644 index 0000000..87f8c04 --- /dev/null +++ b/scripts/test_tripod_kinematics_report.py @@ -0,0 +1,33 @@ +import json +import unittest +from pathlib import Path + +import generate_tripod_kinematics_report + +ROOT = Path(__file__).resolve().parents[1] + + +class TripodKinematicsReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/tripod-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "tripod-kinematics-report.v1") + self.assertEqual(report["implementation_status"], "verified") + self.assertTrue(report["configuration_candidate"]["scan"]) + self.assertEqual(report["geometry"]["hal_parameters"], {"Bx": 10.0, "Cx": 5.0, "Cy": 7.071}) + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertTrue(report["samples"]["state_hash_identical"]) + self.assertEqual(report["oracle"]["status"], "blocked") + self.assertEqual(report["workspace_and_boundaries"]["base_plane_singular_error"], -704) + + def test_deterministic(self): + first = ROOT / "coverage/.tripod-one.json" + second = ROOT / "coverage/.tripod-two.json" + try: + self.assertEqual(generate_tripod_kinematics_report.generate(ROOT, first), generate_tripod_kinematics_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_trivkins_integration_report.py b/scripts/test_trivkins_integration_report.py new file mode 100644 index 0000000..b65a7f5 --- /dev/null +++ b/scripts/test_trivkins_integration_report.py @@ -0,0 +1,18 @@ +import json +import unittest +from pathlib import Path + + +class TrivkinsIntegrationReportTests(unittest.TestCase): + def test_report_contract(self): + root = Path(__file__).resolve().parents[1] + report = json.loads((root / "coverage/trivkins-integration.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "trivkins-integration-report.v1") + self.assertEqual(report["status"], "partial") + self.assertEqual(set(report["modes"]), {"identity", "forward_only", "inverse_only", "both"}) + self.assertEqual(report["tests"]["status"], "passed") + self.assertEqual(report["oracle"]["status"], "blocked") + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_trt_report.py b/scripts/test_trt_report.py new file mode 100644 index 0000000..d2b9581 --- /dev/null +++ b/scripts/test_trt_report.py @@ -0,0 +1,31 @@ +import json +import unittest +from pathlib import Path + +import generate_trt_report + + +ROOT = Path(__file__).resolve().parents[1] + + +class TrtReportTests(unittest.TestCase): + def test_contract(self): + report = json.loads((ROOT / "coverage/trt-kinematics.report.json").read_text(encoding="utf-8")) + self.assertEqual(report["schema"], "trt-kinematics-report.v1") + self.assertTrue(report["configuration_candidates"]["xyzac"]["scan"]) + self.assertTrue(report["configuration_candidates"]["xyzbc"]["scan"]) + self.assertTrue(report["samples"]["byte_identical_json"]) + self.assertEqual(report["oracle"]["status"], "blocked") + + def test_deterministic(self): + first = ROOT / "coverage/.trt-one.json" + second = ROOT / "coverage/.trt-two.json" + try: + self.assertEqual(generate_trt_report.generate(ROOT, first), generate_trt_report.generate(ROOT, second)) + finally: + first.unlink(missing_ok=True) + second.unlink(missing_ok=True) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_validate_model_budget.py b/scripts/test_validate_model_budget.py new file mode 100644 index 0000000..58de583 --- /dev/null +++ b/scripts/test_validate_model_budget.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python3 +import json +import unittest + +from validate_model_budget import ( + ModelBudgetError, + extract_response_usage, + validate_provider_response, + validate_request, + validate_response, +) + + +def packet( + profile="feature", + token_limit=4096, + packet_bytes=1200, + evidence_bytes=300, + byte_limit=16384, + evidence_byte_limit=None, +): + budget = { + "profile": profile, + "token_limit": token_limit, + "byte_limit": byte_limit, + "packet_bytes": packet_bytes, + "selected_evidence_bytes": evidence_bytes, + } + if evidence_byte_limit is not None: + budget["evidence_byte_limit"] = evidence_byte_limit + return { + "budget": budget + } + + +class ModelBudgetTests(unittest.TestCase): + def test_profile_reserves_output_and_safety_margin(self): + result = validate_request(packet()) + self.assertEqual(result["max_output_tokens"], 1024) + self.assertEqual(result["reserved_total_tokens"], 2780) + + def test_non_packet_request_overhead_is_reserved(self): + result = validate_request(packet(), overhead_tokens=700) + self.assertEqual(result["overhead_tokens"], 700) + self.assertEqual(result["reserved_total_tokens"], 3480) + + def test_request_overhead_can_exhaust_context_window(self): + result = validate_request(packet(), context_window=4000, overhead_tokens=700) + self.assertEqual(result["estimated_request_input_tokens"], 2200) + + def test_context_window_overflow_fails_before_request(self): + with self.assertRaisesRegex(ModelBudgetError, "context budget exceeded"): + validate_request(packet(), context_window=1700) + + def test_estimated_input_must_fit_declared_packet_budget(self): + with self.assertRaisesRegex(ModelBudgetError, "input token budget exceeded"): + validate_request(packet(token_limit=400), input_tokens=401) + + def test_byte_upper_bound_prevents_unsafe_heuristic_underestimate(self): + with self.assertRaisesRegex(ModelBudgetError, "input token budget exceeded"): + validate_request(packet(token_limit=1499)) + + def test_exact_tokenizer_count_can_be_supplied(self): + result = validate_request(packet(token_limit=600), input_tokens=500) + self.assertEqual(result["estimated_input_tokens"], 500) + + def test_explicit_output_budget_can_be_smaller(self): + result = validate_request(packet(), context_window=5000, max_output_tokens=256) + self.assertEqual(result["max_output_tokens"], 256) + + def test_output_budget_cannot_expand_profile(self): + with self.assertRaisesRegex(ModelBudgetError, "output token budget exceeds profile"): + validate_request(packet(), context_window=20000, max_output_tokens=2048) + + def test_input_budget_cannot_expand_profile(self): + with self.assertRaisesRegex(ModelBudgetError, "packet token limit exceeds profile"): + validate_request(packet(token_limit=5000), context_window=20000) + + def test_byte_budget_cannot_expand_profile(self): + with self.assertRaisesRegex(ModelBudgetError, "byte limit exceeds profile"): + validate_request(packet(byte_limit=16385), context_window=20000) + + def test_evidence_budget_is_checked_even_without_envelope(self): + with self.assertRaisesRegex(ModelBudgetError, "selected evidence exceeds its evidence byte budget"): + validate_request(packet(evidence_bytes=301, evidence_byte_limit=300)) + + def test_nested_accumulated_history_is_rejected(self): + value = packet() + value["scope"] = {"state": {"messages": ["old"]}} + with self.assertRaisesRegex(ModelBudgetError, "forbidden accumulated context"): + validate_request(value) + + def test_full_packet_rejects_unknown_top_level_context(self): + value = packet() + value.update({"context_id": "c1", "packet_id": "p1", "tool_output": "log"}) + with self.assertRaisesRegex(ModelBudgetError, "unknown top-level context field"): + validate_request(value) + + def test_packet_byte_overflow_is_rejected(self): + with self.assertRaisesRegex(ModelBudgetError, "byte budget"): + validate_request(packet(packet_bytes=16000, evidence_bytes=1000)) + + def test_full_packet_rejects_stale_serialized_size(self): + value = packet() + value.update({ + "context_id": "c1", + "packet_id": "p1", + "evidence": {"selected": [], "excluded": []}, + }) + with self.assertRaisesRegex(ModelBudgetError, "does not match serialized packet"): + validate_request(value) + + def test_packet_without_ids_cannot_lie_about_serialized_size(self): + value = packet() + value["task"] = "x" * 20000 + with self.assertRaisesRegex(ModelBudgetError, "does not match serialized packet"): + validate_request(value) + + def test_full_packet_rejects_inconsistent_evidence_totals(self): + value = packet(packet_bytes=215, evidence_bytes=5) + value.update({ + "context_id": "c1", + "packet_id": "p1", + "evidence": {"selected": [{"path": "x", "bytes": 4}], "excluded": []}, + }) + with self.assertRaisesRegex(ModelBudgetError, "selected evidence byte metadata"): + validate_request(value) + + def test_full_packet_rejects_accumulated_history(self): + value = packet() + value["history"] = ["old response"] + with self.assertRaisesRegex(ModelBudgetError, "forbidden accumulated context"): + validate_request(value) + + def test_full_packet_rejects_unknown_exclusion_reason(self): + value = packet(packet_bytes=203, evidence_bytes=0) + value.update({ + "context_id": "c1", + "packet_id": "p1", + "evidence": {"selected": [], "excluded": [{"path": "x", "reason_code": "old"}]}, + }) + # Stabilize the serialized size after adding the evidence envelope. + for _ in range(4): + value["budget"]["packet_bytes"] = len( + json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8") + ) + with self.assertRaisesRegex(ModelBudgetError, "unknown reason code"): + validate_request(value) + + def test_response_overrun_is_rejected(self): + with self.assertRaisesRegex(ModelBudgetError, "response exceeded output token budget"): + validate_response(1025, max_output_tokens=1024) + + def test_response_length_finish_is_checkpointable(self): + result = validate_response(1024, max_output_tokens=1024, finish_reason="length") + self.assertTrue(result["truncated"]) + + def test_responses_api_incomplete_reason_is_checkpointable(self): + result = validate_response( + 1024, + max_output_tokens=1024, + finish_reason="max_output_tokens", + ) + self.assertTrue(result["truncated"]) + + def test_stream_envelope_usage_is_validated(self): + event = { + "type": "response.completed", + "response": { + "status": "completed", + "usage": { + "input_tokens": 300, + "output_tokens": 40, + "total_tokens": 340, + }, + }, + } + self.assertEqual(extract_response_usage(event)["output_tokens"], 40) + result = validate_provider_response(event, max_output_tokens=64) + self.assertEqual(result["status"], "completed") + + def test_provider_usage_total_cannot_be_inconsistent(self): + response = { + "status": "completed", + "usage": {"input_tokens": 10, "output_tokens": 5, "total_tokens": 14}, + } + with self.assertRaisesRegex(ModelBudgetError, "total is smaller"): + validate_provider_response(response, max_output_tokens=16) + + def test_failed_provider_response_is_not_reusable(self): + response = { + "status": "failed", + "usage": {"input_tokens": 10, "output_tokens": 0, "total_tokens": 10}, + } + with self.assertRaisesRegex(ModelBudgetError, "not reusable"): + validate_provider_response(response, max_output_tokens=16) + + def test_provider_response_without_completion_status_is_rejected(self): + response = { + "usage": {"input_tokens": 10, "output_tokens": 1, "total_tokens": 11}, + } + with self.assertRaisesRegex(ModelBudgetError, "missing completion status"): + validate_provider_response(response, max_output_tokens=16) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/test_validate_task_pointer.py b/scripts/test_validate_task_pointer.py new file mode 100644 index 0000000..2d922c0 --- /dev/null +++ b/scripts/test_validate_task_pointer.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +import tempfile +import unittest +import json +from pathlib import Path + +from validate_task_pointer import PointerError, validate_pointer + + +VALID = """# pointer +## Current +context_id: c1 +## Read +read paths only; coverage/report.json +## Task +one result +## Next +one next +## Verify +one test +## Stop +stop on drift +""" + + +class TaskPointerTests(unittest.TestCase): + def write(self, text: str) -> Path: + directory = tempfile.TemporaryDirectory() + self.addCleanup(directory.cleanup) + path = Path(directory.name) / "nextTask.md" + path.write_text(text, encoding="utf-8") + return path + + def test_valid_pointer_reports_bounded_size(self): + result = validate_pointer(self.write(VALID)) + self.assertLessEqual(result["bytes"], 8192) + + def test_context_id_must_match_lock_when_supplied(self): + directory = tempfile.TemporaryDirectory() + self.addCleanup(directory.cleanup) + root = Path(directory.name) + pointer = root / "nextTask.md" + pointer.write_text(VALID, encoding="utf-8") + lock = root / "context-lock.json" + lock.write_text(json.dumps({"context_id": "other"}), encoding="utf-8") + with self.assertRaisesRegex(PointerError, "does not match lock"): + validate_pointer(pointer, lock_path=lock) + + def test_history_heading_is_rejected(self): + with self.assertRaisesRegex(PointerError, "history section"): + validate_pointer(self.write(VALID + "\n## History\nold log\n")) + + def test_evidence_heading_is_rejected(self): + with self.assertRaisesRegex(PointerError, "history section"): + validate_pointer(self.write(VALID + "\n## Evidence\nold evidence\n")) + + def test_large_pointer_is_rejected(self): + with self.assertRaisesRegex(PointerError, "byte budget"): + validate_pointer(self.write(VALID + "x" * 9000)) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/validate_baseline.py b/scripts/validate_baseline.py index da32f3f..c889f8e 100755 --- a/scripts/validate_baseline.py +++ b/scripts/validate_baseline.py @@ -189,6 +189,301 @@ def validate(repo_root: Path, lock_path: Path, source_path: Path, manifest_path: errors.append("posemath runtime report is missing") elif posemath_report_hash != sha256(posemath_report_path): errors.append("posemath runtime report hash does not match context lock") + interpreter_report_path = repo_root / "coverage/interpreter-runtime.report.json" + interpreter_report_hash = lock.get("interpreter_runtime_report_sha256") + if interpreter_report_hash: + if not interpreter_report_path.is_file(): + errors.append("interpreter runtime report is missing") + elif interpreter_report_hash != sha256(interpreter_report_path): + errors.append("interpreter runtime report hash does not match context lock") + motion_report_path = repo_root / "coverage/motion-runtime.report.json" + motion_report_hash = lock.get("motion_runtime_report_sha256") + if motion_report_hash: + if not motion_report_path.is_file(): + errors.append("motion runtime report is missing") + elif motion_report_hash != sha256(motion_report_path): + errors.append("motion runtime report hash does not match context lock") + kinematics_runtime_report_path = repo_root / "coverage/kinematics-runtime.report.json" + kinematics_runtime_report_hash = lock.get("kinematics_runtime_report_sha256") + if kinematics_runtime_report_hash: + if not kinematics_runtime_report_path.is_file(): + errors.append("kinematics runtime report is missing") + elif kinematics_runtime_report_hash != sha256(kinematics_runtime_report_path): + errors.append("kinematics runtime report hash does not match context lock") + kinematics_closure_path = repo_root / "coverage/kinematics-source-closure.report.json" + kinematics_closure_hash = lock.get("kinematics_source_closure_report_sha256") + if kinematics_closure_hash: + if not kinematics_closure_path.is_file(): + errors.append("kinematics source closure report is missing") + elif kinematics_closure_hash != sha256(kinematics_closure_path): + errors.append("kinematics source closure report hash does not match context lock") + if kinematics_closure_path.is_file() and isinstance(inventory_count, dict): + try: + kinematics_report = json.loads(kinematics_closure_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("kinematics source closure report is not valid JSON") + else: + expected_counts = { + "kinematics_source_files": kinematics_report.get("source", {}).get("implementation_file_count"), + "kinematics_config_entries": kinematics_report.get("configuration", {}).get("entry_count"), + "kinematics_hal_entries": kinematics_report.get("hal", {}).get("entry_count"), + "kinematics_test_files": kinematics_report.get("tests", {}).get("file_count"), + } + for field, value in expected_counts.items(): + if value is not None and inventory_count.get(field) != value: + errors.append(f"{field} count does not match kinematics closure report") + kinematics_graph_path = repo_root / "coverage/kinematics-config-graph.report.json" + kinematics_graph_hash = lock.get("kinematics_config_graph_report_sha256") + if kinematics_graph_hash: + if not kinematics_graph_path.is_file(): + errors.append("kinematics config graph report is missing") + elif kinematics_graph_hash != sha256(kinematics_graph_path): + errors.append("kinematics config graph report hash does not match context lock") + samples_path = repo_root / "coverage/kinematics-oracle-samples.jsonl" + samples_hash = lock.get("kinematics_oracle_samples_sha256") + if samples_hash: + if not samples_path.is_file(): + errors.append("kinematics oracle samples are missing") + elif samples_hash != sha256(samples_path): + errors.append("kinematics oracle samples hash does not match context lock") + oracle_report_path = repo_root / "coverage/kinematics-oracle.report.json" + oracle_report_hash = lock.get("kinematics_oracle_report_sha256") + if oracle_report_hash: + if not oracle_report_path.is_file(): + errors.append("kinematics oracle report is missing") + elif oracle_report_hash != sha256(oracle_report_path): + errors.append("kinematics oracle report hash does not match context lock") + oracle_schema_path = repo_root / "coverage/kinematics-golden-schema.json" + oracle_schema_hash = lock.get("kinematics_golden_schema_sha256") + if oracle_schema_hash: + if not oracle_schema_path.is_file(): + errors.append("kinematics golden schema is missing") + elif oracle_schema_hash != sha256(oracle_schema_path): + errors.append("kinematics golden schema hash does not match context lock") + if kinematics_graph_path.is_file() and isinstance(inventory_count, dict): + try: + graph = json.loads(kinematics_graph_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("kinematics config graph report is not valid JSON") + else: + graph_counts = graph.get("counts", {}) + for field, report_field in (("kinematics_graph_entries", "entry_nodes"), ("kinematics_graph_edges", "edges"), ("kinematics_oracle_samples", "samples")): + value = graph_counts.get(report_field) + if value is not None and inventory_count.get(field) != value: + errors.append(f"{field} count does not match kinematics config graph report") + if oracle_report_path.is_file() and isinstance(inventory_count, dict): + try: + oracle_report = json.loads(oracle_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("kinematics oracle report is not valid JSON") + else: + if oracle_report.get("sample_count") is not None and inventory_count.get("kinematics_oracle_samples") != oracle_report.get("sample_count"): + errors.append("kinematics oracle sample count does not match oracle report") + abi_contract_path = repo_root / "coverage/kinematics-abi-contract.json" + abi_contract_hash = lock.get("kinematics_abi_contract_sha256") + if abi_contract_hash: + if not abi_contract_path.is_file(): + errors.append("kinematics ABI contract is missing") + elif abi_contract_hash != sha256(abi_contract_path): + errors.append("kinematics ABI contract hash does not match context lock") + if abi_contract_path.is_file(): + try: + abi_contract = json.loads(abi_contract_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("kinematics ABI contract is not valid JSON") + else: + if abi_contract.get("status") != "verified": + errors.append("kinematics ABI contract is not verified") + mapping_contract_path = repo_root / "coverage/kinematics-mapping-contract.json" + mapping_contract_hash = lock.get("kinematics_mapping_contract_sha256") + if mapping_contract_hash: + if not mapping_contract_path.is_file(): + errors.append("kinematics mapping contract is missing") + elif mapping_contract_hash != sha256(mapping_contract_path): + errors.append("kinematics mapping contract hash does not match context lock") + if mapping_contract_path.is_file(): + try: + mapping_contract = json.loads(mapping_contract_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("kinematics mapping contract is not valid JSON") + else: + if mapping_contract.get("status") != "verified": + errors.append("kinematics mapping contract is not verified") + numeric_policy_path = repo_root / "coverage/kinematics-numeric-policy.json" + numeric_policy_hash = lock.get("kinematics_numeric_policy_sha256") + if numeric_policy_hash: + if not numeric_policy_path.is_file(): + errors.append("kinematics numeric policy is missing") + elif numeric_policy_hash != sha256(numeric_policy_path): + errors.append("kinematics numeric policy hash does not match context lock") + if numeric_policy_path.is_file(): + try: + numeric_policy = json.loads(numeric_policy_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("kinematics numeric policy is not valid JSON") + else: + if numeric_policy.get("status") != "verified": + errors.append("kinematics numeric policy is not verified") + trivkins_report_path = repo_root / "coverage/trivkins-integration.report.json" + trivkins_report_hash = lock.get("trivkins_integration_report_sha256") + if trivkins_report_hash: + if not trivkins_report_path.is_file(): + errors.append("trivkins integration report is missing") + elif trivkins_report_hash != sha256(trivkins_report_path): + errors.append("trivkins integration report hash does not match context lock") + coupled_report_path = repo_root / "coverage/coupled-kinematics.report.json" + coupled_report_hash = lock.get("coupled_kinematics_report_sha256") + if coupled_report_hash: + if not coupled_report_path.is_file(): + errors.append("coupled kinematics report is missing") + elif coupled_report_hash != sha256(coupled_report_path): + errors.append("coupled kinematics report hash does not match context lock") + if coupled_report_path.is_file(): + try: + coupled_report = json.loads(coupled_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("coupled kinematics report is not valid JSON") + else: + if coupled_report.get("implementation_status") != "verified": + errors.append("coupled kinematics implementation is not verified") + if coupled_report.get("closure", {}).get("official_oracle") != "blocked": + errors.append("coupled kinematics oracle status must remain explicitly blocked") + corexy_hal_report_path = repo_root / "coverage/corexy-hal.report.json" + corexy_hal_report_hash = lock.get("corexy_hal_report_sha256") + if corexy_hal_report_hash: + if not corexy_hal_report_path.is_file(): + errors.append("corexy HAL report is missing") + elif corexy_hal_report_hash != sha256(corexy_hal_report_path): + errors.append("corexy HAL report hash does not match context lock") + if corexy_hal_report_path.is_file(): + try: + corexy_hal_report = json.loads(corexy_hal_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("corexy HAL report is not valid JSON") + else: + if corexy_hal_report.get("implementation_status") != "verified": + errors.append("corexy HAL implementation is not verified") + if corexy_hal_report.get("oracle", {}).get("status") != "blocked": + errors.append("corexy HAL oracle status must remain explicitly blocked") + fiveaxis_report_path = repo_root / "coverage/fiveaxis-kinematics.report.json" + fiveaxis_report_hash = lock.get("fiveaxis_kinematics_report_sha256") + if fiveaxis_report_hash: + if not fiveaxis_report_path.is_file(): + errors.append("fiveaxis kinematics report is missing") + elif fiveaxis_report_hash != sha256(fiveaxis_report_path): + errors.append("fiveaxis kinematics report hash does not match context lock") + if fiveaxis_report_path.is_file(): + try: + fiveaxis_report = json.loads(fiveaxis_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("fiveaxis kinematics report is not valid JSON") + else: + if fiveaxis_report.get("implementation_status") != "verified": + errors.append("fiveaxis kinematics implementation is not verified") + if fiveaxis_report.get("oracle", {}).get("status") != "blocked": + errors.append("fiveaxis kinematics oracle status must remain explicitly blocked") + trt_report_path = repo_root / "coverage/trt-kinematics.report.json" + trt_report_hash = lock.get("trt_kinematics_report_sha256") + if trt_report_hash: + if not trt_report_path.is_file(): + errors.append("TRT kinematics report is missing") + elif trt_report_hash != sha256(trt_report_path): + errors.append("TRT kinematics report hash does not match context lock") + if trt_report_path.is_file(): + try: + trt_report = json.loads(trt_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("TRT kinematics report is not valid JSON") + else: + if trt_report.get("implementation_status") != "verified": + errors.append("TRT kinematics implementation is not verified") + if trt_report.get("oracle", {}).get("status") != "blocked": + errors.append("TRT kinematics oracle status must remain explicitly blocked") + robot_report_path = repo_root / "coverage/robot-kinematics.report.json" + robot_report_hash = lock.get("robot_kinematics_report_sha256") + if robot_report_hash: + if not robot_report_path.is_file(): + errors.append("robot kinematics report is missing") + elif robot_report_hash != sha256(robot_report_path): + errors.append("robot kinematics report hash does not match context lock") + if robot_report_path.is_file(): + try: + robot_report = json.loads(robot_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("robot kinematics report is not valid JSON") + else: + if robot_report.get("implementation_status") != "verified": + errors.append("robot kinematics implementation is not verified") + if robot_report.get("oracle", {}).get("status") != "blocked": + errors.append("robot kinematics oracle status must remain explicitly blocked") + genser_report_path = repo_root / "coverage/genser-kinematics.report.json" + genser_report_hash = lock.get("genser_kinematics_report_sha256") + if genser_report_hash: + if not genser_report_path.is_file(): + errors.append("genser kinematics report is missing") + elif genser_report_hash != sha256(genser_report_path): + errors.append("genser kinematics report hash does not match context lock") + if genser_report_path.is_file(): + try: + genser_report = json.loads(genser_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("genser kinematics report is not valid JSON") + else: + if genser_report.get("implementation_status") != "verified": + errors.append("genser kinematics implementation is not verified") + if genser_report.get("oracle", {}).get("status") != "blocked": + errors.append("genser kinematics oracle status must remain explicitly blocked") + delta_report_path = repo_root / "coverage/delta-kinematics.report.json" + delta_report_hash = lock.get("delta_kinematics_report_sha256") + if delta_report_hash: + if not delta_report_path.is_file(): + errors.append("delta kinematics report is missing") + elif delta_report_hash != sha256(delta_report_path): + errors.append("delta kinematics report hash does not match context lock") + if delta_report_path.is_file(): + try: + delta_report = json.loads(delta_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("delta kinematics report is not valid JSON") + else: + if delta_report.get("implementation_status") != "verified": + errors.append("delta kinematics implementation is not verified") + if delta_report.get("oracle", {}).get("status") != "blocked": + errors.append("delta kinematics oracle status must remain explicitly blocked") + tripod_report_path = repo_root / "coverage/tripod-kinematics.report.json" + tripod_report_hash = lock.get("tripod_kinematics_report_sha256") + if tripod_report_hash: + if not tripod_report_path.is_file(): + errors.append("tripod kinematics report is missing") + elif tripod_report_hash != sha256(tripod_report_path): + errors.append("tripod kinematics report hash does not match context lock") + if tripod_report_path.is_file(): + try: + tripod_report = json.loads(tripod_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("tripod kinematics report is not valid JSON") + else: + if tripod_report.get("implementation_status") != "verified": + errors.append("tripod kinematics implementation is not verified") + if tripod_report.get("oracle", {}).get("status") != "blocked": + errors.append("tripod kinematics oracle status must remain explicitly blocked") + genhex_report_path = repo_root / "coverage/genhex-kinematics.report.json" + genhex_report_hash = lock.get("genhex_kinematics_report_sha256") + if genhex_report_hash: + if not genhex_report_path.is_file(): + errors.append("genhex kinematics report is missing") + elif genhex_report_hash != sha256(genhex_report_path): + errors.append("genhex kinematics report hash does not match context lock") + if genhex_report_path.is_file(): + try: + genhex_report = json.loads(genhex_report_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError): + errors.append("genhex kinematics report is not valid JSON") + else: + if genhex_report.get("implementation_status") != "verified": + errors.append("genhex kinematics implementation is not verified") + if genhex_report.get("oracle", {}).get("status") != "blocked": + errors.append("genhex kinematics oracle status must remain explicitly blocked") source_ids = [str(row.get("source_id", "")) for row in sources] if len(source_ids) != len(set(source_ids)): errors.append("source index contains duplicate source_id") diff --git a/scripts/validate_model_budget.py b/scripts/validate_model_budget.py new file mode 100644 index 0000000..6c549db --- /dev/null +++ b/scripts/validate_model_budget.py @@ -0,0 +1,501 @@ +#!/usr/bin/env python3 +"""Check that a bounded context packet leaves room for model output. + +This is deliberately provider-neutral. The caller supplies the model's +context window; the packet's input budget and a fixed output reserve are +checked before an API request is made. +""" + +from __future__ import annotations + +import argparse +import json +import math +from pathlib import Path +from typing import Any + + +OUTPUT_TOKEN_RESERVE = { + "doc": 768, + "feature": 1024, + "contract": 1536, + "milestone": 2048, +} +PROFILE_INPUT_TOKEN_LIMIT = { + "doc": 2048, + "feature": 4096, + "contract": 6144, + "milestone": 8192, +} +PROFILE_BYTE_LIMIT = { + "doc": 8192, + "feature": 16384, + "contract": 24576, + "milestone": 32768, +} +PROFILE_EVIDENCE_BYTE_LIMIT = { + "doc": 2048, + "feature": 6144, + "contract": 10240, + "milestone": 14336, +} +PROFILE_EVIDENCE_FILE_LIMIT = { + "doc": 8, + "feature": 16, + "contract": 24, + "milestone": 32, +} +DEFAULT_CONTEXT_WINDOW = 16384 +DEFAULT_SAFETY_MARGIN = 256 +# Without a provider tokenizer, UTF-8 bytes are the only portable hard upper +# bound. Any multi-byte-per-token heuristic can under-count provider tokens +# for punctuation-heavy or non-ASCII input and is unsafe for a request gate. +TOKEN_BYTES_PER_TOKEN = 1 +PACKET_FIELDS = { + "context_id", + "packet_id", + "task", + "header", + "baseline", + "scope", + "contracts", + "evidence", + "risks", + "next", + "forbidden", + "budget", +} +FORBIDDEN_CONTEXT_FIELDS = { + "history", + "chat", + "conversation", + "messages", + "transcript", + "previous_packet", + "prior_context", +} +EXCLUSION_REASON_CODES = {"E1", "E2", "E3", "E4", "E5", "E6"} + + +class ModelBudgetError(ValueError): + """Raised when a request cannot fit input, output, and safety budgets.""" + + +def _response_object(value: Any) -> dict[str, Any]: + """Return a provider response object from a response or SSE envelope. + + The Responses API exposes usage on the response itself, while streaming + ``response.completed`` events wrap it below a ``response`` key. Keeping + this normalization here prevents callers from accidentally validating the + event envelope instead of the actual provider usage. + """ + + if not isinstance(value, dict): + raise ModelBudgetError("provider response must be an object") + response = value.get("response") + if isinstance(response, dict): + return response + return value + + +def extract_response_usage(value: Any) -> dict[str, int]: + """Extract authoritative token usage from a provider response envelope.""" + + response = _response_object(value) + usage = response.get("usage") + if not isinstance(usage, dict): + raise ModelBudgetError("provider response is missing usage") + try: + input_tokens = int(usage["input_tokens"]) + output_tokens = int(usage["output_tokens"]) + total_tokens = int(usage.get("total_tokens", input_tokens + output_tokens)) + except (KeyError, TypeError, ValueError) as exc: + raise ModelBudgetError("provider usage has invalid token counts") from exc + if min(input_tokens, output_tokens, total_tokens) < 0: + raise ModelBudgetError("provider usage token counts must be non-negative") + if total_tokens < input_tokens + output_tokens: + raise ModelBudgetError("provider usage total is smaller than input plus output") + return { + "input_tokens": input_tokens, + "output_tokens": output_tokens, + "total_tokens": total_tokens, + } + + +def _find_forbidden(value: Any, path: str = "") -> str | None: + """Find accumulated conversation state, including when nested.""" + + if isinstance(value, dict): + for key, child in value.items(): + key_text = str(key) + child_path = f"{path}.{key_text}" if path else key_text + if key_text in FORBIDDEN_CONTEXT_FIELDS: + return child_path + found = _find_forbidden(child, child_path) + if found: + return found + elif isinstance(value, list): + for index, child in enumerate(value): + found = _find_forbidden(child, f"{path}[{index}]") + if found: + return found + return None + + +def _packet_input_bytes(packet: dict[str, Any]) -> int: + budget = packet.get("budget") + if not isinstance(budget, dict): + raise ModelBudgetError("packet budget is missing") + try: + packet_bytes = int(budget["packet_bytes"]) + evidence_bytes = int(budget["selected_evidence_bytes"]) + except (KeyError, TypeError, ValueError) as exc: + raise ModelBudgetError("packet budget lacks input byte totals") from exc + if packet_bytes < 0 or evidence_bytes < 0: + raise ModelBudgetError("packet input byte totals must be non-negative") + return packet_bytes + evidence_bytes + + +def _canonical_packet_bytes(packet: dict[str, Any]) -> int: + """Return the exact UTF-8 size used by the packet generator.""" + + return len( + json.dumps(packet, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode("utf-8") + ) + + +def _validate_packet_metadata(packet: dict[str, Any], budget: dict[str, Any]) -> None: + """Reject stale or inconsistent budget metadata before a model request. + + Small unit-test fixtures may contain only a budget object. Full packets + generated for a request always carry ``context_id``/``packet_id`` and an + evidence envelope, so strict consistency checks are applied to those. + """ + + forbidden = _find_forbidden(packet) + if forbidden: + raise ModelBudgetError( + "packet contains forbidden accumulated context " + f"field: {forbidden}" + ) + + # Generated packets have a closed envelope. Reject ad-hoc top-level + # fields that could smuggle full logs, tool output or a previous request + # beside the audited eight segments. + if "budget" in packet: + unknown = sorted(set(packet) - PACKET_FIELDS) + if unknown: + raise ModelBudgetError( + "packet contains unknown top-level context field: " + f"{unknown[0]}" + ) + + if set(packet) != {"budget"}: + actual = _canonical_packet_bytes(packet) + declared = int(budget["packet_bytes"]) + if declared != actual: + raise ModelBudgetError( + "packet byte metadata does not match serialized packet " + f"(declared={declared}, actual={actual})" + ) + + evidence = packet.get("evidence") + if not isinstance(evidence, dict): + return + selected = evidence.get("selected", []) + excluded = evidence.get("excluded", []) + if not isinstance(selected, list) or not isinstance(excluded, list): + raise ModelBudgetError("packet evidence must contain selected/excluded lists") + for item in excluded: + if not isinstance(item, dict) or item.get("reason_code") not in EXCLUSION_REASON_CODES: + raise ModelBudgetError("excluded evidence has an unknown reason code") + selected_bytes = 0 + for item in selected: + if not isinstance(item, dict): + raise ModelBudgetError("selected evidence entries must be objects") + try: + item_bytes = int(item["bytes"]) + except (KeyError, TypeError, ValueError) as exc: + raise ModelBudgetError("selected evidence entry lacks bytes") from exc + if item_bytes < 0: + raise ModelBudgetError("selected evidence bytes must be non-negative") + selected_bytes += item_bytes + if selected_bytes != int(budget["selected_evidence_bytes"]): + raise ModelBudgetError( + "selected evidence byte metadata does not match entries " + f"(declared={budget['selected_evidence_bytes']}, actual={selected_bytes})" + ) + if "selected_evidence_files" in budget and int(budget["selected_evidence_files"]) != len(selected): + raise ModelBudgetError("selected evidence file count does not match entries") + if "excluded_evidence_files" in budget and int(budget["excluded_evidence_files"]) != len(excluded): + raise ModelBudgetError("excluded evidence file count does not match entries") + if "evidence_byte_limit" in budget and selected_bytes > int(budget["evidence_byte_limit"]): + raise ModelBudgetError("selected evidence exceeds its evidence byte budget") + if "evidence_file_limit" in budget and len(selected) > int(budget["evidence_file_limit"]): + raise ModelBudgetError("selected evidence exceeds its file budget") + + +def estimate_input_tokens(packet: dict[str, Any]) -> int: + """Return a safe provider-neutral upper bound from UTF-8 bytes. + + A tokenizer supplied by the API client may replace this estimate. The + byte-for-token bound is deliberately strict: it may reject a packet that + would fit a particular provider, but it cannot silently approve a packet + that that provider tokenizes larger than expected. + """ + + return math.ceil(_packet_input_bytes(packet) / TOKEN_BYTES_PER_TOKEN) + + +def validate_request( + packet: dict[str, Any], + *, + context_window: int = DEFAULT_CONTEXT_WINDOW, + max_output_tokens: int | None = None, + safety_margin: int = DEFAULT_SAFETY_MARGIN, + input_tokens: int | None = None, + overhead_tokens: int = 0, +) -> dict[str, int]: + budget = packet.get("budget") + if not isinstance(budget, dict): + raise ModelBudgetError("packet budget is missing") + try: + input_limit = int(budget["token_limit"]) + byte_limit = int(budget["byte_limit"]) + packet_bytes = int(budget["packet_bytes"]) + selected_evidence_bytes = int(budget["selected_evidence_bytes"]) + except (KeyError, TypeError, ValueError) as exc: + raise ModelBudgetError("packet budget lacks required fields") from exc + profile = str(budget.get("profile", "")) + try: + profile_output_limit = OUTPUT_TOKEN_RESERVE[profile] + profile_input_limit = PROFILE_INPUT_TOKEN_LIMIT[profile] + profile_byte_limit = PROFILE_BYTE_LIMIT[profile] + profile_evidence_limit = PROFILE_EVIDENCE_BYTE_LIMIT[profile] + profile_file_limit = PROFILE_EVIDENCE_FILE_LIMIT[profile] + except KeyError as exc: + raise ModelBudgetError(f"unknown packet profile: {profile}") from exc + if max_output_tokens is None: + max_output_tokens = profile_output_limit + try: + context_window = int(context_window) + max_output_tokens = int(max_output_tokens) + safety_margin = int(safety_margin) + overhead_tokens = int(overhead_tokens) + declared_evidence_limit = int(budget.get("evidence_byte_limit", profile_evidence_limit)) + declared_file_limit = int(budget.get("evidence_file_limit", profile_file_limit)) + except (TypeError, ValueError) as exc: + raise ModelBudgetError("model budget fields must be integers") from exc + values = ( + context_window, + max_output_tokens, + safety_margin, + input_limit, + byte_limit, + packet_bytes, + selected_evidence_bytes, + overhead_tokens, + declared_evidence_limit, + declared_file_limit, + ) + if any(value < 0 for value in values): + raise ModelBudgetError("model budgets must be non-negative") + if input_limit > profile_input_limit: + raise ModelBudgetError( + "packet token limit exceeds profile " + f"(declared={input_limit}, profile={profile_input_limit})" + ) + if byte_limit > profile_byte_limit: + raise ModelBudgetError( + "packet byte limit exceeds profile " + f"(declared={byte_limit}, profile={profile_byte_limit})" + ) + if declared_evidence_limit > profile_evidence_limit: + raise ModelBudgetError( + "evidence byte limit exceeds profile " + f"(declared={declared_evidence_limit}, profile={profile_evidence_limit})" + ) + if declared_file_limit > profile_file_limit: + raise ModelBudgetError( + "evidence file limit exceeds profile " + f"(declared={declared_file_limit}, profile={profile_file_limit})" + ) + if max_output_tokens > profile_output_limit: + raise ModelBudgetError( + "output token budget exceeds profile " + f"(requested={max_output_tokens}, profile={profile_output_limit})" + ) + try: + _validate_packet_metadata(packet, budget) + except ModelBudgetError: + raise + except (KeyError, TypeError, ValueError) as exc: + raise ModelBudgetError("packet budget metadata is malformed") from exc + context_bytes = packet_bytes + selected_evidence_bytes + if packet_bytes > byte_limit or context_bytes > byte_limit: + raise ModelBudgetError("packet exceeds its declared byte budget") + if selected_evidence_bytes > declared_evidence_limit: + raise ModelBudgetError("selected evidence exceeds its evidence byte budget") + if selected_evidence_bytes > profile_evidence_limit: + raise ModelBudgetError("selected evidence exceeds profile byte budget") + try: + estimated_input = estimate_input_tokens(packet) if input_tokens is None else int(input_tokens) + except (TypeError, ValueError) as exc: + raise ModelBudgetError("input token count must be an integer") from exc + if estimated_input < 0: + raise ModelBudgetError("input token count must be non-negative") + if estimated_input > input_limit: + raise ModelBudgetError( + "packet input token budget exceeded " + f"(estimated={estimated_input}, limit={input_limit})" + ) + # Reserve the input actually sent for this request plus fixed provider + # overhead. Reserving the full profile here rejects small packets for no + # reason, while the packet's own input_limit still prevents later growth. + effective_input = estimated_input + overhead_tokens + available = context_window - safety_margin - max_output_tokens + if effective_input > available: + raise ModelBudgetError( + "model context budget exceeded " + f"(input={effective_input}, output={max_output_tokens}, " + f"safety={safety_margin}, window={context_window})" + ) + return { + "context_window": context_window, + "input_token_limit": input_limit, + "estimated_input_tokens": estimated_input, + "overhead_tokens": overhead_tokens, + "estimated_request_input_tokens": estimated_input + overhead_tokens, + "max_output_tokens": max_output_tokens, + "safety_margin": safety_margin, + "reserved_total_tokens": effective_input + max_output_tokens + safety_margin, + "available_input_tokens": max(0, available - overhead_tokens), + } + + +def validate_response( + output_tokens: int, + *, + max_output_tokens: int, + finish_reason: str | None = None, +) -> dict[str, int | str | None]: + """Validate the completion actually returned by a provider. + + The preflight check protects the request, while this postflight check + catches SDKs that ignore or reinterpret ``max_output_tokens``. A length + finish is reported as truncation so callers can persist a checkpoint and + continue with a fresh bounded request instead of replaying the old one. + """ + + try: + actual = int(output_tokens) + limit = int(max_output_tokens) + except (TypeError, ValueError) as exc: + raise ModelBudgetError("response token counts must be integers") from exc + if actual < 0 or limit < 0: + raise ModelBudgetError("response token counts must be non-negative") + if actual > limit: + raise ModelBudgetError( + "model response exceeded output token budget " + f"(actual={actual}, limit={limit})" + ) + return { + "output_tokens": actual, + "max_output_tokens": limit, + "finish_reason": finish_reason, + "truncated": finish_reason in { + "length", + "max_tokens", + "max_output_tokens", + "max_completion_tokens", + }, + } + + +def validate_provider_response( + response: Any, + *, + max_output_tokens: int, +) -> dict[str, int | str | None | bool]: + """Validate usage and completion state returned by a provider. + + ``response`` may be a normal Responses API object or a streaming event + envelope. Failed/incomplete responses are rejected as non-reusable so a + caller cannot append partial output to the next request. A length-limit + completion is returned as ``truncated`` and must be resumed from a fresh + checkpoint. + """ + + response_object = _response_object(response) + usage = extract_response_usage(response_object) + status = response_object.get("status") + incomplete = response_object.get("incomplete_details") + finish_reason = None + if isinstance(incomplete, dict): + reason = incomplete.get("reason") + if reason is not None: + finish_reason = str(reason) + if finish_reason is None and response_object.get("finish_reason") is not None: + finish_reason = str(response_object["finish_reason"]) + if status is None and finish_reason is None: + raise ModelBudgetError("provider response is missing completion status") + result = validate_response( + usage["output_tokens"], + max_output_tokens=max_output_tokens, + finish_reason=finish_reason, + ) + if status in {"failed", "cancelled"}: + raise ModelBudgetError( + f"provider response is not reusable (status={status})" + ) + if status == "incomplete" and not result["truncated"]: + raise ModelBudgetError( + "provider response is incomplete without a length checkpoint reason" + ) + result.update(usage) + result["status"] = str(status) if status is not None else None + return result + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("packet", type=Path) + parser.add_argument("--context-window", type=int, default=DEFAULT_CONTEXT_WINDOW) + parser.add_argument("--max-output-tokens", type=int) + parser.add_argument("--safety-margin", type=int, default=DEFAULT_SAFETY_MARGIN) + parser.add_argument("--input-tokens", type=int, help="exact count from the provider tokenizer") + parser.add_argument( + "--overhead-tokens", + type=int, + required=True, + help="system/tool/history tokens outside the context packet", + ) + args = parser.parse_args() + try: + with args.packet.open("r", encoding="utf-8") as handle: + packet = json.load(handle) + if not isinstance(packet, dict): + raise ModelBudgetError("packet must be a JSON object") + result = validate_request( + packet, + context_window=args.context_window, + max_output_tokens=args.max_output_tokens, + safety_margin=args.safety_margin, + input_tokens=args.input_tokens, + overhead_tokens=args.overhead_tokens, + ) + except (OSError, UnicodeError, json.JSONDecodeError, ModelBudgetError) as exc: + parser.error(str(exc)) + print( + "model_budget=valid " + f"input_tokens={result['input_token_limit']} " + f"estimated_input={result['estimated_input_tokens']} " + f"overhead={result['overhead_tokens']} " + f"max_output={result['max_output_tokens']} " + f"reserved_total={result['reserved_total_tokens']}" + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/validate_task_pointer.py b/scripts/validate_task_pointer.py new file mode 100644 index 0000000..5b26a06 --- /dev/null +++ b/scripts/validate_task_pointer.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 +"""Validate the small task pointer loaded at the start of a work session.""" + +from __future__ import annotations + +import argparse +import json +import re +from pathlib import Path + + +MAX_POINTER_BYTES = 8192 +MAX_POINTER_LINES = 180 +REQUIRED_HEADINGS = ("## Current", "## Read", "## Task", "## Next", "## Verify", "## Stop") +FORBIDDEN_HEADINGS = ( + "## 6. 已验证证据", + "## Evidence", + "## History", + "## 历史", + "## Chat", +) + + +class PointerError(ValueError): + """Raised when the bootstrap pointer would expand the model context.""" + + +def validate_pointer( + path: Path, + *, + max_bytes: int = MAX_POINTER_BYTES, + max_lines: int = MAX_POINTER_LINES, + lock_path: Path | None = None, +) -> dict[str, int]: + text = path.read_text(encoding="utf-8") + size = len(text.encode("utf-8")) + lines = len(text.splitlines()) + if size > max_bytes: + raise PointerError(f"task pointer exceeds byte budget ({size}>{max_bytes})") + if lines > max_lines: + raise PointerError(f"task pointer exceeds line budget ({lines}>{max_lines})") + missing = [heading for heading in REQUIRED_HEADINGS if heading not in text] + if missing: + raise PointerError(f"task pointer missing sections: {', '.join(missing)}") + found = [heading for heading in FORBIDDEN_HEADINGS if re.search(rf"^\s*{re.escape(heading)}\s*$", text, re.MULTILINE)] + if found: + raise PointerError(f"task pointer contains history section: {found[0]}") + if "coverage/" not in text: + raise PointerError("task pointer must direct large evidence to paths") + pointer_match = re.search(r"^context_id:\s*([^\s]+)\s*$", text, re.MULTILINE) + if pointer_match is None: + raise PointerError("task pointer is missing context_id") + if lock_path is not None and lock_path.exists(): + try: + lock = json.loads(lock_path.read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError) as exc: + raise PointerError(f"cannot read context lock: {exc}") from exc + lock_id = lock.get("context_id") if isinstance(lock, dict) else None + if not lock_id: + raise PointerError("context lock is missing context_id") + if pointer_match.group(1) != str(lock_id): + raise PointerError( + f"task pointer context_id does not match lock ({pointer_match.group(1)}!={lock_id})" + ) + return {"bytes": size, "lines": lines, "max_bytes": max_bytes, "max_lines": max_lines} + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("path", nargs="?", type=Path, default=Path("nextTask.md")) + parser.add_argument("--max-bytes", type=int, default=MAX_POINTER_BYTES) + parser.add_argument("--max-lines", type=int, default=MAX_POINTER_LINES) + parser.add_argument("--lock", type=Path, default=Path("context-lock.json")) + args = parser.parse_args() + try: + result = validate_pointer( + args.path, + max_bytes=args.max_bytes, + max_lines=args.max_lines, + lock_path=args.lock, + ) + except (OSError, UnicodeError, PointerError) as exc: + parser.error(str(exc)) + print(f"task_pointer=valid bytes={result['bytes']} lines={result['lines']}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/wasm-core/CMakeLists.txt b/wasm-core/CMakeLists.txt index 0012865..180b956 100644 --- a/wasm-core/CMakeLists.txt +++ b/wasm-core/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -add_library(sim_core STATIC src/sim_api.c src/sim_protocol.c src/sim_event.c src/sim_hal.c src/sim_posemath.c) +add_library(sim_core STATIC src/sim_api.c src/sim_protocol.c src/sim_event.c src/sim_hal.c src/sim_posemath.c src/sim_interpreter.c src/sim_motion_queue.c src/sim_kinematics.c) target_include_directories(sim_core PUBLIC include) target_compile_definitions(sim_core PRIVATE SIM_API_BUILD=1) @@ -22,7 +22,9 @@ target_include_directories(sim_posemath PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../linuxcnc/src/libnml/posemath ) target_compile_definitions(sim_posemath PRIVATE ULAPI) +target_compile_options(sim_posemath PRIVATE -ffp-contract=off -fno-fast-math) target_link_libraries(sim_core PUBLIC sim_posemath) +target_compile_options(sim_core PRIVATE -ffp-contract=off -fno-fast-math) if(NOT EMSCRIPTEN) add_executable(sim_api_test tests/sim_api_test.c) @@ -42,29 +44,59 @@ if(NOT EMSCRIPTEN) target_include_directories(sim_event_test PRIVATE include) add_test(NAME sim_event_test COMMAND sim_event_test) - add_executable(sim_hal_test tests/sim_hal_test.c) + add_executable(sim_hal_test tests/sim_hal_test.c tests/sim_hal_test_main.c) target_link_libraries(sim_hal_test PRIVATE sim_core) target_include_directories(sim_hal_test PRIVATE include) + target_compile_options(sim_hal_test PRIVATE -UNDEBUG) add_test(NAME sim_hal_test COMMAND sim_hal_test) add_executable(sim_posemath_test tests/sim_posemath_test.c) target_link_libraries(sim_posemath_test PRIVATE sim_core) target_include_directories(sim_posemath_test PRIVATE include) add_test(NAME sim_posemath_test COMMAND sim_posemath_test) + + add_executable(sim_interpreter_test tests/sim_interpreter_test.c) + target_link_libraries(sim_interpreter_test PRIVATE sim_core) + target_include_directories(sim_interpreter_test PRIVATE include) + add_test(NAME sim_interpreter_test COMMAND sim_interpreter_test) + + add_executable(sim_motion_queue_test tests/sim_motion_queue_test.c) + target_link_libraries(sim_motion_queue_test PRIVATE sim_core) + target_include_directories(sim_motion_queue_test PRIVATE include) + add_test(NAME sim_motion_queue_test COMMAND sim_motion_queue_test) + + add_executable(sim_kinematics_test tests/sim_kinematics_test.c tests/sim_kinematics_test_main.c) + target_link_libraries(sim_kinematics_test PRIVATE sim_core) + target_include_directories(sim_kinematics_test PRIVATE include) + target_compile_options(sim_kinematics_test PRIVATE -UNDEBUG) + add_test(NAME sim_kinematics_test COMMAND sim_kinematics_test) endif() if(EMSCRIPTEN) - add_executable(sim_core_module src/sim_api.c src/sim_protocol.c src/sim_event.c src/sim_hal.c src/sim_posemath.c) + add_executable(sim_hal_wasm_test tests/sim_hal_test.c tests/sim_hal_test_main.c) + target_link_libraries(sim_hal_wasm_test PRIVATE sim_core) + target_include_directories(sim_hal_wasm_test PRIVATE include) + target_compile_options(sim_hal_wasm_test PRIVATE -UNDEBUG) + target_link_options(sim_hal_wasm_test PRIVATE -sSINGLE_FILE=1) + + add_executable(sim_kinematics_wasm_test tests/sim_kinematics_test.c tests/sim_kinematics_test_main.c) + target_link_libraries(sim_kinematics_wasm_test PRIVATE sim_core) + target_include_directories(sim_kinematics_wasm_test PRIVATE include) + target_compile_options(sim_kinematics_wasm_test PRIVATE -UNDEBUG) + target_link_options(sim_kinematics_wasm_test PRIVATE -sSINGLE_FILE=1) + + add_executable(sim_core_module src/sim_api.c src/sim_protocol.c src/sim_event.c src/sim_hal.c src/sim_posemath.c src/sim_interpreter.c src/sim_motion_queue.c src/sim_kinematics.c) target_include_directories(sim_core_module PRIVATE include ${CMAKE_CURRENT_SOURCE_DIR}/../linuxcnc/src ${CMAKE_CURRENT_SOURCE_DIR}/../linuxcnc/src/rtapi ${CMAKE_CURRENT_SOURCE_DIR}/../linuxcnc/src/libnml/posemath ) + target_compile_options(sim_core_module PRIVATE -ffp-contract=off -fno-fast-math) target_link_libraries(sim_core_module PRIVATE sim_posemath) set_target_properties(sim_core_module PROPERTIES OUTPUT_NAME "linuxcnc-sim-core" SUFFIX ".js" - LINK_FLAGS "-sMODULARIZE=1 -sEXPORT_ES6=1 -sENVIRONMENT=web,worker -sEXPORTED_FUNCTIONS=['_malloc','_free','_sim_create','_sim_load_workspace','_sim_command','_sim_step','_sim_read_snapshot','_sim_read_event','_sim_export_state','_sim_import_state','_sim_destroy','_sim_protocol_reset','_sim_protocol_accept','_sim_protocol_pause','_sim_protocol_resume','_sim_protocol_state_value','_sim_protocol_last_seq','_sim_protocol_tick','_sim_protocol_set_tick','_sim_event_reset','_sim_event_append','_sim_event_count','_sim_event_cursor','_sim_event_read','_sim_event_export','_sim_event_import','_sim_hal_reset','_sim_hal_register_pin','_sim_hal_set_pin','_sim_hal_get_pin','_sim_hal_connect','_sim_hal_register_thread','_sim_hal_register_function','_sim_hal_set_function_failure','_sim_hal_step','_sim_hal_tick','_sim_hal_function_calls','_sim_hal_pin_count','_sim_hal_thread_count','_sim_hal_function_count','_sim_posemath_normalize','_sim_posemath_dot','_sim_posemath_line_point','_sim_posemath_is_finite'] -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap']" + LINK_FLAGS "-sMODULARIZE=1 -sEXPORT_ES6=1 -sENVIRONMENT=web,worker -sEXPORTED_FUNCTIONS=['_malloc','_free','_sim_create','_sim_load_workspace','_sim_command','_sim_step','_sim_read_snapshot','_sim_read_event','_sim_export_state','_sim_import_state','_sim_destroy','_sim_protocol_reset','_sim_protocol_accept','_sim_protocol_pause','_sim_protocol_resume','_sim_protocol_state_value','_sim_protocol_last_seq','_sim_protocol_tick','_sim_protocol_set_tick','_sim_event_reset','_sim_event_append','_sim_event_count','_sim_event_cursor','_sim_event_read','_sim_event_export','_sim_event_import','_sim_hal_reset','_sim_hal_register_pin','_sim_hal_set_pin','_sim_hal_get_pin','_sim_hal_connect','_sim_hal_register_thread','_sim_hal_register_function','_sim_hal_set_function_failure','_sim_hal_step','_sim_hal_tick','_sim_hal_function_calls','_sim_hal_pin_count','_sim_hal_thread_count','_sim_hal_function_count','_sim_posemath_normalize','_sim_posemath_dot','_sim_posemath_line_point','_sim_posemath_is_finite','_sim_posemath_pose_is_finite','_sim_posemath_pose_line_point','_sim_posemath_segment_validate','_sim_posemath_segment_point','_sim_posemath_hash_state','_sim_tp_init','_sim_tp_reset','_sim_tp_enqueue','_sim_tp_step','_sim_tp_read_state','_sim_tp_state_hash','_sim_interpreter_init','_sim_interpreter_reset','_sim_interpreter_execute','_sim_interpreter_read_state','_sim_interpreter_canonical','_sim_interpreter_state_hash','_sim_interpreter_block_hash','_sim_motion_init','_sim_motion_reset','_sim_motion_enqueue','_sim_motion_step','_sim_motion_read_state','_sim_motion_queue_depth','_sim_motion_state_hash','_sim_motion_canonical','_sim_kinematics_init','_sim_kinematics_forward','_sim_kinematics_forward_ex','_sim_kinematics_inverse','_sim_kinematics_inverse_ex','_sim_kinematics_home','_sim_kinematics_validate_pose','_sim_kinematics_state_hash'] -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap']" ) endif() diff --git a/wasm-core/include/sim_hal.h b/wasm-core/include/sim_hal.h index efbb9cb..92412d4 100644 --- a/wasm-core/include/sim_hal.h +++ b/wasm-core/include/sim_hal.h @@ -49,6 +49,10 @@ int32_t sim_hal_get_pin(const char *name, sim_hal_value *out); int32_t sim_hal_connect(const char *source, const char *target); int32_t sim_hal_register_thread(const char *name, uint32_t period_ticks); int32_t sim_hal_register_function(const char *thread, const char *name); +/* Register the static LinuxCNC corexy_by_hal component and its servo pins. */ +int32_t sim_hal_register_corexy_by_hal(const char *component, const char *thread); +/* Execute one deterministic CoreXY command/feedback transform immediately. */ +int32_t sim_hal_corexy_transform(const char *component); int32_t sim_hal_set_function_failure(const char *name, uint32_t fail); int32_t sim_hal_step(uint32_t ticks); uint32_t sim_hal_tick(void); diff --git a/wasm-core/include/sim_interpreter.h b/wasm-core/include/sim_interpreter.h new file mode 100644 index 0000000..a2d7174 --- /dev/null +++ b/wasm-core/include/sim_interpreter.h @@ -0,0 +1,74 @@ +#ifndef LINUXCNC_WEB_WASM_SIM_INTERPRETER_H +#define LINUXCNC_WEB_WASM_SIM_INTERPRETER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum sim_interpreter_result { + SIM_INTERP_OK = 0, + SIM_INTERP_ERR_ARGUMENT = -500, + SIM_INTERP_ERR_NONFINITE = -501, + SIM_INTERP_ERR_SYNTAX = -502, + SIM_INTERP_ERR_RANGE = -503, + SIM_INTERP_ERR_UNKNOWN_CODE = -504, + SIM_INTERP_ERR_STATE = -505, + SIM_INTERP_ERR_BUFFER = -506, +}; + +enum sim_interpreter_units { + SIM_INTERP_UNITS_INCH = 20, + SIM_INTERP_UNITS_MM = 21, +}; + +enum sim_interpreter_distance_mode { + SIM_INTERP_ABSOLUTE = 90, + SIM_INTERP_INCREMENTAL = 91, +}; + +typedef struct sim_interpreter_state { + double x; + double y; + double z; + double a; + double b; + double c; + double u; + double v; + double w; + double feed; + double speed; + uint32_t line; + int units; + int distance_mode; + int plane; + int motion_mode; + int spindle_mode; + int program_end; + int status; +} sim_interpreter_state; + +#define SIM_INTERPRETER_CANONICAL_CAPACITY 512u + +typedef struct sim_interpreter { + sim_interpreter_state state; + uint64_t block_hash; + uint32_t canonical_length; + char canonical[SIM_INTERPRETER_CANONICAL_CAPACITY]; +} sim_interpreter; + +int sim_interpreter_init(sim_interpreter *interpreter); +int sim_interpreter_reset(sim_interpreter *interpreter); +int sim_interpreter_execute(sim_interpreter *interpreter, const char *block, uint32_t length); +int sim_interpreter_read_state(const sim_interpreter *interpreter, sim_interpreter_state *state); +uint32_t sim_interpreter_canonical(const sim_interpreter *interpreter, char *output, uint32_t capacity); +uint64_t sim_interpreter_state_hash(const sim_interpreter *interpreter); +uint64_t sim_interpreter_block_hash(const sim_interpreter *interpreter); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/wasm-core/include/sim_kinematics.h b/wasm-core/include/sim_kinematics.h new file mode 100644 index 0000000..228a31f --- /dev/null +++ b/wasm-core/include/sim_kinematics.h @@ -0,0 +1,174 @@ +#ifndef LINUXCNC_WEB_WASM_SIM_KINEMATICS_H +#define LINUXCNC_WEB_WASM_SIM_KINEMATICS_H + +#include "sim_posemath.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum sim_kinematics_result { + SIM_KIN_OK = 0, + SIM_KIN_ERR_ARGUMENT = -700, + SIM_KIN_ERR_NONFINITE = -701, + SIM_KIN_ERR_RANGE = -702, + SIM_KIN_ERR_CONFIGURATION = -703, + SIM_KIN_ERR_SINGULAR = -704, + SIM_KIN_ERR_UNKNOWN_TYPE = -705, + SIM_KIN_ERR_UNSUPPORTED = -706, +}; + +enum sim_kinematics_type { + SIM_KIN_TRIVKINS = 1, + SIM_KIN_XYZAC_TRT = 2, + SIM_KIN_XYZBC_TRT = 3, + SIM_KIN_XYZBCW = 4, + SIM_KIN_COREXY = 5, + SIM_KIN_ROSE = 6, + SIM_KIN_MAXKINS = 7, + SIM_KIN_ROTATEKINS = 8, + SIM_KIN_5AXISKINS = 9, + SIM_KIN_SCARA = 10, + SIM_KIN_PUMA = 11, + SIM_KIN_SCORBOT = 12, + SIM_KIN_GENSER = 13, + SIM_KIN_LINEAR_DELTA = 14, + SIM_KIN_ROTARY_DELTA = 15, + SIM_KIN_TRIPOD = 16, + SIM_KIN_GENHEX = 17, + SIM_KIN_PENTAPOD = 18, +}; + +/* LinuxCNC kinematics mode semantics. Zero means the module default. */ +enum sim_kinematics_mode { + SIM_KIN_MODE_DEFAULT = 0, + SIM_KIN_MODE_IDENTITY = 1, + SIM_KIN_MODE_FORWARD_ONLY = 2, + SIM_KIN_MODE_INVERSE_ONLY = 3, + SIM_KIN_MODE_BOTH = 4, +}; + +/* Delta mechanisms expose the two analytic roots through the flags fields. + * The default (zero) is LinuxCNC's lower/platform root; bit zero selects the + * alternate root for callers that need an explicit branch comparison. */ +#define SIM_KIN_DELTA_ALTERNATE_ROOT UINT64_C(1) +/* Tripod forward flags select the below-base solution when set. */ +#define SIM_KIN_TRIPOD_BELOW_ROOT UINT64_C(1) +/* Genhex forward flags select the alternate (below-platform) initial seed. */ +#define SIM_KIN_GENHEX_ALTERNATE_SEED UINT64_C(2) + +#define SIM_KIN_MAX_JOINTS 9u +#define SIM_KIN_GENHEX_STRUTS 6u +#define SIM_KIN_PENTA_STRUTS 5u + +typedef struct sim_kinematics_config { + int type; + int mode; + uint32_t joint_count; + /* Total configured joints and the prefix owned by kinematics. */ + uint32_t kinematics_joint_count; + uint32_t extra_joint_count; + char coordinates[16]; + double x_rot_point; + double y_rot_point; + double z_rot_point; + double x_offset; + double y_offset; + double z_offset; + double tool_offset; + double pivot_length; + double scara_d1; + double scara_d2; + double scara_d3; + double scara_d4; + double scara_d5; + double scara_d6; + double puma_a2; + double puma_a3; + double puma_d3; + double puma_d4; + double puma_d6; + uint32_t dh_joint_count; + double dh_a[SIM_KIN_MAX_JOINTS]; + double dh_alpha[SIM_KIN_MAX_JOINTS]; + double dh_d[SIM_KIN_MAX_JOINTS]; + double delta_radius; + double delta_rod_length; + double rotary_platform_radius; + double rotary_thigh_length; + double rotary_shin_length; + double rotary_foot_radius; + double tripod_bx; + double tripod_cx; + double tripod_cy; + double genhex_base[SIM_KIN_GENHEX_STRUTS][3]; + double genhex_platform[SIM_KIN_GENHEX_STRUTS][3]; + double genhex_base_axis[SIM_KIN_GENHEX_STRUTS][3]; + double genhex_platform_axis[SIM_KIN_GENHEX_STRUTS][3]; + double genhex_screw_lead; + double genhex_tool_offset; + double genhex_spindle_offset; + double genhex_max_error; + double genhex_convergence_tolerance; + uint32_t genhex_iteration_limit; + double genhex_initial_pose[6]; + double penta_base[SIM_KIN_PENTA_STRUTS][3]; + double penta_effector_radius[SIM_KIN_PENTA_STRUTS]; + double penta_effector_z[SIM_KIN_PENTA_STRUTS]; + double penta_tool_offset; + double penta_max_error; + double penta_convergence_tolerance; + uint32_t penta_iteration_limit; + double penta_initial_pose[5]; + uint32_t max_iterations; + double convergence_tolerance; + uint8_t limit_enabled[SIM_KIN_MAX_JOINTS]; + double joint_min[SIM_KIN_MAX_JOINTS]; + double joint_max[SIM_KIN_MAX_JOINTS]; +} sim_kinematics_config; + +typedef struct sim_kinematics { + sim_kinematics_config config; + int axis_joint[SIM_KIN_MAX_JOINTS]; + uint32_t configured; + uint64_t forward_flags; + uint64_t inverse_flags; + sim_posemath_pose last_pose; + double last_residual; + uint32_t last_iterations; + uint32_t branch_id; + int32_t revolution_count; + uint32_t previous_quadrant; +} sim_kinematics; + +typedef struct sim_kinematics_result_info { + uint64_t forward_flags; + uint64_t inverse_flags; + double residual; + uint32_t iterations; + uint32_t branch_id; +} sim_kinematics_result_info; + +int sim_kinematics_init(sim_kinematics *kinematics, const sim_kinematics_config *config); +int sim_kinematics_forward(const sim_kinematics *kinematics, const double *joints, + uint32_t joint_count, sim_posemath_pose *pose); +int sim_kinematics_forward_ex(const sim_kinematics *kinematics, const double *joints, + uint32_t joint_count, uint64_t inverse_flags, + sim_posemath_pose *pose, sim_kinematics_result_info *info); +int sim_kinematics_inverse(sim_kinematics *kinematics, const sim_posemath_pose *pose, + double *joints, uint32_t joint_count); +int sim_kinematics_inverse_ex(sim_kinematics *kinematics, const sim_posemath_pose *pose, + uint32_t joint_count, uint64_t forward_flags, + double *joints, sim_kinematics_result_info *info); +int sim_kinematics_home(const sim_kinematics *kinematics, double *joints, uint32_t joint_count, + sim_posemath_pose *pose); +int sim_kinematics_validate_pose(const sim_posemath_pose *pose); +uint64_t sim_kinematics_state_hash(const sim_kinematics *kinematics, + const double *joints, uint32_t joint_count, + const sim_posemath_pose *pose); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/wasm-core/include/sim_motion_queue.h b/wasm-core/include/sim_motion_queue.h new file mode 100644 index 0000000..154dfef --- /dev/null +++ b/wasm-core/include/sim_motion_queue.h @@ -0,0 +1,66 @@ +#ifndef LINUXCNC_WEB_WASM_SIM_MOTION_QUEUE_H +#define LINUXCNC_WEB_WASM_SIM_MOTION_QUEUE_H + +#include "sim_posemath.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum sim_motion_result { + SIM_MOTION_OK = 0, + SIM_MOTION_ERR_ARGUMENT = -600, + SIM_MOTION_ERR_NONFINITE = -601, + SIM_MOTION_ERR_RANGE = -602, + SIM_MOTION_ERR_GEOMETRY = -603, + SIM_MOTION_ERR_MOTION_TYPE = -604, + SIM_MOTION_ERR_STATE = -605, + SIM_MOTION_ERR_CAPACITY = -606, + SIM_MOTION_ERR_BUFFER = -607, +}; + +#define SIM_MOTION_QUEUE_CAPACITY 64u + +typedef struct sim_motion_command { + sim_posemath_segment segment; + uint32_t id; + uint32_t tag; +} sim_motion_command; + +typedef struct sim_motion_state { + sim_posemath_pose position; + double velocity; + double progress; + uint32_t tick; + uint32_t queue_depth; + uint32_t active_id; + uint32_t active_tag; + int motion_type; + int status; +} sim_motion_state; + +typedef struct sim_motion_queue { + sim_motion_command commands[SIM_MOTION_QUEUE_CAPACITY]; + uint32_t head; + uint32_t count; + uint32_t next_id; + uint32_t tick; + double cycle_time; + double velocity_limit; + sim_motion_state state; +} sim_motion_queue; + +int sim_motion_init(sim_motion_queue *queue, double cycle_time, double velocity_limit); +int sim_motion_reset(sim_motion_queue *queue); +int sim_motion_enqueue(sim_motion_queue *queue, const sim_motion_command *command, uint32_t *id_out); +int sim_motion_step(sim_motion_queue *queue); +int sim_motion_read_state(const sim_motion_queue *queue, sim_motion_state *state); +uint32_t sim_motion_queue_depth(const sim_motion_queue *queue); +uint64_t sim_motion_state_hash(const sim_motion_queue *queue); +uint32_t sim_motion_canonical(const sim_motion_queue *queue, char *output, uint32_t capacity); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/wasm-core/include/sim_posemath.h b/wasm-core/include/sim_posemath.h index 7a7dcad..811ff96 100644 --- a/wasm-core/include/sim_posemath.h +++ b/wasm-core/include/sim_posemath.h @@ -5,12 +5,25 @@ extern "C" { #endif +#include + enum sim_posemath_result { SIM_POSEMATH_OK = 0, SIM_POSEMATH_ERR_ARGUMENT = -400, SIM_POSEMATH_ERR_NONFINITE = -401, SIM_POSEMATH_ERR_DEGENERATE = -402, SIM_POSEMATH_ERR_RANGE = -403, + SIM_POSEMATH_ERR_MOTION_TYPE = -404, + SIM_POSEMATH_ERR_STATE = -405, + SIM_POSEMATH_ERR_CAPACITY = -406, +}; + +/* Values match LinuxCNC's tc_motion_type_t. */ +enum sim_posemath_motion_type { + SIM_POSEMATH_LINEAR = 1, + SIM_POSEMATH_CIRCULAR = 2, + SIM_POSEMATH_RIGID_TAP = 3, + SIM_POSEMATH_SPHERICAL = 4, }; typedef struct sim_posemath_cartesian { @@ -19,11 +32,77 @@ typedef struct sim_posemath_cartesian { double z; } sim_posemath_cartesian; +typedef struct sim_posemath_pose { + sim_posemath_cartesian tran; + double a; + double b; + double c; + double u; + double v; + double w; +} sim_posemath_pose; + +typedef struct sim_posemath_segment { + sim_posemath_pose start; + sim_posemath_pose end; + sim_posemath_cartesian center; + sim_posemath_cartesian normal; + double velocity; + double acceleration; + int motion_type; + int turn; +} sim_posemath_segment; + +typedef struct sim_tp_state { + sim_posemath_pose position; + double velocity; + double progress; + uint32_t tick; + uint32_t queue_depth; + uint32_t active_id; + int motion_type; + int status; +} sim_tp_state; + +#define SIM_TP_QUEUE_CAPACITY 32u + +typedef struct sim_tp { + sim_posemath_segment queue[SIM_TP_QUEUE_CAPACITY]; + uint32_t ids[SIM_TP_QUEUE_CAPACITY]; + uint32_t head; + uint32_t count; + uint32_t next_id; + uint32_t active_id; + uint32_t tick; + double cycle_time; + double velocity_limit; + double acceleration_limit; + double progress; + double current_velocity; + sim_posemath_pose position; + int motion_type; + int status; +} sim_tp; + int sim_posemath_normalize(const sim_posemath_cartesian *input, sim_posemath_cartesian *output); int sim_posemath_dot(const sim_posemath_cartesian *left, const sim_posemath_cartesian *right, double *output); int sim_posemath_line_point(const sim_posemath_cartesian *start, const sim_posemath_cartesian *end, double fraction, sim_posemath_cartesian *output); int sim_posemath_is_finite(const sim_posemath_cartesian *value); +int sim_posemath_pose_is_finite(const sim_posemath_pose *value); +int sim_posemath_pose_line_point(const sim_posemath_pose *start, const sim_posemath_pose *end, + double fraction, sim_posemath_pose *output); +int sim_posemath_segment_validate(const sim_posemath_segment *segment); +int sim_posemath_segment_point(const sim_posemath_segment *segment, double fraction, + sim_posemath_pose *output); +uint64_t sim_posemath_hash_state(const sim_tp_state *state); + +int sim_tp_init(sim_tp *tp, double cycle_time, double velocity_limit, double acceleration_limit); +int sim_tp_reset(sim_tp *tp); +int sim_tp_enqueue(sim_tp *tp, const sim_posemath_segment *segment, uint32_t *id_out); +int sim_tp_step(sim_tp *tp); +int sim_tp_read_state(const sim_tp *tp, sim_tp_state *state); +uint64_t sim_tp_state_hash(const sim_tp *tp); #ifdef __cplusplus } diff --git a/wasm-core/src/sim_hal.c b/wasm-core/src/sim_hal.c index d2999df..fa22d69 100644 --- a/wasm-core/src/sim_hal.c +++ b/wasm-core/src/sim_hal.c @@ -21,8 +21,11 @@ typedef struct { uint32_t thread; uint32_t calls; uint32_t fail; + uint32_t transform_kind; } function_entry; +enum { SIM_HAL_TRANSFORM_NONE = 0, SIM_HAL_TRANSFORM_COREXY = 1 }; + typedef struct { uint32_t tick; pin_entry pins[SIM_HAL_PIN_CAPACITY]; @@ -136,6 +139,73 @@ int32_t sim_hal_register_function(const char *thread, const char *name) { return SIM_HAL_ERR_FULL; } +static int32_t corexy_pin_names(const char *component, char names[8][SIM_HAL_NAME_CAPACITY]) { + static const char *suffixes[8] = { + ".j0-motor-pos-cmd", ".j1-motor-pos-cmd", ".alpha-cmd", ".beta-cmd", + ".alpha-fb", ".beta-fb", ".j0-motor-pos-fb", ".j1-motor-pos-fb", + }; + uint32_t index; + if (!valid_name(component)) return SIM_HAL_ERR_ARGUMENT; + for (index = 0; index < 8; ++index) { + size_t prefix = strlen(component); + size_t suffix = strlen(suffixes[index]); + if (prefix + suffix >= SIM_HAL_NAME_CAPACITY) return SIM_HAL_ERR_RANGE; + memcpy(names[index], component, prefix); + memcpy(names[index] + prefix, suffixes[index], suffix + 1); + } + return SIM_HAL_OK; +} + +int32_t sim_hal_register_corexy_by_hal(const char *component, const char *thread) { + char names[8][SIM_HAL_NAME_CAPACITY]; + uint32_t index; + int32_t result; + if (component == NULL || thread == NULL) return SIM_HAL_ERR_ARGUMENT; + result = corexy_pin_names(component, names); + if (result != SIM_HAL_OK) return result; + for (index = 0; index < 8; ++index) { + if (find_pin(names[index]) >= 0) return SIM_HAL_ERR_DUPLICATE; + } + if (find_function(component) >= 0) return SIM_HAL_ERR_DUPLICATE; + for (index = 0; index < 8; ++index) { + result = sim_hal_register_pin(names[index], SIM_HAL_FLOAT); + if (result != SIM_HAL_OK) return result; + } + result = sim_hal_register_function(thread, component); + if (result != SIM_HAL_OK) return result; + state.functions[find_function(component)].transform_kind = SIM_HAL_TRANSFORM_COREXY; + return SIM_HAL_OK; +} + +static int32_t float_pin(const char *name, float *value) { + sim_hal_value pin = {0}; + int32_t result = sim_hal_get_pin(name, &pin); + if (result != SIM_HAL_OK) return result; + if (pin.type != SIM_HAL_FLOAT) return SIM_HAL_ERR_TYPE; + *value = pin.value.real; + return SIM_HAL_OK; +} + +static int32_t set_float_pin(const char *name, float value) { + sim_hal_value pin = {SIM_HAL_FLOAT, {.real = value}}; + return sim_hal_set_pin(name, pin); +} + +int32_t sim_hal_corexy_transform(const char *component) { + char names[8][SIM_HAL_NAME_CAPACITY]; + float j0_cmd, j1_cmd, alpha_fb, beta_fb; + int32_t result = corexy_pin_names(component, names); + if (result != SIM_HAL_OK) return result; + result = float_pin(names[0], &j0_cmd); if (result != SIM_HAL_OK) return result; + result = float_pin(names[1], &j1_cmd); if (result != SIM_HAL_OK) return result; + result = float_pin(names[4], &alpha_fb); if (result != SIM_HAL_OK) return result; + result = float_pin(names[5], &beta_fb); if (result != SIM_HAL_OK) return result; + result = set_float_pin(names[2], 0.5f * (j0_cmd + j1_cmd)); if (result != SIM_HAL_OK) return result; + result = set_float_pin(names[3], 0.5f * (j0_cmd - j1_cmd)); if (result != SIM_HAL_OK) return result; + result = set_float_pin(names[6], alpha_fb + beta_fb); if (result != SIM_HAL_OK) return result; + return set_float_pin(names[7], alpha_fb - beta_fb); +} + int32_t sim_hal_set_function_failure(const char *name, uint32_t fail) { int index = find_function(name); if (index < 0) return SIM_HAL_ERR_NOT_FOUND; @@ -152,6 +222,10 @@ int32_t sim_hal_step(uint32_t ticks) { function_entry *function = &state.functions[function_index]; if (!function->used || tick % state.threads[function->thread].period != 0U) continue; if (function->fail) return SIM_HAL_ERR_FUNCTION; + if (function->transform_kind == SIM_HAL_TRANSFORM_COREXY) { + int32_t result = sim_hal_corexy_transform(function->name); + if (result != SIM_HAL_OK) return SIM_HAL_ERR_FUNCTION; + } function->calls += 1U; } } diff --git a/wasm-core/src/sim_interpreter.c b/wasm-core/src/sim_interpreter.c new file mode 100644 index 0000000..afe2cb7 --- /dev/null +++ b/wasm-core/src/sim_interpreter.c @@ -0,0 +1,257 @@ +#include "sim_interpreter.h" + +#include +#include +#include +#include +#include + +static uint64_t fnv1a64(const unsigned char *bytes, size_t length) { + uint64_t hash = UINT64_C(1469598103934665603); + size_t index; + for (index = 0; index < length; ++index) { + hash ^= (uint64_t)bytes[index]; + hash *= UINT64_C(1099511628211); + } + return hash; +} + +static int finite_state(const sim_interpreter_state *state) { + const double *values; + size_t index; + if (state == 0) return 0; + values = &state->x; + for (index = 0; index < 11; ++index) if (!isfinite(values[index])) return 0; + return 1; +} + +static int parse_number(const char **cursor, const char *end, double *output) { + const char *start = *cursor; + int sign = 1; + int digits = 0; + int exponent_sign = 1; + int exponent = 0; + long double value = 0.0L; + long double scale = 1.0L; + if (*cursor < end && (**cursor == '+' || **cursor == '-')) { + if (**cursor == '-') sign = -1; + ++*cursor; + } + while (*cursor < end && isdigit((unsigned char)**cursor)) { + value = value * 10.0L + (long double)(**cursor - '0'); + ++*cursor; + digits = 1; + } + if (*cursor < end && **cursor == '.') { + ++*cursor; + while (*cursor < end && isdigit((unsigned char)**cursor)) { + value = value * 10.0L + (long double)(**cursor - '0'); + scale *= 10.0L; + ++*cursor; + digits = 1; + } + } + if (!digits) { *cursor = start; return SIM_INTERP_ERR_SYNTAX; } + if (*cursor < end && (**cursor == 'e' || **cursor == 'E')) { + ++*cursor; + if (*cursor < end && (**cursor == '+' || **cursor == '-')) { + if (**cursor == '-') exponent_sign = -1; + ++*cursor; + } + if (*cursor == end || !isdigit((unsigned char)**cursor)) { *cursor = start; return SIM_INTERP_ERR_SYNTAX; } + while (*cursor < end && isdigit((unsigned char)**cursor)) { + if (exponent < 10000) exponent = exponent * 10 + (**cursor - '0'); + ++*cursor; + } + } + value = (long double)sign * value / scale; + if (exponent) value *= powl(10.0L, (long double)(exponent_sign * exponent)); + *output = (double)value; + return isfinite(*output) ? SIM_INTERP_OK : SIM_INTERP_ERR_NONFINITE; +} + +static int code_is(double value, int integer_code) { + return isfinite(value) && fabs(value - (double)integer_code) <= 1e-12; +} + +static int axis_index(char letter) { + switch (letter) { + case 'X': return 0; case 'Y': return 1; case 'Z': return 2; + case 'A': return 3; case 'B': return 4; case 'C': return 5; + case 'U': return 6; case 'V': return 7; case 'W': return 8; + default: return -1; + } +} + +static double *axis_pointer(sim_interpreter_state *state, int index) { + return &state->x + index; +} + +static int apply_g(sim_interpreter_state *state, double code, int *groups) { + if (code_is(code, 0)) { if (++groups[0] > 1) return SIM_INTERP_ERR_STATE; state->motion_mode = 0; return SIM_INTERP_OK; } + if (code_is(code, 1)) { if (++groups[0] > 1) return SIM_INTERP_ERR_STATE; state->motion_mode = 1; return SIM_INTERP_OK; } + if (code_is(code, 2) || code_is(code, 3)) { if (++groups[0] > 1) return SIM_INTERP_ERR_STATE; state->motion_mode = (int)code; return SIM_INTERP_OK; } + if (code_is(code, 17) || code_is(code, 18) || code_is(code, 19)) { if (++groups[1] > 1) return SIM_INTERP_ERR_STATE; state->plane = (int)code; return SIM_INTERP_OK; } + if (code_is(code, 20) || code_is(code, 21)) { if (++groups[2] > 1) return SIM_INTERP_ERR_STATE; state->units = (int)code; return SIM_INTERP_OK; } + if (code_is(code, 90) || code_is(code, 91)) { if (++groups[3] > 1) return SIM_INTERP_ERR_STATE; state->distance_mode = (int)code; return SIM_INTERP_OK; } + return SIM_INTERP_ERR_UNKNOWN_CODE; +} + +static int apply_m(sim_interpreter_state *state, double code, int *groups) { + if (code_is(code, 3) || code_is(code, 4) || code_is(code, 5)) { + if (++groups[4] > 1) return SIM_INTERP_ERR_STATE; + state->spindle_mode = (int)code; + return SIM_INTERP_OK; + } + if (code_is(code, 2) || code_is(code, 30)) { + if (++groups[5] > 1) return SIM_INTERP_ERR_STATE; + state->program_end = 1; + return SIM_INTERP_OK; + } + return SIM_INTERP_ERR_UNKNOWN_CODE; +} + +static uint64_t state_hash(const sim_interpreter_state *state) { + unsigned char bytes[sizeof(double) * 11 + sizeof(uint32_t) + sizeof(int) * 7]; + size_t offset = 0; + const double *values = &state->x; + size_t index; + for (index = 0; index < 11; ++index) { memcpy(bytes + offset, values + index, sizeof(double)); offset += sizeof(double); } + memcpy(bytes + offset, &state->line, sizeof(uint32_t)); offset += sizeof(uint32_t); + memcpy(bytes + offset, &state->units, sizeof(int)); offset += sizeof(int); + memcpy(bytes + offset, &state->distance_mode, sizeof(int)); offset += sizeof(int); + memcpy(bytes + offset, &state->plane, sizeof(int)); offset += sizeof(int); + memcpy(bytes + offset, &state->motion_mode, sizeof(int)); offset += sizeof(int); + memcpy(bytes + offset, &state->spindle_mode, sizeof(int)); offset += sizeof(int); + memcpy(bytes + offset, &state->program_end, sizeof(int)); offset += sizeof(int); + memcpy(bytes + offset, &state->status, sizeof(int)); offset += sizeof(int); + return fnv1a64(bytes, offset); +} + +static int make_canonical(sim_interpreter *interpreter) { + int written; + const sim_interpreter_state *s = &interpreter->state; + written = snprintf(interpreter->canonical, sizeof(interpreter->canonical), + "{\"a\":%.17g,\"b\":%.17g,\"c\":%.17g,\"distance_mode\":%d,\"feed\":%.17g,\"line\":%u,\"motion_mode\":%d,\"plane\":%d,\"program_end\":%d,\"speed\":%.17g,\"spindle_mode\":%d,\"status\":%d,\"units\":%d,\"u\":%.17g,\"v\":%.17g,\"w\":%.17g,\"x\":%.17g,\"y\":%.17g,\"z\":%.17g}", + s->a, s->b, s->c, s->distance_mode, s->feed, s->line, s->motion_mode, s->plane, s->program_end, + s->speed, s->spindle_mode, s->status, s->units, s->u, s->v, s->w, s->x, s->y, s->z); + if (written < 0 || (size_t)written >= sizeof(interpreter->canonical)) return SIM_INTERP_ERR_BUFFER; + interpreter->canonical_length = (uint32_t)written; + return SIM_INTERP_OK; +} + +int sim_interpreter_reset(sim_interpreter *interpreter) { + if (interpreter == 0) return SIM_INTERP_ERR_ARGUMENT; + memset(interpreter, 0, sizeof(*interpreter)); + interpreter->state.units = SIM_INTERP_UNITS_MM; + interpreter->state.distance_mode = SIM_INTERP_ABSOLUTE; + interpreter->state.plane = 17; + interpreter->state.motion_mode = 1; + interpreter->state.spindle_mode = 5; + interpreter->state.status = SIM_INTERP_OK; + return make_canonical(interpreter); +} + +int sim_interpreter_init(sim_interpreter *interpreter) { + return sim_interpreter_reset(interpreter); +} + +int sim_interpreter_execute(sim_interpreter *interpreter, const char *block, uint32_t length) { + sim_interpreter_state next; + const char *cursor; + const char *end; + int groups[6] = {0}; + int seen_axis[9] = {0}; + double axis_values[9] = {0}; + int seen_feed = 0; + int seen_speed = 0; + double feed_value = 0.0; + double speed_value = 0.0; + int seen_line = 0; + int result = SIM_INTERP_OK; + if (interpreter == 0 || block == 0 || length == 0) return SIM_INTERP_ERR_ARGUMENT; + if (!finite_state(&interpreter->state)) return SIM_INTERP_ERR_STATE; + if (interpreter->state.program_end) return SIM_INTERP_ERR_STATE; + next = interpreter->state; + cursor = block; + end = block + length; + while (cursor < end) { + char letter; + double value; + int index; + while (cursor < end && isspace((unsigned char)*cursor)) ++cursor; + if (cursor >= end) break; + if (*cursor == ';') break; + if (*cursor == '(') { + int closed = 0; + ++cursor; + while (cursor < end) { if (*cursor++ == ')') { closed = 1; break; } } + if (!closed) return SIM_INTERP_ERR_SYNTAX; + continue; + } + letter = (char)toupper((unsigned char)*cursor++); + if (letter == '%') continue; + if (letter < 'A' || letter > 'Z') return SIM_INTERP_ERR_SYNTAX; + result = parse_number(&cursor, end, &value); + if (result != SIM_INTERP_OK) return result; + switch (letter) { + case 'G': result = apply_g(&next, value, groups); break; + case 'M': result = apply_m(&next, value, groups); break; + case 'N': if (seen_line++) result = SIM_INTERP_ERR_STATE; else if (value < 0.0 || value > 4294967295.0 || floor(value) != value) result = SIM_INTERP_ERR_RANGE; else next.line = (uint32_t)value; break; + case 'F': if (seen_feed++) result = SIM_INTERP_ERR_STATE; else if (value < 0.0) result = SIM_INTERP_ERR_RANGE; else feed_value = value; break; + case 'S': if (seen_speed++) result = SIM_INTERP_ERR_STATE; else if (value < 0.0) result = SIM_INTERP_ERR_RANGE; else speed_value = value; break; + default: + index = axis_index(letter); + if (index < 0) result = SIM_INTERP_ERR_UNKNOWN_CODE; + else if (seen_axis[index]++) result = SIM_INTERP_ERR_STATE; + else if (!isfinite(value)) result = SIM_INTERP_ERR_NONFINITE; + if (result == SIM_INTERP_OK) axis_values[index] = value; + break; + } + if (result != SIM_INTERP_OK) return result; + } + /* Modal words apply to the whole block, independent of their textual order. */ + if (seen_feed) next.feed = feed_value * (next.units == SIM_INTERP_UNITS_INCH ? 25.4 : 1.0); + if (seen_speed) next.speed = speed_value; + { + size_t axis; + for (axis = 0; axis < 9; ++axis) if (seen_axis[axis]) { + double value = axis_values[axis]; + double *destination = axis_pointer(&next, (int)axis); + if (next.units == SIM_INTERP_UNITS_INCH && axis < 3) value *= 25.4; + if (next.distance_mode == SIM_INTERP_INCREMENTAL) *destination += value; + else *destination = value; + } + } + if (!finite_state(&next)) return SIM_INTERP_ERR_NONFINITE; + next.line = interpreter->state.line + 1; + next.status = SIM_INTERP_OK; + interpreter->state = next; + interpreter->block_hash = fnv1a64((const unsigned char *)block, length); + result = make_canonical(interpreter); + if (result != SIM_INTERP_OK) { interpreter->state.status = result; return result; } + return SIM_INTERP_OK; +} + +int sim_interpreter_read_state(const sim_interpreter *interpreter, sim_interpreter_state *state) { + if (interpreter == 0 || state == 0) return SIM_INTERP_ERR_ARGUMENT; + *state = interpreter->state; + return SIM_INTERP_OK; +} + +uint32_t sim_interpreter_canonical(const sim_interpreter *interpreter, char *output, uint32_t capacity) { + if (interpreter == 0) return 0; + if (output == 0 || capacity == 0) return interpreter->canonical_length + 1; + if (capacity <= interpreter->canonical_length) return interpreter->canonical_length + 1; + memcpy(output, interpreter->canonical, interpreter->canonical_length + 1); + return interpreter->canonical_length + 1; +} + +uint64_t sim_interpreter_state_hash(const sim_interpreter *interpreter) { + if (interpreter == 0) return 0; + return state_hash(&interpreter->state); +} + +uint64_t sim_interpreter_block_hash(const sim_interpreter *interpreter) { + return interpreter == 0 ? 0 : interpreter->block_hash; +} diff --git a/wasm-core/src/sim_kinematics.c b/wasm-core/src/sim_kinematics.c new file mode 100644 index 0000000..8a085cc --- /dev/null +++ b/wasm-core/src/sim_kinematics.c @@ -0,0 +1,1181 @@ +#include "sim_kinematics.h" + +#include +#include +#include +#include "posemath.h" + +#define DEG_TO_RAD 0.017453292519943295769236907684886 +#define RAD_TO_DEG 57.295779513082320876798154814105 + +static uint64_t fnv1a64(const unsigned char *bytes, size_t length) { + uint64_t hash = UINT64_C(1469598103934665603); + size_t index; + for (index = 0; index < length; ++index) { hash ^= bytes[index]; hash *= UINT64_C(1099511628211); } + return hash; +} + +static double hash_normalize(double value) { + return isfinite(value) ? nearbyint(value * 1000000000.0) / 1000000000.0 : value; +} + +static int finite_values(const double *values, size_t count) { + size_t index; + if (values == 0) return 0; + for (index = 0; index < count; ++index) if (!isfinite(values[index])) return 0; + return 1; +} + +int sim_kinematics_validate_pose(const sim_posemath_pose *pose) { + return pose != 0 && finite_values(&pose->tran.x, 9) ? SIM_KIN_OK : SIM_KIN_ERR_NONFINITE; +} + +static int axis_index(char letter) { + switch (letter) { + case 'X': return 0; case 'Y': return 1; case 'Z': return 2; + case 'A': return 3; case 'B': return 4; case 'C': return 5; + case 'U': return 6; case 'V': return 7; case 'W': return 8; + default: return -1; + } +} + +static int has_coordinate(const char *coordinates, char wanted) { + size_t index; + for (index = 0; coordinates[index] != '\0'; ++index) { + char value = coordinates[index]; + if (value >= 'a' && value <= 'z') value = (char)(value - 'a' + 'A'); + if (value == wanted) return 1; + } + return 0; +} + +static int effective_mode(const sim_kinematics_config *config) { + if (config->mode != SIM_KIN_MODE_DEFAULT) return config->mode; + return config->type == SIM_KIN_TRIVKINS ? SIM_KIN_MODE_IDENTITY : SIM_KIN_MODE_BOTH; +} + +static uint32_t kinematics_joint_count(const sim_kinematics_config *config) { + return config->kinematics_joint_count == 0 ? config->joint_count : config->kinematics_joint_count; +} + +static int known_type(int type) { + switch (type) { + case SIM_KIN_TRIVKINS: + case SIM_KIN_XYZAC_TRT: + case SIM_KIN_XYZBC_TRT: + case SIM_KIN_XYZBCW: + case SIM_KIN_COREXY: + case SIM_KIN_ROSE: + case SIM_KIN_MAXKINS: + case SIM_KIN_ROTATEKINS: + case SIM_KIN_5AXISKINS: + case SIM_KIN_SCARA: + case SIM_KIN_PUMA: + case SIM_KIN_SCORBOT: + case SIM_KIN_GENSER: + case SIM_KIN_LINEAR_DELTA: + case SIM_KIN_ROTARY_DELTA: + case SIM_KIN_TRIPOD: + case SIM_KIN_GENHEX: + case SIM_KIN_PENTAPOD: + return 1; + default: + return 0; + } +} + +static void initialize_info(sim_kinematics_result_info *info, uint64_t forward_flags, uint64_t inverse_flags) { + if (info == 0) return; + info->forward_flags = forward_flags; + info->inverse_flags = inverse_flags; + info->residual = 0.0; + info->iterations = 0; + info->branch_id = 0; +} + +static int config_axis(const sim_kinematics *kinematics, int axis) { + return kinematics->axis_joint[axis]; +} + +static int valid_config(const sim_kinematics_config *config) { + const char *coordinates; + size_t length; + size_t index; + uint32_t kinematics_count; + if (config == 0 || config->joint_count < 1 || config->joint_count > SIM_KIN_MAX_JOINTS) return SIM_KIN_ERR_CONFIGURATION; + kinematics_count = kinematics_joint_count(config); + if (kinematics_count < 1 || kinematics_count > config->joint_count) return SIM_KIN_ERR_CONFIGURATION; + if (config->extra_joint_count != 0 && config->extra_joint_count != config->joint_count - kinematics_count) return SIM_KIN_ERR_CONFIGURATION; + if (!known_type(config->type)) return SIM_KIN_ERR_UNKNOWN_TYPE; + if (config->mode < SIM_KIN_MODE_DEFAULT || config->mode > SIM_KIN_MODE_BOTH) return SIM_KIN_ERR_CONFIGURATION; + if (!finite_values(&config->x_rot_point, 19) || !finite_values(&config->delta_radius, 9)) return SIM_KIN_ERR_NONFINITE; + if (config->max_iterations > 100000u) return SIM_KIN_ERR_CONFIGURATION; + if (config->convergence_tolerance < 0.0 || !isfinite(config->convergence_tolerance)) return SIM_KIN_ERR_CONFIGURATION; + coordinates = config->coordinates[0] == '\0' ? "XYZABCUVW" : config->coordinates; + length = strlen(coordinates); + if (length == 0 || length > SIM_KIN_MAX_JOINTS || length > kinematics_count) return SIM_KIN_ERR_CONFIGURATION; + for (index = 0; index < length; ++index) { + int axis = axis_index((char)(coordinates[index] >= 'a' && coordinates[index] <= 'z' ? coordinates[index] - 'a' + 'A' : coordinates[index])); + if (axis < 0) return SIM_KIN_ERR_CONFIGURATION; + (void)axis; /* Duplicate axis letters are valid for gantry/extra-joint mappings. */ + } + if (config->type == SIM_KIN_XYZAC_TRT && (!has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z') || !has_coordinate(coordinates, 'A') || !has_coordinate(coordinates, 'C'))) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_XYZBC_TRT && (!has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z') || !has_coordinate(coordinates, 'B') || !has_coordinate(coordinates, 'C'))) return SIM_KIN_ERR_CONFIGURATION; + if ((config->type == SIM_KIN_XYZBCW || config->type == SIM_KIN_5AXISKINS) && (!has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z') || !has_coordinate(coordinates, 'B') || !has_coordinate(coordinates, 'C') || !has_coordinate(coordinates, 'W'))) return SIM_KIN_ERR_CONFIGURATION; + if ((config->type == SIM_KIN_COREXY || config->type == SIM_KIN_ROSE || + config->type == SIM_KIN_MAXKINS || config->type == SIM_KIN_ROTATEKINS) && + (!has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || + !has_coordinate(coordinates, 'Z'))) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_ROSE && kinematics_count != 3) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_SCARA && (kinematics_count != 6 || !has_coordinate(coordinates, 'C') || !has_coordinate(coordinates, 'A') || !has_coordinate(coordinates, 'B'))) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_PUMA && (kinematics_count != 6 || !has_coordinate(coordinates, 'A') || !has_coordinate(coordinates, 'B') || !has_coordinate(coordinates, 'C'))) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_SCORBOT && (kinematics_count != 5 || !has_coordinate(coordinates, 'A') || !has_coordinate(coordinates, 'B'))) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_GENSER && (kinematics_count != 6 || !has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z') || !has_coordinate(coordinates, 'A') || !has_coordinate(coordinates, 'B') || !has_coordinate(coordinates, 'C') || (config->dh_joint_count != 0 && config->dh_joint_count != 6))) return SIM_KIN_ERR_CONFIGURATION; + if (config->type == SIM_KIN_GENSER && (!finite_values(config->dh_a, 6) || !finite_values(config->dh_alpha, 6) || !finite_values(config->dh_d, 6))) return SIM_KIN_ERR_NONFINITE; + if (config->type == SIM_KIN_LINEAR_DELTA) { + if (kinematics_count < 3 || !has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z')) return SIM_KIN_ERR_CONFIGURATION; + /* A completely zero geometry means "use the LinuxCNC defaults" and + * is filled in by init. Partially specified or non-positive geometry + * is always rejected instead of allowing a divide-by-zero later. */ + if (!((config->delta_radius == 0.0) && (config->delta_rod_length == 0.0)) && + (config->delta_radius <= 0.0 || config->delta_rod_length <= 0.0)) return SIM_KIN_ERR_CONFIGURATION; + } + if (config->type == SIM_KIN_ROTARY_DELTA) { + if (kinematics_count < 3 || !has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z')) return SIM_KIN_ERR_CONFIGURATION; + if (!((config->rotary_platform_radius == 0.0) && (config->rotary_thigh_length == 0.0) && + (config->rotary_shin_length == 0.0) && (config->rotary_foot_radius == 0.0)) && + (config->rotary_platform_radius <= 0.0 || config->rotary_thigh_length <= 0.0 || + config->rotary_shin_length <= 0.0 || config->rotary_foot_radius <= 0.0)) return SIM_KIN_ERR_CONFIGURATION; + } + if (config->type == SIM_KIN_TRIPOD) { + if (kinematics_count < 3 || !has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z')) return SIM_KIN_ERR_CONFIGURATION; + if (!((config->tripod_bx == 0.0) && (config->tripod_cx == 0.0) && (config->tripod_cy == 0.0)) && + (fabs(config->tripod_bx) < 1e-12 || fabs(config->tripod_cy) < 1e-12)) return SIM_KIN_ERR_CONFIGURATION; + } + if (config->type == SIM_KIN_GENHEX) { + if (kinematics_count != SIM_KIN_GENHEX_STRUTS || + !has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || + !has_coordinate(coordinates, 'Z') || !has_coordinate(coordinates, 'A') || + !has_coordinate(coordinates, 'B') || !has_coordinate(coordinates, 'C')) return SIM_KIN_ERR_CONFIGURATION; + if (config->genhex_iteration_limit > 100000u) return SIM_KIN_ERR_CONFIGURATION; + if (config->genhex_convergence_tolerance < 0.0 || !isfinite(config->genhex_convergence_tolerance) || + config->genhex_max_error < 0.0 || !isfinite(config->genhex_max_error) || + !finite_values(config->genhex_initial_pose, 6)) return SIM_KIN_ERR_CONFIGURATION; + for (index = 0; index < SIM_KIN_GENHEX_STRUTS; ++index) { + if (!finite_values(config->genhex_base[index], 3) || !finite_values(config->genhex_platform[index], 3) || + !finite_values(config->genhex_base_axis[index], 3) || !finite_values(config->genhex_platform_axis[index], 3)) return SIM_KIN_ERR_NONFINITE; + } + } + if (config->type == SIM_KIN_PENTAPOD) { + if (kinematics_count != SIM_KIN_PENTA_STRUTS || !has_coordinate(coordinates, 'X') || !has_coordinate(coordinates, 'Y') || !has_coordinate(coordinates, 'Z') || !has_coordinate(coordinates, 'A') || !has_coordinate(coordinates, 'B')) return SIM_KIN_ERR_CONFIGURATION; + if (config->penta_iteration_limit > 100000u || config->penta_convergence_tolerance < 0.0 || !isfinite(config->penta_convergence_tolerance) || config->penta_max_error < 0.0 || !isfinite(config->penta_max_error) || !finite_values(config->penta_initial_pose, 5)) return SIM_KIN_ERR_CONFIGURATION; + for (index = 0; index < SIM_KIN_PENTA_STRUTS; ++index) if (!finite_values(config->penta_base[index], 3) || !isfinite(config->penta_effector_radius[index]) || !isfinite(config->penta_effector_z[index]) || ((config->penta_effector_radius[index] < 0.0) || (config->penta_effector_radius[index] == 0.0 && config->penta_effector_z[index] != 0.0))) return SIM_KIN_ERR_CONFIGURATION; + } + for (index = 0; index < kinematics_count; ++index) { + if (config->limit_enabled[index] && (!isfinite(config->joint_min[index]) || !isfinite(config->joint_max[index]) || config->joint_min[index] > config->joint_max[index])) return SIM_KIN_ERR_CONFIGURATION; + } + return SIM_KIN_OK; +} + +static int in_limits(const sim_kinematics *kinematics, const double *joints) { + uint32_t index; + for (index = 0; index < kinematics_joint_count(&kinematics->config); ++index) + if (kinematics->config.limit_enabled[index] && (joints[index] < kinematics->config.joint_min[index] || joints[index] > kinematics->config.joint_max[index])) return SIM_KIN_ERR_RANGE; + return SIM_KIN_OK; +} + +static void map_joints(sim_kinematics *kinematics) { + size_t index; + for (index = 0; index < SIM_KIN_MAX_JOINTS; ++index) kinematics->axis_joint[index] = -1; + for (index = 0; index < kinematics_joint_count(&kinematics->config); ++index) { + int axis = axis_index((char)(kinematics->config.coordinates[index] >= 'a' && kinematics->config.coordinates[index] <= 'z' ? kinematics->config.coordinates[index] - 'a' + 'A' : kinematics->config.coordinates[index])); + if (axis >= 0 && kinematics->axis_joint[axis] < 0) kinematics->axis_joint[axis] = (int)index; + } +} + +int sim_kinematics_init(sim_kinematics *kinematics, const sim_kinematics_config *config) { + int result; + int geometry_zero; + if (kinematics == 0 || config == 0) return SIM_KIN_ERR_ARGUMENT; + result = valid_config(config); + if (result != SIM_KIN_OK) return result; + memset(kinematics, 0, sizeof(*kinematics)); + kinematics->config = *config; + if (kinematics->config.coordinates[0] == '\0') strcpy(kinematics->config.coordinates, "XYZABCUVW"); + if (kinematics->config.kinematics_joint_count == 0) kinematics->config.kinematics_joint_count = kinematics->config.joint_count; + if (kinematics->config.extra_joint_count == 0) kinematics->config.extra_joint_count = kinematics->config.joint_count - kinematics->config.kinematics_joint_count; + geometry_zero = kinematics->config.scara_d1 == 0.0 && kinematics->config.scara_d2 == 0.0 && + kinematics->config.scara_d3 == 0.0 && kinematics->config.scara_d4 == 0.0 && + kinematics->config.scara_d5 == 0.0 && kinematics->config.scara_d6 == 0.0; + if (kinematics->config.type == SIM_KIN_SCARA && geometry_zero) { + kinematics->config.scara_d1 = 490.0; kinematics->config.scara_d2 = 340.0; + kinematics->config.scara_d3 = 50.0; kinematics->config.scara_d4 = 250.0; + kinematics->config.scara_d5 = 50.0; kinematics->config.scara_d6 = 50.0; + } + if (kinematics->config.type == SIM_KIN_PUMA && kinematics->config.puma_a2 == 0.0 && + kinematics->config.puma_a3 == 0.0 && kinematics->config.puma_d3 == 0.0 && + kinematics->config.puma_d4 == 0.0 && kinematics->config.puma_d6 == 0.0) { + kinematics->config.puma_a2 = 300.0; kinematics->config.puma_a3 = 50.0; + kinematics->config.puma_d3 = 70.0; kinematics->config.puma_d4 = 400.0; + kinematics->config.puma_d6 = 70.0; + } + if (kinematics->config.type == SIM_KIN_GENSER && kinematics->config.dh_joint_count == 0) kinematics->config.dh_joint_count = 6; + if (kinematics->config.type == SIM_KIN_LINEAR_DELTA && kinematics->config.delta_radius == 0.0 && kinematics->config.delta_rod_length == 0.0) { + kinematics->config.delta_radius = 130.25; kinematics->config.delta_rod_length = 269.0; + } + if (kinematics->config.type == SIM_KIN_ROTARY_DELTA && kinematics->config.rotary_platform_radius == 0.0 && kinematics->config.rotary_thigh_length == 0.0 && kinematics->config.rotary_shin_length == 0.0 && kinematics->config.rotary_foot_radius == 0.0) { + kinematics->config.rotary_platform_radius = 10.0; kinematics->config.rotary_thigh_length = 10.0; kinematics->config.rotary_shin_length = 14.0; kinematics->config.rotary_foot_radius = 6.0; + } + if (kinematics->config.type == SIM_KIN_TRIPOD && kinematics->config.tripod_bx == 0.0 && kinematics->config.tripod_cx == 0.0 && kinematics->config.tripod_cy == 0.0) { + kinematics->config.tripod_bx = 10.0; kinematics->config.tripod_cx = 5.0; kinematics->config.tripod_cy = 7.071; + } + if (kinematics->config.type == SIM_KIN_GENHEX) { + size_t index; + int all_zero = 1; + static const double base[SIM_KIN_GENHEX_STRUTS][3] = { + {-22.950, 13.250, 0.0}, {22.950, 13.250, 0.0}, {22.950, 13.250, 0.0}, + {0.0, -26.500, 0.0}, {0.0, -26.500, 0.0}, {-22.950, 13.250, 0.0} + }; + static const double platform[SIM_KIN_GENHEX_STRUTS][3] = { + {-1.000, 11.500, 0.0}, {1.000, 11.500, 0.0}, {10.459, -4.884, 0.0}, + {9.459, -6.616, 0.0}, {-9.459, -6.616, 0.0}, {-10.459, -4.884, 0.0} + }; + static const double base_axis[SIM_KIN_GENHEX_STRUTS][3] = { + {0.707107, 0.0, 0.707107}, {0.0, -0.707107, 0.707107}, {-0.707107, 0.0, 0.707107}, + {-0.707107, 0.0, 0.707107}, {0.0, 0.707107, 0.707107}, {0.707107, 0.0, 0.707107} + }; + static const double platform_axis[SIM_KIN_GENHEX_STRUTS][3] = { + {-1.0, 0.0, 0.0}, {0.866025, 0.5, 0.0}, {0.866025, 0.5, 0.0}, + {0.866025, -0.5, 0.0}, {0.866025, -0.5, 0.0}, {-1.0, 0.0, 0.0} + }; + for (index = 0; index < SIM_KIN_GENHEX_STRUTS; ++index) { + size_t axis; + for (axis = 0; axis < 3; ++axis) if (kinematics->config.genhex_base[index][axis] != 0.0 || kinematics->config.genhex_platform[index][axis] != 0.0) all_zero = 0; + } + if (all_zero) { + memcpy(kinematics->config.genhex_base, base, sizeof(base)); + memcpy(kinematics->config.genhex_platform, platform, sizeof(platform)); + memcpy(kinematics->config.genhex_base_axis, base_axis, sizeof(base_axis)); + memcpy(kinematics->config.genhex_platform_axis, platform_axis, sizeof(platform_axis)); + } + if (kinematics->config.genhex_iteration_limit == 0) kinematics->config.genhex_iteration_limit = 120; + if (kinematics->config.genhex_convergence_tolerance == 0.0) kinematics->config.genhex_convergence_tolerance = 1e-9; + if (kinematics->config.genhex_max_error == 0.0) kinematics->config.genhex_max_error = 500.0; + if (kinematics->config.genhex_initial_pose[2] == 0.0) kinematics->config.genhex_initial_pose[2] = 50.0; + } + if (kinematics->config.type == SIM_KIN_PENTAPOD) { + static const double base[SIM_KIN_PENTA_STRUTS][3] = {{-418.0, 500.0, -140.0}, {418.0, 500.0, -140.0}, {0.0, 500.0, -310.0}, {418.0, 500.0, 510.0}, {-418.0, 500.0, 510.0}}; + static const double radius[SIM_KIN_PENTA_STRUTS] = {80.30, 80.30, 80.30, 80.30, 80.30}; + static const double effector_z[SIM_KIN_PENTA_STRUTS] = {87.0, 114.5, 140.5, 232.5, 258.5}; + int all_zero = 1; + size_t index; + for (index = 0; index < SIM_KIN_PENTA_STRUTS; ++index) if (kinematics->config.penta_base[index][0] != 0.0 || kinematics->config.penta_base[index][1] != 0.0 || kinematics->config.penta_base[index][2] != 0.0) all_zero = 0; + if (all_zero) { memcpy(kinematics->config.penta_base, base, sizeof(base)); memcpy(kinematics->config.penta_effector_radius, radius, sizeof(radius)); memcpy(kinematics->config.penta_effector_z, effector_z, sizeof(effector_z)); } + if (kinematics->config.penta_iteration_limit == 0) kinematics->config.penta_iteration_limit = 120; + if (kinematics->config.penta_convergence_tolerance == 0.0) kinematics->config.penta_convergence_tolerance = 1e-9; + if (kinematics->config.penta_max_error == 0.0) kinematics->config.penta_max_error = 1000.0; + if (kinematics->config.penta_initial_pose[1] == 0.0) kinematics->config.penta_initial_pose[1] = 500.0; + if (kinematics->config.penta_initial_pose[2] == 0.0) kinematics->config.penta_initial_pose[2] = 300.0; + } + map_joints(kinematics); + kinematics->configured = 1; + return SIM_KIN_OK; +} + +static void zero_pose(sim_posemath_pose *pose) { memset(pose, 0, sizeof(*pose)); } + +static double joint(const sim_kinematics *k, const double *joints, int axis) { + int index = config_axis(k, axis); + return index < 0 ? 0.0 : joints[index]; +} + +static void set_optional_axes(const sim_kinematics *k, const double *joints, sim_posemath_pose *pose) { + pose->a = joint(k, joints, 3); pose->b = joint(k, joints, 4); pose->c = joint(k, joints, 5); + pose->u = joint(k, joints, 6); pose->v = joint(k, joints, 7); pose->w = joint(k, joints, 8); +} + +static void set_joint(double *joints, const sim_kinematics *k, int axis, double value); + +static int scara_forward(const sim_kinematics *k, const double *joints, sim_posemath_pose *pose) { + double a0 = joint(k, joints, 0) * DEG_TO_RAD; + double a1 = joint(k, joints, 1) * DEG_TO_RAD + a0; + double a3 = joint(k, joints, 5) * DEG_TO_RAD + a1; + pose->tran.x = k->config.scara_d2 * cos(a0) + k->config.scara_d4 * cos(a1) + k->config.scara_d6 * cos(a3); + pose->tran.y = k->config.scara_d2 * sin(a0) + k->config.scara_d4 * sin(a1) + k->config.scara_d6 * sin(a3); + pose->tran.z = k->config.scara_d1 + k->config.scara_d3 - joint(k, joints, 2) - k->config.scara_d5; + pose->c = a3 * RAD_TO_DEG; + pose->a = joint(k, joints, 3); pose->b = joint(k, joints, 4); + return SIM_KIN_OK; +} + +static int scara_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, double *joints, uint64_t flags, uint32_t *branch) { + double a3 = pose->c * DEG_TO_RAD; + double xt = pose->tran.x - k->config.scara_d6 * cos(a3); + double yt = pose->tran.y - k->config.scara_d6 * sin(a3); + double rsq = xt * xt + yt * yt; + double cc = (rsq - k->config.scara_d2 * k->config.scara_d2 - k->config.scara_d4 * k->config.scara_d4) / + (2.0 * k->config.scara_d2 * k->config.scara_d4); + double q1; + double q0; + if (cc < -1.0 - 1e-12 || cc > 1.0 + 1e-12) return SIM_KIN_ERR_RANGE; + if (cc < -1.0) cc = -1.0; + if (cc > 1.0) cc = 1.0; + q1 = acos(cc); + if (flags & UINT64_C(1)) q1 = -q1; + q0 = atan2(yt, xt) - atan2(k->config.scara_d4 * sin(q1), k->config.scara_d2 + k->config.scara_d4 * cos(q1)); + set_joint(joints, k, 0, q0 * RAD_TO_DEG); + set_joint(joints, k, 1, q1 * RAD_TO_DEG); + set_joint(joints, k, 2, k->config.scara_d1 + k->config.scara_d3 - k->config.scara_d5 - pose->tran.z); + set_joint(joints, k, 5, pose->c - (q0 + q1) * RAD_TO_DEG); + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); + if (branch != 0) *branch = (q1 < 0.0) ? 1U : 0U; + return SIM_KIN_OK; +} + +static int scorbot_forward(const sim_kinematics *k, const double *joints, sim_posemath_pose *pose) { + double j0 = joint(k, joints, 0) * DEG_TO_RAD; + double j1 = joint(k, joints, 1) * DEG_TO_RAD; + double j2 = joint(k, joints, 2) * DEG_TO_RAD; + double radius = 16.0 + 221.0 * cos(j1) + 221.0 * cos(j2); + pose->tran.x = radius * cos(j0); + pose->tran.y = radius * sin(j0); + pose->tran.z = 140.0 + 221.0 * sin(j1) + 221.0 * sin(j2); + pose->a = joint(k, joints, 3); pose->b = joint(k, joints, 4); + return SIM_KIN_OK; +} + +static int scorbot_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, double *joints) { + double r = hypot(pose->tran.x, pose->tran.y) - 16.0; + double z = pose->tran.z - 140.0; + double distance = hypot(r, z); + double angle; + double j1; + if (distance < 1e-12 || distance > 442.0 + 1e-9) return SIM_KIN_ERR_RANGE; + angle = acos(r / distance) * (z < 0.0 ? -1.0 : 1.0); + j1 = angle + acos(distance / 442.0); + set_joint(joints, k, 0, atan2(pose->tran.y, pose->tran.x) * RAD_TO_DEG); + set_joint(joints, k, 1, j1 * RAD_TO_DEG); + set_joint(joints, k, 2, -asin((221.0 * sin(j1) - z) / 221.0) * RAD_TO_DEG); + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); + return SIM_KIN_OK; +} + +static int puma_forward(const sim_kinematics *k, const double *joint_values, sim_posemath_pose *pose, uint32_t *branch) { + double q0 = joint(k, joint_values, 0) * DEG_TO_RAD; + double q1 = joint(k, joint_values, 1) * DEG_TO_RAD; + double q2 = joint(k, joint_values, 2) * DEG_TO_RAD; + double q3 = joint(k, joint_values, 3) * DEG_TO_RAD; + double q4 = joint(k, joint_values, 4) * DEG_TO_RAD; + double q5 = joint(k, joint_values, 5) * DEG_TO_RAD; + double s1 = sin(q0), s2 = sin(q1), s3 = sin(q2), s4 = sin(q3), s5 = sin(q4), s6 = sin(q5); + double c1 = cos(q0), c2 = cos(q1), c3 = cos(q2), c4 = cos(q3), c5 = cos(q4), c6 = cos(q5); + double s23 = c2 * s3 + s2 * c3; + double c23 = c2 * c3 - s2 * s3; + double t1, t2, t3, t4, t5; + PmHomogeneous hom = {0}; + PmRpy rpy = {0}; + t1 = c4 * c5 * c6 - s4 * s6; t2 = s23 * s5 * c6; t3 = s4 * c5 * c6 + c4 * s6; t4 = c23 * t1 - t2; t5 = c23 * s5 * c6; + hom.rot.x.x = c1 * t4 + s1 * t3; hom.rot.x.y = s1 * t4 - c1 * t3; hom.rot.x.z = -s23 * t1 - t5; + t1 = -c4 * c5 * s6 - s4 * c6; t2 = s23 * s5 * s6; t3 = c4 * c6 - s4 * c5 * s6; t4 = c23 * t1 + t2; t5 = c23 * s5 * s6; + hom.rot.y.x = c1 * t4 + s1 * t3; hom.rot.y.y = s1 * t4 - c1 * t3; hom.rot.y.z = -s23 * t1 + t5; + t1 = c23 * c4 * s5 + s23 * c5; + hom.rot.z.x = -c1 * t1 - s1 * s4 * s5; hom.rot.z.y = -s1 * t1 + c1 * s4 * s5; hom.rot.z.z = s23 * c4 * s5 - c23 * c5; + t1 = k->config.puma_a2 * c2 + k->config.puma_a3 * c23 - k->config.puma_d4 * s23; + hom.tran.x = c1 * t1 - k->config.puma_d3 * s1; + hom.tran.y = s1 * t1 + k->config.puma_d3 * c1; + hom.tran.z = -k->config.puma_a3 * s23 - k->config.puma_a2 * s2 - k->config.puma_d4 * c23; + hom.tran.x += hom.rot.z.x * k->config.puma_d6; + hom.tran.y += hom.rot.z.y * k->config.puma_d6; + hom.tran.z += hom.rot.z.z * k->config.puma_d6; + if (pmMatRpyConvert(&hom.rot, &rpy) != 0) return SIM_KIN_ERR_SINGULAR; + pose->tran.x = hom.tran.x; pose->tran.y = hom.tran.y; pose->tran.z = hom.tran.z; + pose->a = rpy.r * RAD_TO_DEG; pose->b = rpy.p * RAD_TO_DEG; pose->c = rpy.y * RAD_TO_DEG; + if (branch != 0) *branch = (fabs(s5) < 1e-9) ? 8U : 0U; + return SIM_KIN_OK; +} + +static int puma_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, double *joints, uint64_t flags, uint32_t *branch) { + PmRotationMatrix rot = {0}; + PmRpy rpy = {pose->a * DEG_TO_RAD, pose->b * DEG_TO_RAD, pose->c * DEG_TO_RAD}; + double px, py, pz, sum_sq, kterm, th1, th2, th3, th23, th4, th5, th6; + double s1, c1, s3, c3, s23, c23, s4, c4, s5, c5, s6, c6, t1, t2, t3; + if (pmRpyMatConvert(&rpy, &rot) != 0) return SIM_KIN_ERR_SINGULAR; + px = pose->tran.x - k->config.puma_d6 * rot.z.x; + py = pose->tran.y - k->config.puma_d6 * rot.z.y; + pz = pose->tran.z - k->config.puma_d6 * rot.z.z; + sum_sq = px * px + py * py - k->config.puma_d3 * k->config.puma_d3; + if (sum_sq < -1e-9) return SIM_KIN_ERR_RANGE; + if (sum_sq < 0.0) sum_sq = 0.0; + th1 = atan2(py, px) - atan2(k->config.puma_d3, (flags & 1U) ? -sqrt(sum_sq) : sqrt(sum_sq)); + s1 = sin(th1); c1 = cos(th1); + kterm = (sum_sq + pz * pz - k->config.puma_a2 * k->config.puma_a2 - k->config.puma_a3 * k->config.puma_a3 - k->config.puma_d4 * k->config.puma_d4) / (2.0 * k->config.puma_a2); + if (kterm * kterm > k->config.puma_a3 * k->config.puma_a3 + k->config.puma_d4 * k->config.puma_d4 + 1e-9) return SIM_KIN_ERR_RANGE; + if (kterm * kterm > k->config.puma_a3 * k->config.puma_a3 + k->config.puma_d4 * k->config.puma_d4) kterm = copysign(sqrt(k->config.puma_a3 * k->config.puma_a3 + k->config.puma_d4 * k->config.puma_d4), kterm); + th3 = atan2(k->config.puma_a3, k->config.puma_d4) - atan2(kterm, (flags & 2U) ? -sqrt(fmax(0.0, k->config.puma_a3 * k->config.puma_a3 + k->config.puma_d4 * k->config.puma_d4 - kterm * kterm)) : sqrt(fmax(0.0, k->config.puma_a3 * k->config.puma_a3 + k->config.puma_d4 * k->config.puma_d4 - kterm * kterm))); + s3 = sin(th3); c3 = cos(th3); + t1 = (-k->config.puma_a3 - k->config.puma_a2 * c3) * pz + (c1 * px + s1 * py) * (k->config.puma_a2 * s3 - k->config.puma_d4); + t2 = (k->config.puma_a2 * s3 - k->config.puma_d4) * pz + (k->config.puma_a3 + k->config.puma_a2 * c3) * (c1 * px + s1 * py); + t3 = pz * pz + (c1 * px + s1 * py) * (c1 * px + s1 * py); + if (t3 < 1e-18) return SIM_KIN_ERR_SINGULAR; + th23 = atan2(t1, t2); th2 = th23 - th3; s23 = t1 / t3; c23 = t2 / t3; + t1 = -rot.z.x * s1 + rot.z.y * c1; + t2 = -rot.z.x * c1 * c23 - rot.z.y * s1 * c23 + rot.z.z * s23; + if (fabs(t1) < 1e-9 && fabs(t2) < 1e-9) return SIM_KIN_ERR_SINGULAR; + th4 = atan2(t1, t2); s4 = sin(th4); c4 = cos(th4); + s5 = rot.z.z * (s23 * c4) - rot.z.x * (c1 * c23 * c4 + s1 * s4) - rot.z.y * (s1 * c23 * c4 - c1 * s4); + c5 = -rot.z.x * (c1 * s23) - rot.z.y * (s1 * s23) - rot.z.z * c23; th5 = atan2(s5, c5); + s6 = rot.x.z * (s23 * s4) - rot.x.x * (c1 * c23 * s4 - s1 * c4) - rot.x.y * (s1 * c23 * s4 + c1 * c4); + c6 = rot.x.x * ((c1 * c23 * c4 + s1 * s4) * c5 - c1 * s23 * s5) + rot.x.y * ((s1 * c23 * c4 - c1 * s4) * c5 - s1 * s23 * s5) - rot.x.z * (s23 * c4 * c5 + c23 * s5); + th6 = atan2(s6, c6); + if (flags & 4U) { th4 += PM_PI; th5 = -th5; th6 += PM_PI; } + set_joint(joints, k, 0, th1 * RAD_TO_DEG); set_joint(joints, k, 1, th2 * RAD_TO_DEG); set_joint(joints, k, 2, th3 * RAD_TO_DEG); + set_joint(joints, k, 3, th4 * RAD_TO_DEG); set_joint(joints, k, 4, th5 * RAD_TO_DEG); set_joint(joints, k, 5, th6 * RAD_TO_DEG); + if (branch != 0) *branch = (uint32_t)(flags & 7U); + return SIM_KIN_OK; +} + +static void mat4_identity(double m[4][4]) { + int row, col; + for (row = 0; row < 4; ++row) for (col = 0; col < 4; ++col) m[row][col] = row == col ? 1.0 : 0.0; +} + +static void mat4_multiply(const double left[4][4], const double right[4][4], double out[4][4]) { + double value[4][4]; + int row, col, inner; + for (row = 0; row < 4; ++row) for (col = 0; col < 4; ++col) { + value[row][col] = 0.0; + for (inner = 0; inner < 4; ++inner) value[row][col] += left[row][inner] * right[inner][col]; + } + memcpy(out, value, sizeof(value)); +} + +static int genser_forward(const sim_kinematics *k, const double *joints, sim_posemath_pose *pose) { + double total[4][4]; + uint32_t index; + PmRotationMatrix rotation; + PmRpy rpy; + mat4_identity(total); + for (index = 0; index < 6; ++index) { + double theta = joints[index] * DEG_TO_RAD; + double alpha = k->config.dh_alpha[index]; + double ct = cos(theta), st = sin(theta), ca = cos(alpha), sa = sin(alpha); + double link[4][4] = { + {ct, -st, 0.0, k->config.dh_a[index]}, + {st * ca, ct * ca, -sa, -sa * k->config.dh_d[index]}, + {st * sa, ct * sa, ca, ca * k->config.dh_d[index]}, + {0.0, 0.0, 0.0, 1.0}, + }; + mat4_multiply(total, link, total); + } + rotation.x.x = total[0][0]; rotation.y.x = total[0][1]; rotation.z.x = total[0][2]; + rotation.x.y = total[1][0]; rotation.y.y = total[1][1]; rotation.z.y = total[1][2]; + rotation.x.z = total[2][0]; rotation.y.z = total[2][1]; rotation.z.z = total[2][2]; + if (pmMatRpyConvert(&rotation, &rpy) != 0) return SIM_KIN_ERR_SINGULAR; + pose->tran.x = total[0][3]; pose->tran.y = total[1][3]; pose->tran.z = total[2][3]; + pose->a = rpy.r * RAD_TO_DEG; pose->b = rpy.p * RAD_TO_DEG; pose->c = rpy.y * RAD_TO_DEG; + return SIM_KIN_OK; +} + +static double wrap_degrees(double value) { + value = fmod(value + 180.0, 360.0); + if (value < 0.0) value += 360.0; + return value - 180.0; +} + +static int solve_linear6(double matrix[6][6], double rhs[6], double result[6]) { + int pivot, row, col; + for (pivot = 0; pivot < 6; ++pivot) { + int best = pivot; + double best_abs = fabs(matrix[pivot][pivot]); + for (row = pivot + 1; row < 6; ++row) if (fabs(matrix[row][pivot]) > best_abs) { best = row; best_abs = fabs(matrix[row][pivot]); } + if (best_abs < 1e-14) return SIM_KIN_ERR_SINGULAR; + if (best != pivot) { + for (col = pivot; col < 6; ++col) { double tmp = matrix[pivot][col]; matrix[pivot][col] = matrix[best][col]; matrix[best][col] = tmp; } + { double tmp = rhs[pivot]; rhs[pivot] = rhs[best]; rhs[best] = tmp; } + } + for (row = pivot + 1; row < 6; ++row) { + double factor = matrix[row][pivot] / matrix[pivot][pivot]; + for (col = pivot; col < 6; ++col) matrix[row][col] -= factor * matrix[pivot][col]; + rhs[row] -= factor * rhs[pivot]; + } + } + for (row = 5; row >= 0; --row) { + double value = rhs[row]; + for (col = row + 1; col < 6; ++col) value -= matrix[row][col] * result[col]; + result[row] = value / matrix[row][row]; + } + return SIM_KIN_OK; +} + +static int genser_inverse(const sim_kinematics *k, const sim_posemath_pose *target, double *joints, uint32_t max_iterations, double tolerance, sim_kinematics_result_info *info) { + uint32_t iteration; + double current[SIM_KIN_MAX_JOINTS] = {0}; + double residual = 0.0; + if (max_iterations == 0) max_iterations = 100; + if (tolerance == 0.0) tolerance = 1e-9; + for (iteration = 0; iteration < max_iterations; ++iteration) { + sim_posemath_pose estimate; + double error[6]; + double jacobian[6][6]; + double normal[6][6] = {{0}}; + double rhs[6] = {0}; + double delta[6] = {0}; + int column, row, inner; + if (genser_forward(k, current, &estimate) != SIM_KIN_OK) return SIM_KIN_ERR_SINGULAR; + error[0] = target->tran.x - estimate.tran.x; error[1] = target->tran.y - estimate.tran.y; error[2] = target->tran.z - estimate.tran.z; + error[3] = wrap_degrees(target->a - estimate.a); error[4] = wrap_degrees(target->b - estimate.b); error[5] = wrap_degrees(target->c - estimate.c); + residual = 0.0; for (row = 0; row < 6; ++row) residual += error[row] * error[row]; residual = sqrt(residual); + if (residual <= tolerance) { + memcpy(joints, current, sizeof(double) * 6); + if (info != 0) { info->iterations = iteration; info->residual = residual; info->branch_id = 0; } + return SIM_KIN_OK; + } + for (column = 0; column < 6; ++column) { + double perturbed[SIM_KIN_MAX_JOINTS]; + sim_posemath_pose next; + memcpy(perturbed, current, sizeof(perturbed)); perturbed[column] += 1e-4; + if (genser_forward(k, perturbed, &next) != SIM_KIN_OK) return SIM_KIN_ERR_SINGULAR; + jacobian[0][column] = (next.tran.x - estimate.tran.x) / 1e-4; jacobian[1][column] = (next.tran.y - estimate.tran.y) / 1e-4; jacobian[2][column] = (next.tran.z - estimate.tran.z) / 1e-4; + jacobian[3][column] = wrap_degrees(next.a - estimate.a) / 1e-4; jacobian[4][column] = wrap_degrees(next.b - estimate.b) / 1e-4; jacobian[5][column] = wrap_degrees(next.c - estimate.c) / 1e-4; + } + for (row = 0; row < 6; ++row) for (column = 0; column < 6; ++column) { + for (inner = 0; inner < 6; ++inner) normal[row][column] += jacobian[inner][row] * jacobian[inner][column]; + normal[row][column] += row == column ? 1e-6 : 0.0; + for (inner = 0; inner < 6; ++inner) if (column == row) rhs[row] += jacobian[inner][row] * error[inner]; + } + if (solve_linear6(normal, rhs, delta) != SIM_KIN_OK) return SIM_KIN_ERR_SINGULAR; + for (column = 0; column < 6; ++column) current[column] += delta[column]; + } + if (info != 0) { info->iterations = max_iterations; info->residual = residual; info->branch_id = 0; } + return SIM_KIN_ERR_SINGULAR; +} + +static int linear_delta_forward(const sim_kinematics *k, const double *joints, uint64_t flags, + sim_posemath_pose *pose, uint32_t *branch) { + double R = k->config.delta_radius, L = k->config.delta_rod_length; + double Ay = R, Bx = -sqrt(3.0) * 0.5 * R, By = -0.5 * R, Cx = -Bx, Cy = By; + double q1 = joint(k, joints, 0), q2 = joint(k, joints, 1), q3 = joint(k, joints, 2); + double den = (By - Ay) * Cx - (Cy - Ay) * Bx; + double w1 = Ay * Ay + q1 * q1, w2 = Bx * Bx + By * By + q2 * q2, w3 = Cx * Cx + Cy * Cy + q3 * q3; + double a1 = (q2 - q1) * (Cy - Ay) - (q3 - q1) * (By - Ay); + double b1 = -((w2 - w1) * (Cy - Ay) - (w3 - w1) * (By - Ay)) / 2.0; + double a2 = -(q2 - q1) * Cx + (q3 - q1) * Bx; + double b2 = ((w2 - w1) * Cx - (w3 - w1) * Bx) / 2.0; + double aa = a1 * a1 + a2 * a2 + den * den; + double bb = 2.0 * (a1 * b1 + a2 * (b2 - Ay * den) - q1 * den * den); + double cc = (b2 - Ay * den) * (b2 - Ay * den) + b1 * b1 + den * den * (q1 * q1 - L * L); + double discr = bb * bb - 4.0 * aa * cc; + double z; + if (fabs(den) < 1e-18 || fabs(aa) < 1e-18) return SIM_KIN_ERR_SINGULAR; + if (discr < -1e-12) return SIM_KIN_ERR_RANGE; + if (discr < 0.0) discr = 0.0; + z = (-bb + ((flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? sqrt(discr) : -sqrt(discr))) / (2.0 * aa); + pose->tran.z = z; pose->tran.x = (a1 * z + b1) / den; pose->tran.y = (a2 * z + b2) / den; + set_optional_axes(k, joints, pose); + if (branch != 0) *branch = (flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? 1U : 0U; + return SIM_KIN_OK; +} + +static int linear_delta_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, uint64_t flags, + double *joints, uint32_t *branch) { + double R = k->config.delta_radius, L = k->config.delta_rod_length; + double Ax = 0.0, Ay = R, Bx = -sqrt(3.0) * 0.5 * R, By = -0.5 * R, Cx = -Bx, Cy = By; + double x = pose->tran.x, y = pose->tran.y, z = pose->tran.z; + double rad[3] = {L * L - (Ax - x) * (Ax - x) - (Ay - y) * (Ay - y), L * L - (Bx - x) * (Bx - x) - (By - y) * (By - y), L * L - (Cx - x) * (Cx - x) - (Cy - y) * (Cy - y)}; + int index; + for (index = 0; index < 3; ++index) if (rad[index] < -1e-12) return SIM_KIN_ERR_RANGE; + for (index = 0; index < 3; ++index) { + double root = sqrt(fmax(0.0, rad[index])); + set_joint(joints, k, index, z + ((flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? -root : root)); + } + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); set_joint(joints, k, 6, pose->u); set_joint(joints, k, 7, pose->v); set_joint(joints, k, 8, pose->w); + if (branch != 0) *branch = (flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? 1U : 0U; + return SIM_KIN_OK; +} + +static int rotary_delta_forward(const sim_kinematics *k, const double *joints, uint64_t flags, + sim_posemath_pose *pose, uint32_t *branch) { + double pfr = k->config.rotary_platform_radius, tl = k->config.rotary_thigh_length, sl = k->config.rotary_shin_length, fr = k->config.rotary_foot_radius; + double j0 = joint(k, joints, 0) * DEG_TO_RAD, j1 = joint(k, joints, 1) * DEG_TO_RAD, j2 = joint(k, joints, 2) * DEG_TO_RAD; + double y1 = -(pfr - fr + tl * cos(j0)), z1 = -tl * sin(j0); + double y2 = (pfr - fr + tl * cos(j1)) * 0.5, x2 = y2 * sqrt(3.0), z2 = -tl * sin(j1); + double y3 = (pfr - fr + tl * cos(j2)) * 0.5, x3 = -y3 * sqrt(3.0), z3 = -tl * sin(j2); + double den = x3 * (y2 - y1) - x2 * (y3 - y1); + double w1 = y1 * y1 + z1 * z1, w2 = x2 * x2 + y2 * y2 + z2 * z2, w3 = x3 * x3 + y3 * y3 + z3 * z3; + double a1 = (z2 - z1) * (y3 - y1) - (z3 - z1) * (y2 - y1), b1 = -((w2 - w1) * (y3 - y1) - (w3 - w1) * (y2 - y1)) / 2.0; + double a2 = -(z2 - z1) * x3 + (z3 - z1) * x2, b2 = ((w2 - w1) * x3 - (w3 - w1) * x2) / 2.0; + double aa = a1 * a1 + a2 * a2 + den * den, bb = 2.0 * (a1 * b1 + a2 * (b2 - y1 * den) - z1 * den * den), cc = (b2 - y1 * den) * (b2 - y1 * den) + b1 * b1 + den * den * (z1 * z1 - sl * sl); + double discr = bb * bb - 4.0 * aa * cc; + if (fabs(den) < 1e-18 || fabs(aa) < 1e-18) return SIM_KIN_ERR_SINGULAR; + if (discr < -1e-12) return SIM_KIN_ERR_RANGE; + if (discr < 0.0) discr = 0.0; + pose->tran.z = (-bb + ((flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? sqrt(discr) : -sqrt(discr))) / (2.0 * aa); + pose->tran.x = (a1 * pose->tran.z + b1) / den; pose->tran.y = (a2 * pose->tran.z + b2) / den; + set_optional_axes(k, joints, pose); + if (branch != 0) *branch = (flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? 1U : 0U; + return SIM_KIN_OK; +} + +static int rotary_delta_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, uint64_t flags, + double *joints, uint32_t *branch) { + double pfr = k->config.rotary_platform_radius, tl = k->config.rotary_thigh_length, sl = k->config.rotary_shin_length, fr = k->config.rotary_foot_radius; + double x = pose->tran.x, y = pose->tran.y, z = pose->tran.z; + double a, b, d, knee_y, knee_z, xr, yr; + if (fabs(z) < 1e-12) return SIM_KIN_ERR_SINGULAR; + a = 0.5 * (x * x + (y - fr) * (y - fr) + z * z + tl * tl - sl * sl - pfr * pfr) / z; + b = (fr - pfr - y) / z; + d = tl * tl * (b * b + 1.0) - (a - b * pfr) * (a - b * pfr); + if (d < 0.0) return SIM_KIN_ERR_RANGE; + knee_y = (pfr + a * b + ((flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? -sqrt(d) : sqrt(d))) / (b * b + 1.0); knee_z = b * knee_y - a; + set_joint(joints, k, 0, atan2(knee_z, knee_y - pfr) * RAD_TO_DEG); + xr = x; yr = y; { double c = cos(-2.0 * 3.14159265358979323846 / 3.0), s = sin(-2.0 * 3.14159265358979323846 / 3.0); double tx = xr * c - yr * s; yr = xr * s + yr * c; xr = tx; } + a = 0.5 * (xr * xr + (yr - fr) * (yr - fr) + z * z + tl * tl - sl * sl - pfr * pfr) / z; b = (fr - pfr - yr) / z; d = tl * tl * (b * b + 1.0) - (a - b * pfr) * (a - b * pfr); if (d < 0.0) return SIM_KIN_ERR_RANGE; knee_y = (pfr + a * b + ((flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? -sqrt(d) : sqrt(d))) / (b * b + 1.0); knee_z = b * knee_y - a; set_joint(joints, k, 1, atan2(knee_z, knee_y - pfr) * RAD_TO_DEG); + xr = x; yr = y; { double c = cos(2.0 * 3.14159265358979323846 / 3.0), s = sin(2.0 * 3.14159265358979323846 / 3.0); double tx = xr * c - yr * s; yr = xr * s + yr * c; xr = tx; } + a = 0.5 * (xr * xr + (yr - fr) * (yr - fr) + z * z + tl * tl - sl * sl - pfr * pfr) / z; b = (fr - pfr - yr) / z; d = tl * tl * (b * b + 1.0) - (a - b * pfr) * (a - b * pfr); if (d < 0.0) return SIM_KIN_ERR_RANGE; knee_y = (pfr + a * b + ((flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? -sqrt(d) : sqrt(d))) / (b * b + 1.0); knee_z = b * knee_y - a; set_joint(joints, k, 2, atan2(knee_z, knee_y - pfr) * RAD_TO_DEG); + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); set_joint(joints, k, 6, pose->u); set_joint(joints, k, 7, pose->v); set_joint(joints, k, 8, pose->w); + if (flags & SIM_KIN_DELTA_ALTERNATE_ROOT) { + /* The alternate knee branch is the reflected root of each leg. */ + set_joint(joints, k, 0, atan2(knee_z, knee_y - pfr) * RAD_TO_DEG); + /* Recompute the rotated legs through the common helper below; the + * default branch remains byte-for-byte compatible with LinuxCNC. */ + { + double xr2 = x, yr2 = y; + double c2 = cos(-2.0 * 3.14159265358979323846 / 3.0), s2 = sin(-2.0 * 3.14159265358979323846 / 3.0); + double tx2 = xr2 * c2 - yr2 * s2; yr2 = xr2 * s2 + yr2 * c2; xr2 = tx2; + a = 0.5 * (xr2 * xr2 + (yr2 - fr) * (yr2 - fr) + z * z + tl * tl - sl * sl - pfr * pfr) / z; + b = (fr - pfr - yr2) / z; d = tl * tl * (b * b + 1.0) - (a - b * pfr) * (a - b * pfr); + if (d < 0.0) return SIM_KIN_ERR_RANGE; + knee_y = (pfr + a * b - sqrt(d)) / (b * b + 1.0); knee_z = b * knee_y - a; + set_joint(joints, k, 1, atan2(knee_z, knee_y - pfr) * RAD_TO_DEG); + xr2 = x; yr2 = y; c2 = cos(2.0 * 3.14159265358979323846 / 3.0); s2 = sin(2.0 * 3.14159265358979323846 / 3.0); + tx2 = xr2 * c2 - yr2 * s2; yr2 = xr2 * s2 + yr2 * c2; xr2 = tx2; + a = 0.5 * (xr2 * xr2 + (yr2 - fr) * (yr2 - fr) + z * z + tl * tl - sl * sl - pfr * pfr) / z; + b = (fr - pfr - yr2) / z; d = tl * tl * (b * b + 1.0) - (a - b * pfr) * (a - b * pfr); + if (d < 0.0) return SIM_KIN_ERR_RANGE; + knee_y = (pfr + a * b - sqrt(d)) / (b * b + 1.0); knee_z = b * knee_y - a; + set_joint(joints, k, 2, atan2(knee_z, knee_y - pfr) * RAD_TO_DEG); + } + } + if (branch != 0) *branch = (flags & SIM_KIN_DELTA_ALTERNATE_ROOT) ? 1U : 0U; + return SIM_KIN_OK; +} + +/* Point-vertex tripod kinematics from LinuxCNC's tripodkins.c. The three + * strut lengths determine X/Y uniquely; the quadratic Z root is selected by + * the forward flag (above-base by default, below-base when bit zero is set). */ +static int tripod_forward(const sim_kinematics *k, const double *joints, uint64_t flags, + sim_posemath_pose *pose, uint32_t *branch) { + double bx = k->config.tripod_bx, cx = k->config.tripod_cx, cy = k->config.tripod_cy; + double ad = joint(k, joints, 0), bd = joint(k, joints, 1), cd = joint(k, joints, 2); + double p = ad * ad; + double q = bd * bd - bx * bx; + double r = cd * cd - cx * cx - cy * cy; + double s = -2.0 * bx, t = -2.0 * cx, u = -2.0 * cy; + double x, y, z2; + if (fabs(s) < 1e-12 || fabs(u) < 1e-12) return SIM_KIN_ERR_CONFIGURATION; + x = (q - p) / s; + y = (r - q - (t - s) * x) / u; + z2 = p - x * x - y * y; + if (z2 < -1e-12) return SIM_KIN_ERR_RANGE; + if (z2 <= 1e-12) return SIM_KIN_ERR_SINGULAR; + pose->tran.x = x; + pose->tran.y = y; + pose->tran.z = (flags & SIM_KIN_TRIPOD_BELOW_ROOT) ? -sqrt(z2) : sqrt(z2); + pose->a = 0.0; pose->b = 0.0; pose->c = 0.0; + set_optional_axes(k, joints, pose); + if (branch != 0) *branch = (flags & SIM_KIN_TRIPOD_BELOW_ROOT) ? 1U : 0U; + return SIM_KIN_OK; +} + +static int tripod_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, + double *joints, uint32_t *branch) { + double bx = k->config.tripod_bx, cx = k->config.tripod_cx, cy = k->config.tripod_cy; + double x = pose->tran.x, y = pose->tran.y, z = pose->tran.z; + set_joint(joints, k, 0, sqrt(x * x + y * y + z * z)); + set_joint(joints, k, 1, sqrt((x - bx) * (x - bx) + y * y + z * z)); + set_joint(joints, k, 2, sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy) + z * z)); + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); + set_joint(joints, k, 6, pose->u); set_joint(joints, k, 7, pose->v); set_joint(joints, k, 8, pose->w); + if (branch != 0) *branch = z < 0.0 ? 1U : 0U; + return SIM_KIN_OK; +} + +/* Generalized six-strut Stewart platform. Inverse kinematics is the + * closed-form leg-length calculation; forward kinematics follows LinuxCNC's + * Newton solve from a deterministic pose seed. The rotational Jacobian uses + * the platform attachment vector crossed with the unit strut vector, which + * is the small-angle derivative used by genhexkins.c. */ +static int genhex_lengths(const sim_kinematics *k, const double q[6], double lengths[SIM_KIN_GENHEX_STRUTS], double jacobian[SIM_KIN_GENHEX_STRUTS][6]) { + PmRpy rpy; + PmRotationMatrix rotation; + size_t index; + rpy.r = q[3]; rpy.p = q[4]; rpy.y = q[5]; + if (pmRpyMatConvert(&rpy, &rotation) != 0) return SIM_KIN_ERR_SINGULAR; + for (index = 0; index < SIM_KIN_GENHEX_STRUTS; ++index) { + PmCartesian platform = {k->config.genhex_platform[index][0], k->config.genhex_platform[index][1], k->config.genhex_platform[index][2]}; + PmCartesian base = {k->config.genhex_base[index][0], k->config.genhex_base[index][1], k->config.genhex_base[index][2]}; + PmCartesian rotated; + PmCartesian world; + PmCartesian vector; + PmCartesian unit; + PmCartesian cross; + double length; + pmMatCartMult(&rotation, &platform, &rotated); + world.x = q[0] + rotated.x; world.y = q[1] + rotated.y; world.z = q[2] + rotated.z; + vector.x = world.x - base.x; vector.y = world.y - base.y; vector.z = world.z - base.z; + if (pmCartUnit(&vector, &unit) != 0 || pmCartMag(&vector, &length) != 0 || !isfinite(length)) return SIM_KIN_ERR_SINGULAR; + lengths[index] = length; + if (jacobian != 0) { + pmCartCartCross(&rotated, &unit, &cross); + jacobian[index][0] = unit.x; jacobian[index][1] = unit.y; jacobian[index][2] = unit.z; + jacobian[index][3] = cross.x; jacobian[index][4] = cross.y; jacobian[index][5] = cross.z; + } + } + return SIM_KIN_OK; +} + +static int genhex_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, double *joints) { + double q[6] = {pose->tran.x, pose->tran.y, pose->tran.z, pose->a * DEG_TO_RAD, pose->b * DEG_TO_RAD, pose->c * DEG_TO_RAD}; + double lengths[SIM_KIN_GENHEX_STRUTS]; + size_t index; + int result = genhex_lengths(k, q, lengths, 0); + if (result != SIM_KIN_OK) return result; + for (index = 0; index < SIM_KIN_GENHEX_STRUTS; ++index) joints[index] = lengths[index]; + return SIM_KIN_OK; +} + +static int genhex_forward(const sim_kinematics *k, const double *joints, uint64_t flags, + sim_posemath_pose *pose, sim_kinematics_result_info *info) { + double q[6]; + double lengths[SIM_KIN_GENHEX_STRUTS]; + double jacobian[SIM_KIN_GENHEX_STRUTS][6]; + double residual = 0.0; + uint32_t iteration; + int result; + for (size_t index = 0; index < 6; ++index) q[index] = k->config.genhex_initial_pose[index]; + if (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) q[2] = -q[2]; + for (iteration = 1; iteration <= k->config.genhex_iteration_limit; ++iteration) { + double matrix[6][6]; + double rhs[6]; + double delta[6] = {0}; + int row; + result = genhex_lengths(k, q, lengths, jacobian); + if (result != SIM_KIN_OK) return result; + residual = 0.0; + for (row = 0; row < (int)SIM_KIN_GENHEX_STRUTS; ++row) { + double difference = lengths[row] - joints[row]; + rhs[row] = difference; + residual += fabs(difference); + for (int column = 0; column < 6; ++column) matrix[row][column] = jacobian[row][column]; + } + if (residual <= k->config.genhex_convergence_tolerance) { + pose->tran.x = q[0]; pose->tran.y = q[1]; pose->tran.z = q[2]; + pose->a = q[3] * RAD_TO_DEG; pose->b = q[4] * RAD_TO_DEG; pose->c = q[5] * RAD_TO_DEG; + pose->u = 0.0; pose->v = 0.0; pose->w = 0.0; + if (info != 0) { info->iterations = iteration; info->residual = residual; info->branch_id = (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) ? 1U : 0U; } + return SIM_KIN_OK; + } + if (residual > k->config.genhex_max_error) { + if (info != 0) { info->iterations = iteration; info->residual = residual; info->branch_id = (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) ? 1U : 0U; } + return SIM_KIN_ERR_RANGE; + } + result = solve_linear6(matrix, rhs, delta); + if (result != SIM_KIN_OK) { + if (info != 0) { info->iterations = iteration; info->residual = residual; info->branch_id = (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) ? 1U : 0U; } + return result; + } + for (int column = 0; column < 6; ++column) q[column] -= delta[column]; + } + if (info != 0) { info->iterations = k->config.genhex_iteration_limit; info->residual = residual; info->branch_id = (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) ? 1U : 0U; } + return SIM_KIN_ERR_RANGE; +} + +static int solve_linear5(double matrix[5][5], double rhs[5], double result[5]) { + for (int pivot = 0; pivot < 5; ++pivot) { + int best = pivot; + double magnitude = fabs(matrix[pivot][pivot]); + for (int row = pivot + 1; row < 5; ++row) if (fabs(matrix[row][pivot]) > magnitude) { best = row; magnitude = fabs(matrix[row][pivot]); } + if (magnitude < 1e-14) return SIM_KIN_ERR_SINGULAR; + if (best != pivot) { for (int col = pivot; col < 5; ++col) { double tmp = matrix[pivot][col]; matrix[pivot][col] = matrix[best][col]; matrix[best][col] = tmp; } { double tmp = rhs[pivot]; rhs[pivot] = rhs[best]; rhs[best] = tmp; } } + for (int row = pivot + 1; row < 5; ++row) { double factor = matrix[row][pivot] / matrix[pivot][pivot]; for (int col = pivot; col < 5; ++col) matrix[row][col] -= factor * matrix[pivot][col]; rhs[row] -= factor * rhs[pivot]; } + } + for (int row = 4; row >= 0; --row) { double value = rhs[row]; for (int col = row + 1; col < 5; ++col) value -= matrix[row][col] * result[col]; result[row] = value / matrix[row][row]; } + return SIM_KIN_OK; +} + +static int pentapod_lengths(const sim_kinematics *k, const double q[5], double lengths[SIM_KIN_PENTA_STRUTS]) { + PmRpy rpy = {q[3], q[4], 0.0}; + PmRotationMatrix rotation, inverse; + if (pmRpyMatConvert(&rpy, &rotation) != 0 || pmMatInv(&rotation, &inverse) != 0) return SIM_KIN_ERR_SINGULAR; + for (size_t index = 0; index < SIM_KIN_PENTA_STRUTS; ++index) { + PmCartesian base = {k->config.penta_base[index][0] - q[0], k->config.penta_base[index][1] - q[1], k->config.penta_base[index][2] - q[2]}; + PmCartesian local; + double radial; + pmMatCartMult(&inverse, &base, &local); + radial = hypot(local.x, local.y); + lengths[index] = hypot(radial - k->config.penta_effector_radius[index], local.z - (k->config.penta_effector_z[index] + k->config.penta_tool_offset)); + if (!isfinite(lengths[index])) return SIM_KIN_ERR_NONFINITE; + } + return SIM_KIN_OK; +} + +static int pentapod_inverse(const sim_kinematics *k, const sim_posemath_pose *pose, double *joints) { + double q[5] = {pose->tran.x, pose->tran.y, pose->tran.z, pose->a * DEG_TO_RAD, pose->b * DEG_TO_RAD}; + double lengths[SIM_KIN_PENTA_STRUTS]; + int result = pentapod_lengths(k, q, lengths); + if (result != SIM_KIN_OK) return result; + for (size_t index = 0; index < SIM_KIN_PENTA_STRUTS; ++index) joints[index] = lengths[index]; + return SIM_KIN_OK; +} + +static int pentapod_forward(const sim_kinematics *k, const double *joints, uint64_t flags, sim_posemath_pose *pose, sim_kinematics_result_info *info) { + double q[5]; + double lengths[SIM_KIN_PENTA_STRUTS]; + double residual = 0.0; + uint32_t iteration; + for (size_t index = 0; index < 5; ++index) q[index] = k->config.penta_initial_pose[index]; + if (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) q[2] = -q[2]; + for (iteration = 1; iteration <= k->config.penta_iteration_limit; ++iteration) { + double jacobian[5][5]; + double rhs[5]; + double delta[5] = {0}; + int result = pentapod_lengths(k, q, lengths); + if (result != SIM_KIN_OK) return result; + residual = 0.0; + for (int row = 0; row < 5; ++row) { + double perturbed[5]; + rhs[row] = lengths[row] - joints[row]; residual += fabs(rhs[row]); + for (int column = 0; column < 5; ++column) { + double next[SIM_KIN_PENTA_STRUTS]; + memcpy(perturbed, q, sizeof(perturbed)); perturbed[column] += 1e-4; + if (pentapod_lengths(k, perturbed, next) != SIM_KIN_OK) return SIM_KIN_ERR_SINGULAR; + jacobian[row][column] = (next[row] - lengths[row]) * 1e4; + } + } + if (residual <= k->config.penta_convergence_tolerance) { + pose->tran.x = q[0]; pose->tran.y = q[1]; pose->tran.z = q[2]; pose->a = q[3] * RAD_TO_DEG; pose->b = q[4] * RAD_TO_DEG; pose->c = 0.0; pose->u = pose->v = pose->w = 0.0; + if (info != 0) { info->iterations = iteration; info->residual = residual; info->branch_id = (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) ? 1U : 0U; } + return SIM_KIN_OK; + } + if (residual > k->config.penta_max_error) return SIM_KIN_ERR_RANGE; + if (solve_linear5(jacobian, rhs, delta) != SIM_KIN_OK) return SIM_KIN_ERR_SINGULAR; + for (int column = 0; column < 5; ++column) q[column] -= delta[column]; + } + if (info != 0) { info->iterations = k->config.penta_iteration_limit; info->residual = residual; info->branch_id = (flags & SIM_KIN_GENHEX_ALTERNATE_SEED) ? 1U : 0U; } + return SIM_KIN_ERR_RANGE; +} + +int sim_kinematics_forward_ex(const sim_kinematics *k, const double *joints, uint32_t joint_count, + uint64_t inverse_flags, sim_posemath_pose *pose, + sim_kinematics_result_info *info) { + double a, b, c, x, y, z; + initialize_info(info, 0, inverse_flags); + if (k == 0 || joints == 0 || pose == 0) return SIM_KIN_ERR_ARGUMENT; + if (!k->configured || joint_count != kinematics_joint_count(&k->config)) return SIM_KIN_ERR_CONFIGURATION; + if (effective_mode(&k->config) == SIM_KIN_MODE_INVERSE_ONLY) return SIM_KIN_ERR_UNSUPPORTED; + if (!finite_values(joints, joint_count)) return SIM_KIN_ERR_NONFINITE; + if (in_limits(k, joints) != SIM_KIN_OK) return SIM_KIN_ERR_RANGE; + zero_pose(pose); + x = joint(k, joints, 0); y = joint(k, joints, 1); z = joint(k, joints, 2); + if (k->config.type == SIM_KIN_TRIVKINS) { pose->tran.x = x; pose->tran.y = y; pose->tran.z = z; set_optional_axes(k, joints, pose); return SIM_KIN_OK; } + if (k->config.type == SIM_KIN_SCARA) return scara_forward(k, joints, pose); + if (k->config.type == SIM_KIN_SCORBOT) return scorbot_forward(k, joints, pose); + if (k->config.type == SIM_KIN_PUMA) { + uint32_t branch = 0; + int result = puma_forward(k, joints, pose, &branch); + if (info != 0) info->branch_id = branch; + return result; + } + if (k->config.type == SIM_KIN_GENSER) return genser_forward(k, joints, pose); + if (k->config.type == SIM_KIN_LINEAR_DELTA) { + uint32_t branch = 0; + int result = linear_delta_forward(k, joints, inverse_flags, pose, &branch); + if (info != 0) { info->branch_id = branch; info->iterations = 0; info->residual = 0.0; } + return result; + } + if (k->config.type == SIM_KIN_ROTARY_DELTA) { + uint32_t branch = 0; + int result = rotary_delta_forward(k, joints, inverse_flags, pose, &branch); + if (info != 0) { info->branch_id = branch; info->iterations = 0; info->residual = 0.0; } + return result; + } + if (k->config.type == SIM_KIN_TRIPOD) { + uint32_t branch = 0; + int result = tripod_forward(k, joints, inverse_flags, pose, &branch); + if (info != 0) { info->branch_id = branch; info->iterations = 0; info->residual = 0.0; } + return result; + } + if (k->config.type == SIM_KIN_GENHEX) { + return genhex_forward(k, joints, inverse_flags, pose, info); + } + if (k->config.type == SIM_KIN_PENTAPOD) { + return pentapod_forward(k, joints, inverse_flags, pose, info); + } + if (k->config.type == SIM_KIN_COREXY) { + pose->tran.x = 0.5 * (x + y); + pose->tran.y = 0.5 * (x - y); + pose->tran.z = z; + set_optional_axes(k, joints, pose); + return SIM_KIN_OK; + } + if (k->config.type == SIM_KIN_ROSE) { + double theta = z * DEG_TO_RAD; + pose->tran.x = x * cos(theta); + pose->tran.y = x * sin(theta); + pose->tran.z = y; + return sim_kinematics_validate_pose(pose); + } + c = joint(k, joints, 5) * DEG_TO_RAD; + if (k->config.type == SIM_KIN_XYZAC_TRT) { + double dy = k->config.y_offset; + double dz = k->config.z_offset + k->config.tool_offset; + a = joint(k, joints, 3) * DEG_TO_RAD; + pose->tran.x = cos(c) * (x - k->config.x_rot_point) + sin(c) * cos(a) * (y - dy - k->config.y_rot_point) + sin(c) * sin(a) * (z - dz - k->config.z_rot_point) + sin(c) * dy + k->config.x_rot_point; + pose->tran.y = -sin(c) * (x - k->config.x_rot_point) + cos(c) * cos(a) * (y - dy - k->config.y_rot_point) + cos(c) * sin(a) * (z - dz - k->config.z_rot_point) + cos(c) * dy + k->config.y_rot_point; + pose->tran.z = -sin(a) * (y - dy - k->config.y_rot_point) + cos(a) * (z - dz - k->config.z_rot_point) + dz + k->config.z_rot_point; + } else if (k->config.type == SIM_KIN_XYZBC_TRT) { + double dx = k->config.x_offset; + double dz = k->config.z_offset + k->config.tool_offset; + b = joint(k, joints, 4) * DEG_TO_RAD; + pose->tran.x = cos(c) * cos(b) * (x - dx - k->config.x_rot_point) + sin(c) * (y - k->config.y_rot_point) - cos(c) * sin(b) * (z - dz - k->config.z_rot_point) + cos(c) * dx + k->config.x_rot_point; + pose->tran.y = -sin(c) * cos(b) * (x - dx - k->config.x_rot_point) + cos(c) * (y - k->config.y_rot_point) + sin(c) * sin(b) * (z - dz - k->config.z_rot_point) - sin(c) * dx + k->config.y_rot_point; + pose->tran.z = sin(b) * (x - dx - k->config.x_rot_point) + cos(b) * (z - dz - k->config.z_rot_point) + dz + k->config.z_rot_point; + } else if (k->config.type == SIM_KIN_XYZBCW || k->config.type == SIM_KIN_5AXISKINS) { + double radius = k->config.pivot_length + joint(k, joints, 8); + double theta = c; + double phi = (180.0 - joint(k, joints, 4)) * DEG_TO_RAD; + double rx = radius * sin(phi) * cos(theta); + double ry = radius * sin(phi) * sin(theta); + double rz = radius * cos(phi); + pose->tran.x = x + rx; pose->tran.y = y + ry; pose->tran.z = z + k->config.pivot_length + rz; + } else if (k->config.type == SIM_KIN_MAXKINS) { + double pivot_radius = k->config.pivot_length + joint(k, joints, 8); + double zb; + double xb; + double xyr; + double xytheta; + double zv; + double xv; + b = joint(k, joints, 4) * DEG_TO_RAD; + zb = pivot_radius * cos(b); + xb = pivot_radius * sin(b); + xyr = hypot(x, y); + xytheta = atan2(y, x) + c; + zv = joint(k, joints, 6) * sin(b); + xv = joint(k, joints, 6) * cos(b); + pose->tran.x = xyr * cos(xytheta) + xb - xv; + pose->tran.y = xyr * sin(xytheta) - joint(k, joints, 7); + pose->tran.z = z - zb + zv + k->config.pivot_length; + } else if (k->config.type == SIM_KIN_ROTATEKINS) { + pose->tran.x = x * cos(-c) - y * sin(-c); + pose->tran.y = x * sin(-c) + y * cos(-c); + pose->tran.z = z; + } else return SIM_KIN_ERR_UNKNOWN_TYPE; + set_optional_axes(k, joints, pose); + return sim_kinematics_validate_pose(pose); +} + +int sim_kinematics_forward(const sim_kinematics *k, const double *joints, uint32_t joint_count, sim_posemath_pose *pose) { + return sim_kinematics_forward_ex(k, joints, joint_count, 0, pose, 0); +} + +static void set_joint(double *joints, const sim_kinematics *k, int axis, double value) { + int index = config_axis(k, axis); + if (index >= 0) joints[index] = value; +} + +static void fill_duplicate_joints(const sim_kinematics *k, double *joints) { + uint32_t index; + for (index = 0; index < kinematics_joint_count(&k->config); ++index) { + int axis = axis_index((char)(k->config.coordinates[index] >= 'a' && k->config.coordinates[index] <= 'z' ? k->config.coordinates[index] - 'a' + 'A' : k->config.coordinates[index])); + if (axis >= 0) joints[index] = joints[config_axis(k, axis)]; + } +} + +int sim_kinematics_inverse_ex(sim_kinematics *k, const sim_posemath_pose *pose, uint32_t joint_count, + uint64_t forward_flags, double *joints, + sim_kinematics_result_info *info) { + double a, b, c; + initialize_info(info, forward_flags, 0); + if (k == 0 || pose == 0 || joints == 0) return SIM_KIN_ERR_ARGUMENT; + if (!k->configured || joint_count != kinematics_joint_count(&k->config)) return SIM_KIN_ERR_CONFIGURATION; + if (effective_mode(&k->config) == SIM_KIN_MODE_FORWARD_ONLY) return SIM_KIN_ERR_UNSUPPORTED; + if (sim_kinematics_validate_pose(pose) != SIM_KIN_OK) return SIM_KIN_ERR_NONFINITE; + memset(joints, 0, sizeof(double) * joint_count); + if (k->config.type == SIM_KIN_TRIVKINS) { + set_joint(joints, k, 0, pose->tran.x); set_joint(joints, k, 1, pose->tran.y); set_joint(joints, k, 2, pose->tran.z); + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); set_joint(joints, k, 6, pose->u); set_joint(joints, k, 7, pose->v); set_joint(joints, k, 8, pose->w); + } else if (k->config.type == SIM_KIN_SCARA) { + uint32_t branch = 0; + int result = scara_inverse(k, pose, joints, forward_flags, &branch); + if (info != 0) info->branch_id = branch; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_SCORBOT) { + int result = scorbot_inverse(k, pose, joints); + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_PUMA) { + uint32_t branch = 0; + int result = puma_inverse(k, pose, joints, forward_flags, &branch); + if (info != 0) info->branch_id = branch; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_GENSER) { + return genser_inverse(k, pose, joints, k->config.max_iterations, k->config.convergence_tolerance, info); + } else if (k->config.type == SIM_KIN_LINEAR_DELTA) { + uint32_t branch = 0; + int result = linear_delta_inverse(k, pose, forward_flags, joints, &branch); + if (info != 0) { info->branch_id = branch; info->iterations = 0; info->residual = 0.0; } + if (result == SIM_KIN_OK) k->branch_id = branch; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_ROTARY_DELTA) { + uint32_t branch = 0; + int result = rotary_delta_inverse(k, pose, forward_flags, joints, &branch); + if (info != 0) { info->branch_id = branch; info->iterations = 0; info->residual = 0.0; } + if (result == SIM_KIN_OK) k->branch_id = branch; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_TRIPOD) { + uint32_t branch = 0; + int result = tripod_inverse(k, pose, joints, &branch); + if (info != 0) { info->forward_flags = branch; info->branch_id = branch; info->iterations = 0; info->residual = 0.0; } + if (result == SIM_KIN_OK) k->branch_id = branch; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_GENHEX) { + int result = genhex_inverse(k, pose, joints); + if (info != 0) { info->forward_flags = pose->tran.z < 0.0 ? SIM_KIN_GENHEX_ALTERNATE_SEED : 0; info->branch_id = pose->tran.z < 0.0 ? 1U : 0U; info->iterations = 0; info->residual = 0.0; } + if (result == SIM_KIN_OK) k->branch_id = pose->tran.z < 0.0 ? 1U : 0U; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_PENTAPOD) { + int result = pentapod_inverse(k, pose, joints); + if (info != 0) { info->forward_flags = pose->tran.z < 0.0 ? SIM_KIN_GENHEX_ALTERNATE_SEED : 0; info->branch_id = pose->tran.z < 0.0 ? 1U : 0U; info->iterations = 0; info->residual = 0.0; } + if (result == SIM_KIN_OK) k->branch_id = pose->tran.z < 0.0 ? 1U : 0U; + return result == SIM_KIN_OK ? in_limits(k, joints) : result; + } else if (k->config.type == SIM_KIN_COREXY) { + set_joint(joints, k, 0, pose->tran.x + pose->tran.y); + set_joint(joints, k, 1, pose->tran.x - pose->tran.y); + set_joint(joints, k, 2, pose->tran.z); + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 4, pose->b); + set_joint(joints, k, 5, pose->c); set_joint(joints, k, 6, pose->u); + set_joint(joints, k, 7, pose->v); set_joint(joints, k, 8, pose->w); + } else if (k->config.type == SIM_KIN_ROSE) { + uint32_t quadrant; + double theta; + double bigtheta; + if (pose->tran.x >= 0.0 && pose->tran.y >= 0.0) quadrant = 1; + else if (pose->tran.x < 0.0 && pose->tran.y >= 0.0) quadrant = 2; + else if (pose->tran.x < 0.0 && pose->tran.y < 0.0) quadrant = 3; + else quadrant = 4; + if (k->previous_quadrant == 2 && quadrant == 3) k->revolution_count += 1; + if (k->previous_quadrant == 3 && quadrant == 2) k->revolution_count -= 1; + theta = atan2(pose->tran.y, pose->tran.x); + bigtheta = theta + 2.0 * 3.14159265358979323846264338327950288 * k->revolution_count; + set_joint(joints, k, 0, hypot(pose->tran.x, pose->tran.y)); + set_joint(joints, k, 1, pose->tran.z); + set_joint(joints, k, 2, bigtheta * RAD_TO_DEG); + k->previous_quadrant = quadrant; + k->branch_id = (uint32_t)k->revolution_count; + if (info != 0) info->branch_id = k->branch_id; + } else if (k->config.type == SIM_KIN_XYZAC_TRT) { + double dy = k->config.y_offset; + double dz = k->config.z_offset + k->config.tool_offset; + a = pose->a * DEG_TO_RAD; c = pose->c * DEG_TO_RAD; + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 5, pose->c); + set_joint(joints, k, 0, cos(c) * (pose->tran.x - k->config.x_rot_point) - sin(c) * (pose->tran.y - k->config.y_rot_point) + k->config.x_rot_point); + set_joint(joints, k, 1, sin(c) * cos(a) * (pose->tran.x - k->config.x_rot_point) + cos(c) * cos(a) * (pose->tran.y - k->config.y_rot_point) - sin(a) * (pose->tran.z - k->config.z_rot_point) - cos(a) * dy + sin(a) * dz + dy + k->config.y_rot_point); + set_joint(joints, k, 2, sin(c) * sin(a) * (pose->tran.x - k->config.x_rot_point) + cos(c) * sin(a) * (pose->tran.y - k->config.y_rot_point) + cos(a) * (pose->tran.z - k->config.z_rot_point) - sin(a) * dy - cos(a) * dz + dz + k->config.z_rot_point); + } else if (k->config.type == SIM_KIN_XYZBC_TRT) { + double dx = k->config.x_offset; + double dz = k->config.z_offset + k->config.tool_offset; + b = pose->b * DEG_TO_RAD; c = pose->c * DEG_TO_RAD; + if (fabs(cos(b)) < 1e-12) return SIM_KIN_ERR_SINGULAR; + set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); + set_joint(joints, k, 0, cos(c) * cos(b) * (pose->tran.x - k->config.x_rot_point) - sin(c) * cos(b) * (pose->tran.y - k->config.y_rot_point) + sin(b) * (pose->tran.z - k->config.z_rot_point) - cos(b) * dx - sin(b) * dz + dx + k->config.x_rot_point); + set_joint(joints, k, 1, sin(c) * (pose->tran.x - k->config.x_rot_point) + cos(c) * (pose->tran.y - k->config.y_rot_point) + k->config.y_rot_point); + set_joint(joints, k, 2, -cos(c) * sin(b) * (pose->tran.x - k->config.x_rot_point) + sin(c) * sin(b) * (pose->tran.y - k->config.y_rot_point) + cos(b) * (pose->tran.z - k->config.z_rot_point) + sin(b) * dx - cos(b) * dz + dz + k->config.z_rot_point); + } else if (k->config.type == SIM_KIN_XYZBCW || k->config.type == SIM_KIN_5AXISKINS) { + double radius = k->config.pivot_length + pose->w; + double phi = (180.0 - pose->b) * DEG_TO_RAD; + double theta = pose->c * DEG_TO_RAD; + set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); set_joint(joints, k, 8, pose->w); + set_joint(joints, k, 0, pose->tran.x - radius * sin(phi) * cos(theta)); + set_joint(joints, k, 1, pose->tran.y - radius * sin(phi) * sin(theta)); + set_joint(joints, k, 2, pose->tran.z - k->config.pivot_length - radius * cos(phi)); + } else if (k->config.type == SIM_KIN_MAXKINS) { + double pivot_radius = k->config.pivot_length + pose->w; + double zb; + double xb; + double xyr; + double xytheta; + double zv; + double xv; + b = pose->b * DEG_TO_RAD; + c = pose->c * DEG_TO_RAD; + zb = pivot_radius * cos(b); + xb = pivot_radius * sin(b); + xyr = hypot(pose->tran.x, pose->tran.y); + xytheta = atan2(pose->tran.y, pose->tran.x) - c; + zv = pose->u * sin(b); + xv = pose->u * cos(b); + set_joint(joints, k, 0, xyr * cos(xytheta) - xb + xv); + set_joint(joints, k, 1, xyr * sin(xytheta) + pose->v); + set_joint(joints, k, 2, pose->tran.z + zb + zv - k->config.pivot_length); + set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); + set_joint(joints, k, 8, pose->w); + } else if (k->config.type == SIM_KIN_ROTATEKINS) { + c = pose->c * DEG_TO_RAD; + set_joint(joints, k, 0, pose->tran.x * cos(c) - pose->tran.y * sin(c)); + set_joint(joints, k, 1, pose->tran.x * sin(c) + pose->tran.y * cos(c)); + set_joint(joints, k, 2, pose->tran.z); + set_joint(joints, k, 4, pose->b); set_joint(joints, k, 5, pose->c); + set_joint(joints, k, 8, pose->w); + } else return SIM_KIN_ERR_UNKNOWN_TYPE; + set_joint(joints, k, 3, pose->a); set_joint(joints, k, 6, pose->u); set_joint(joints, k, 7, pose->v); + fill_duplicate_joints(k, joints); + return in_limits(k, joints); +} + +int sim_kinematics_inverse(sim_kinematics *k, const sim_posemath_pose *pose, double *joints, uint32_t joint_count) { + return sim_kinematics_inverse_ex(k, pose, joint_count, 0, joints, 0); +} + +int sim_kinematics_home(const sim_kinematics *k, double *joints, uint32_t joint_count, sim_posemath_pose *pose) { + if (k == 0 || joints == 0 || pose == 0) return SIM_KIN_ERR_ARGUMENT; + if (!k->configured || joint_count != kinematics_joint_count(&k->config)) return SIM_KIN_ERR_CONFIGURATION; + memset(joints, 0, sizeof(double) * joint_count); + if (k->config.type == SIM_KIN_XYZBCW || k->config.type == SIM_KIN_5AXISKINS) joints[config_axis(k, 8)] = 0.0; + if (k->config.type == SIM_KIN_TRIPOD) { + double z = 1.0; + joints[config_axis(k, 0)] = z; + joints[config_axis(k, 1)] = hypot(k->config.tripod_bx, z); + joints[config_axis(k, 2)] = hypot(hypot(k->config.tripod_cx, k->config.tripod_cy), z); + } + if (k->config.type == SIM_KIN_GENHEX) { + sim_posemath_pose seed = {0}; + seed.tran.z = k->config.genhex_initial_pose[2]; + if (sim_kinematics_inverse((sim_kinematics *)k, &seed, joints, joint_count) != SIM_KIN_OK) return SIM_KIN_ERR_RANGE; + } + if (k->config.type == SIM_KIN_PENTAPOD) { + sim_posemath_pose seed = {0}; + seed.tran.x = k->config.penta_initial_pose[0]; seed.tran.y = k->config.penta_initial_pose[1]; seed.tran.z = k->config.penta_initial_pose[2]; seed.a = k->config.penta_initial_pose[3] * RAD_TO_DEG; seed.b = k->config.penta_initial_pose[4] * RAD_TO_DEG; + if (sim_kinematics_inverse((sim_kinematics *)k, &seed, joints, joint_count) != SIM_KIN_OK) return SIM_KIN_ERR_RANGE; + } + return sim_kinematics_forward(k, joints, joint_count, pose); +} + +uint64_t sim_kinematics_state_hash(const sim_kinematics *k, const double *joints, uint32_t joint_count, const sim_posemath_pose *pose) { + unsigned char bytes[sizeof(sim_kinematics_config) + sizeof(double) * SIM_KIN_MAX_JOINTS + sizeof(sim_posemath_pose) + sizeof(int32_t) + sizeof(uint32_t) * 2]; + double normalized_joints[SIM_KIN_MAX_JOINTS] = {0}; + sim_posemath_pose normalized_pose; + size_t offset = 0; + if (k == 0 || joints == 0 || pose == 0 || joint_count > SIM_KIN_MAX_JOINTS) return 0; + for (size_t index = 0; index < joint_count; ++index) normalized_joints[index] = hash_normalize(joints[index]); + normalized_pose = *pose; + normalized_pose.tran.x = hash_normalize(normalized_pose.tran.x); normalized_pose.tran.y = hash_normalize(normalized_pose.tran.y); normalized_pose.tran.z = hash_normalize(normalized_pose.tran.z); + normalized_pose.a = hash_normalize(normalized_pose.a); normalized_pose.b = hash_normalize(normalized_pose.b); normalized_pose.c = hash_normalize(normalized_pose.c); + normalized_pose.u = hash_normalize(normalized_pose.u); normalized_pose.v = hash_normalize(normalized_pose.v); normalized_pose.w = hash_normalize(normalized_pose.w); + memcpy(bytes + offset, &k->config, sizeof(k->config)); offset += sizeof(k->config); + memcpy(bytes + offset, normalized_joints, sizeof(double) * joint_count); offset += sizeof(double) * joint_count; + memcpy(bytes + offset, &normalized_pose, sizeof(normalized_pose)); offset += sizeof(normalized_pose); + memcpy(bytes + offset, &k->revolution_count, sizeof(k->revolution_count)); offset += sizeof(k->revolution_count); + memcpy(bytes + offset, &k->previous_quadrant, sizeof(k->previous_quadrant)); offset += sizeof(k->previous_quadrant); + memcpy(bytes + offset, &k->branch_id, sizeof(k->branch_id)); offset += sizeof(k->branch_id); + return fnv1a64(bytes, offset); +} diff --git a/wasm-core/src/sim_motion_queue.c b/wasm-core/src/sim_motion_queue.c new file mode 100644 index 0000000..3b65150 --- /dev/null +++ b/wasm-core/src/sim_motion_queue.c @@ -0,0 +1,154 @@ +#include "sim_motion_queue.h" + +#include +#include +#include + +static uint64_t fnv1a64(const unsigned char *bytes, size_t length) { + uint64_t hash = UINT64_C(1469598103934665603); + size_t index; + for (index = 0; index < length; ++index) { hash ^= bytes[index]; hash *= UINT64_C(1099511628211); } + return hash; +} + +static int valid_config(double cycle_time, double velocity_limit) { + return isfinite(cycle_time) && isfinite(velocity_limit) && cycle_time > 0.0 && cycle_time <= 60.0 && velocity_limit >= 0.0 && velocity_limit <= 1e9; +} + +static double segment_length(const sim_posemath_segment *segment) { + const double dx = segment->end.tran.x - segment->start.tran.x; + const double dy = segment->end.tran.y - segment->start.tran.y; + const double dz = segment->end.tran.z - segment->start.tran.z; + double value = dx * dx + dy * dy + dz * dz; + return isfinite(value) && value > 0.0 ? sqrt(value) : 0.0; +} + +static int poses_match(const sim_posemath_pose *left, const sim_posemath_pose *right) { + const double *a = &left->tran.x; + const double *b = &right->tran.x; + size_t index; + for (index = 0; index < 9; ++index) if (fabs(a[index] - b[index]) > 1e-12) return 0; + return 1; +} + +static void zero_state(sim_motion_state *state) { + memset(state, 0, sizeof(*state)); + state->status = SIM_MOTION_OK; +} + +int sim_motion_reset(sim_motion_queue *queue) { + if (queue == 0) return SIM_MOTION_ERR_ARGUMENT; + queue->head = 0; queue->count = 0; queue->next_id = 1; queue->tick = 0; + zero_state(&queue->state); + return SIM_MOTION_OK; +} + +int sim_motion_init(sim_motion_queue *queue, double cycle_time, double velocity_limit) { + if (queue == 0) return SIM_MOTION_ERR_ARGUMENT; + if (!valid_config(cycle_time, velocity_limit)) return SIM_MOTION_ERR_RANGE; + queue->cycle_time = cycle_time; queue->velocity_limit = velocity_limit; + return sim_motion_reset(queue); +} + +int sim_motion_enqueue(sim_motion_queue *queue, const sim_motion_command *command, uint32_t *id_out) { + uint32_t index; + int result; + if (queue == 0 || command == 0) return SIM_MOTION_ERR_ARGUMENT; + result = sim_posemath_segment_validate(&command->segment); + if (result == SIM_POSEMATH_ERR_MOTION_TYPE) return SIM_MOTION_ERR_MOTION_TYPE; + if (result != SIM_POSEMATH_OK) return result == SIM_POSEMATH_ERR_NONFINITE ? SIM_MOTION_ERR_NONFINITE : SIM_MOTION_ERR_GEOMETRY; + if (queue->count >= SIM_MOTION_QUEUE_CAPACITY) return SIM_MOTION_ERR_CAPACITY; + if (command->segment.velocity > queue->velocity_limit) return SIM_MOTION_ERR_RANGE; + if (queue->count > 0) { + index = (queue->head + queue->count - 1) % SIM_MOTION_QUEUE_CAPACITY; + if (!poses_match(&queue->commands[index].segment.end, &command->segment.start)) return SIM_MOTION_ERR_STATE; + } else if (queue->state.tick > 0 && !poses_match(&queue->state.position, &command->segment.start)) { + return SIM_MOTION_ERR_STATE; + } + index = (queue->head + queue->count) % SIM_MOTION_QUEUE_CAPACITY; + queue->commands[index] = *command; + queue->commands[index].id = queue->next_id++; + if (id_out != 0) *id_out = queue->commands[index].id; + queue->count++; + return SIM_MOTION_OK; +} + +int sim_motion_step(sim_motion_queue *queue) { + sim_motion_command *command; + double length; + double delta; + int result; + if (queue == 0) return SIM_MOTION_ERR_ARGUMENT; + if (queue->count == 0) { queue->tick++; queue->state.tick = queue->tick; queue->state.status = SIM_MOTION_ERR_STATE; return SIM_MOTION_ERR_STATE; } + command = &queue->commands[queue->head]; + length = segment_length(&command->segment); + if (length <= 0.0) { queue->state.status = SIM_MOTION_ERR_GEOMETRY; return queue->state.status; } + queue->state.active_id = command->id; queue->state.active_tag = command->tag; queue->state.motion_type = command->segment.motion_type; + delta = command->segment.velocity * queue->cycle_time / length; + if (!isfinite(delta) || delta < 0.0) { queue->state.status = SIM_MOTION_ERR_NONFINITE; return queue->state.status; } + queue->state.progress += delta; + if (queue->state.progress >= 1.0) { + queue->state.progress = 1.0; + result = sim_posemath_segment_point(&command->segment, 1.0, &queue->state.position); + if (result != SIM_POSEMATH_OK) { queue->state.status = SIM_MOTION_ERR_GEOMETRY; return queue->state.status; } + queue->head = (queue->head + 1) % SIM_MOTION_QUEUE_CAPACITY; + queue->count--; + queue->state.progress = 0.0; + queue->state.active_id = 0; + queue->state.active_tag = 0; + queue->state.motion_type = 0; + } else { + result = sim_posemath_segment_point(&command->segment, queue->state.progress, &queue->state.position); + if (result != SIM_POSEMATH_OK) { queue->state.status = SIM_MOTION_ERR_GEOMETRY; return queue->state.status; } + } + queue->state.velocity = command->segment.velocity; + queue->tick++; + queue->state.tick = queue->tick; + queue->state.queue_depth = queue->count; + queue->state.status = SIM_MOTION_OK; + return SIM_MOTION_OK; +} + +int sim_motion_read_state(const sim_motion_queue *queue, sim_motion_state *state) { + if (queue == 0 || state == 0) return SIM_MOTION_ERR_ARGUMENT; + *state = queue->state; + state->queue_depth = queue->count; + return SIM_MOTION_OK; +} + +uint32_t sim_motion_queue_depth(const sim_motion_queue *queue) { + return queue == 0 ? 0 : queue->count; +} + +uint64_t sim_motion_state_hash(const sim_motion_queue *queue) { + sim_motion_state state; + unsigned char bytes[sizeof(sim_motion_state)]; + if (sim_motion_read_state(queue, &state) != SIM_MOTION_OK) return 0; + memset(bytes, 0, sizeof(bytes)); + memcpy(bytes, &state.position, sizeof(state.position)); + memcpy(bytes + sizeof(state.position), &state.velocity, sizeof(double)); + memcpy(bytes + sizeof(state.position) + sizeof(double), &state.progress, sizeof(double)); + memcpy(bytes + sizeof(state.position) + sizeof(double) * 2, &state.tick, sizeof(uint32_t)); + memcpy(bytes + sizeof(state.position) + sizeof(double) * 2 + sizeof(uint32_t), &state.queue_depth, sizeof(uint32_t)); + memcpy(bytes + sizeof(state.position) + sizeof(double) * 2 + sizeof(uint32_t) * 2, &state.active_id, sizeof(uint32_t)); + memcpy(bytes + sizeof(state.position) + sizeof(double) * 2 + sizeof(uint32_t) * 3, &state.active_tag, sizeof(uint32_t)); + memcpy(bytes + sizeof(state.position) + sizeof(double) * 2 + sizeof(uint32_t) * 4, &state.motion_type, sizeof(int)); + memcpy(bytes + sizeof(state.position) + sizeof(double) * 2 + sizeof(uint32_t) * 4 + sizeof(int), &state.status, sizeof(int)); + return fnv1a64(bytes, sizeof(state.position) + sizeof(double) * 2 + sizeof(uint32_t) * 4 + sizeof(int) * 2); +} + +uint32_t sim_motion_canonical(const sim_motion_queue *queue, char *output, uint32_t capacity) { + sim_motion_state state; + char discard[1]; + char *destination = output == 0 ? discard : output; + uint32_t destination_capacity = output == 0 ? 1 : capacity; + int written; + if (sim_motion_read_state(queue, &state) != SIM_MOTION_OK) return 0; + written = snprintf(destination, destination_capacity, + "{\"active_id\":%u,\"active_tag\":%u,\"motion_type\":%d,\"position\":{\"x\":%.17g,\"y\":%.17g,\"z\":%.17g},\"progress\":%.17g,\"queue_depth\":%u,\"status\":%d,\"tick\":%u,\"velocity\":%.17g}", + state.active_id, state.active_tag, state.motion_type, state.position.tran.x, state.position.tran.y, state.position.tran.z, + state.progress, state.queue_depth, state.status, state.tick, state.velocity); + if (written < 0) return 0; + if (output == 0 || capacity <= (uint32_t)written) return (uint32_t)written + 1; + return (uint32_t)written + 1; +} diff --git a/wasm-core/src/sim_posemath.c b/wasm-core/src/sim_posemath.c index aabef67..aa87338 100644 --- a/wasm-core/src/sim_posemath.c +++ b/wasm-core/src/sim_posemath.c @@ -3,11 +3,25 @@ #include "posemath.h" #include +#include +#include static int finite_cart(const sim_posemath_cartesian *value) { return value != 0 && isfinite(value->x) && isfinite(value->y) && isfinite(value->z); } +static int finite_pose(const sim_posemath_pose *value) { + return value != 0 && finite_cart(&value->tran) && isfinite(value->a) && + isfinite(value->b) && isfinite(value->c) && isfinite(value->u) && + isfinite(value->v) && isfinite(value->w); +} + +static int finite_segment(const sim_posemath_segment *value) { + return value != 0 && finite_pose(&value->start) && finite_pose(&value->end) && + finite_cart(&value->center) && finite_cart(&value->normal) && + isfinite(value->velocity) && isfinite(value->acceleration); +} + static PmCartesian to_pm(const sim_posemath_cartesian *value) { PmCartesian result = {value->x, value->y, value->z}; return result; @@ -27,7 +41,8 @@ int sim_posemath_normalize(const sim_posemath_cartesian *input, sim_posemath_car PmCartesian source; PmCartesian result; double magnitude_squared = 0.0; - if (!finite_cart(input) || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (input == 0 || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!finite_cart(input)) return SIM_POSEMATH_ERR_NONFINITE; source = to_pm(input); if (pmCartMagSq(&source, &magnitude_squared) != 0 || !isfinite(magnitude_squared)) return SIM_POSEMATH_ERR_NONFINITE; if (magnitude_squared <= 1e-24) return SIM_POSEMATH_ERR_DEGENERATE; @@ -39,7 +54,8 @@ int sim_posemath_normalize(const sim_posemath_cartesian *input, sim_posemath_car int sim_posemath_dot(const sim_posemath_cartesian *left, const sim_posemath_cartesian *right, double *output) { PmCartesian lhs; PmCartesian rhs; - if (!finite_cart(left) || !finite_cart(right) || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (left == 0 || right == 0 || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!finite_cart(left) || !finite_cart(right)) return SIM_POSEMATH_ERR_NONFINITE; lhs = to_pm(left); rhs = to_pm(right); if (pmCartCartDot(&lhs, &rhs, output) != 0 || !isfinite(*output)) return SIM_POSEMATH_ERR_NONFINITE; @@ -52,11 +68,206 @@ int sim_posemath_line_point(const sim_posemath_cartesian *start, const sim_posem PmCartesian finish; PmCartesian result; PmCartesian delta; - if (!finite_cart(start) || !finite_cart(end) || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; - if (!isfinite(fraction) || fraction < 0.0 || fraction > 1.0) return SIM_POSEMATH_ERR_RANGE; + double magnitude_squared = 0.0; + if (start == 0 || end == 0 || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!finite_cart(start) || !finite_cart(end) || !isfinite(fraction)) return SIM_POSEMATH_ERR_NONFINITE; + if (fraction < 0.0 || fraction > 1.0) return SIM_POSEMATH_ERR_RANGE; begin = to_pm(start); finish = to_pm(end); - if (pmCartCartSub(&finish, &begin, &delta) != 0 || pmCartScalMult(&delta, fraction, &delta) != 0 || pmCartCartAdd(&begin, &delta, &result) != 0) return SIM_POSEMATH_ERR_DEGENERATE; + if (pmCartCartSub(&finish, &begin, &delta) != 0) return SIM_POSEMATH_ERR_DEGENERATE; + if (pmCartMagSq(&delta, &magnitude_squared) != 0 || !isfinite(magnitude_squared)) return SIM_POSEMATH_ERR_NONFINITE; + if (magnitude_squared <= 1e-24) return SIM_POSEMATH_ERR_DEGENERATE; + if (pmCartScalMult(&delta, fraction, &delta) != 0 || pmCartCartAdd(&begin, &delta, &result)) return SIM_POSEMATH_ERR_DEGENERATE; + if (!isfinite(result.x) || !isfinite(result.y) || !isfinite(result.z)) return SIM_POSEMATH_ERR_NONFINITE; from_pm(&result, output); return SIM_POSEMATH_OK; } + +static int finite_pose_value(const sim_posemath_pose *value) { + return finite_pose(value); +} + +int sim_posemath_pose_is_finite(const sim_posemath_pose *value) { + return finite_pose_value(value); +} + +int sim_posemath_pose_line_point(const sim_posemath_pose *start, const sim_posemath_pose *end, + double fraction, sim_posemath_pose *output) { + if (start == 0 || end == 0 || output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!finite_pose_value(start) || !finite_pose_value(end) || !isfinite(fraction)) return SIM_POSEMATH_ERR_NONFINITE; + if (fraction < 0.0 || fraction > 1.0) return SIM_POSEMATH_ERR_RANGE; + output->tran.x = start->tran.x + (end->tran.x - start->tran.x) * fraction; + output->tran.y = start->tran.y + (end->tran.y - start->tran.y) * fraction; + output->tran.z = start->tran.z + (end->tran.z - start->tran.z) * fraction; + output->a = start->a + (end->a - start->a) * fraction; + output->b = start->b + (end->b - start->b) * fraction; + output->c = start->c + (end->c - start->c) * fraction; + output->u = start->u + (end->u - start->u) * fraction; + output->v = start->v + (end->v - start->v) * fraction; + output->w = start->w + (end->w - start->w) * fraction; + return finite_pose_value(output) ? SIM_POSEMATH_OK : SIM_POSEMATH_ERR_NONFINITE; +} + +int sim_posemath_segment_validate(const sim_posemath_segment *segment) { + double length_sq; + double normal_sq; + if (segment == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!finite_segment(segment)) return SIM_POSEMATH_ERR_NONFINITE; + if (segment->motion_type < SIM_POSEMATH_LINEAR || segment->motion_type > SIM_POSEMATH_SPHERICAL) return SIM_POSEMATH_ERR_MOTION_TYPE; + if (segment->velocity < 0.0 || segment->acceleration < 0.0 || segment->velocity > 1e9 || segment->acceleration > 1e12) return SIM_POSEMATH_ERR_RANGE; + length_sq = (segment->end.tran.x - segment->start.tran.x) * (segment->end.tran.x - segment->start.tran.x) + + (segment->end.tran.y - segment->start.tran.y) * (segment->end.tran.y - segment->start.tran.y) + + (segment->end.tran.z - segment->start.tran.z) * (segment->end.tran.z - segment->start.tran.z); + if (!isfinite(length_sq) || length_sq <= 1e-24) return SIM_POSEMATH_ERR_DEGENERATE; + if (segment->motion_type == SIM_POSEMATH_CIRCULAR) { + normal_sq = segment->normal.x * segment->normal.x + segment->normal.y * segment->normal.y + segment->normal.z * segment->normal.z; + if (!isfinite(normal_sq) || normal_sq <= 1e-24) return SIM_POSEMATH_ERR_DEGENERATE; + if (segment->turn < -1000000 || segment->turn > 1000000) return SIM_POSEMATH_ERR_RANGE; + } + return SIM_POSEMATH_OK; +} + +int sim_posemath_segment_point(const sim_posemath_segment *segment, double fraction, + sim_posemath_pose *output) { + int result = sim_posemath_segment_validate(segment); + if (result != SIM_POSEMATH_OK) return result; + if (output == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!isfinite(fraction)) return SIM_POSEMATH_ERR_NONFINITE; + if (fraction < 0.0 || fraction > 1.0) return SIM_POSEMATH_ERR_RANGE; + if (segment->motion_type != SIM_POSEMATH_CIRCULAR) + return sim_posemath_pose_line_point(&segment->start, &segment->end, fraction, output); + { + PmCartesian start = to_pm(&segment->start.tran); + PmCartesian end = to_pm(&segment->end.tran); + PmCartesian center = to_pm(&segment->center); + PmCartesian normal = to_pm(&segment->normal); + PmCircle circle; + PmCartesian point; + if (pmCircleInit(&circle, &start, &end, ¢er, &normal, segment->turn) != 0) return SIM_POSEMATH_ERR_DEGENERATE; + if (pmCirclePoint(&circle, circle.angle * fraction, &point) != 0) return SIM_POSEMATH_ERR_DEGENERATE; + output->tran.x = point.x; output->tran.y = point.y; output->tran.z = point.z; + output->a = segment->start.a + (segment->end.a - segment->start.a) * fraction; + output->b = segment->start.b + (segment->end.b - segment->start.b) * fraction; + output->c = segment->start.c + (segment->end.c - segment->start.c) * fraction; + output->u = segment->start.u + (segment->end.u - segment->start.u) * fraction; + output->v = segment->start.v + (segment->end.v - segment->start.v) * fraction; + output->w = segment->start.w + (segment->end.w - segment->start.w) * fraction; + return finite_pose_value(output) ? SIM_POSEMATH_OK : SIM_POSEMATH_ERR_NONFINITE; + } +} + +static uint64_t fnv1a64(const unsigned char *bytes, size_t length) { + uint64_t hash = UINT64_C(1469598103934665603); + size_t index; + for (index = 0; index < length; ++index) { + hash ^= (uint64_t)bytes[index]; + hash *= UINT64_C(1099511628211); + } + return hash; +} + +uint64_t sim_posemath_hash_state(const sim_tp_state *state) { + unsigned char bytes[sizeof(double) * 11 + sizeof(uint32_t) * 3 + sizeof(int) * 2]; + size_t offset = 0; + const double *doubles; + const uint32_t *uints; + const int *ints; + size_t index; + if (state == 0) return 0; + doubles = (const double *)&state->position; + for (index = 0; index < 11; ++index) { + memcpy(bytes + offset, doubles + index, sizeof(double)); + offset += sizeof(double); + } + uints = &state->tick; + for (index = 0; index < 3; ++index) { + memcpy(bytes + offset, uints + index, sizeof(uint32_t)); + offset += sizeof(uint32_t); + } + ints = &state->motion_type; + for (index = 0; index < 2; ++index) { + memcpy(bytes + offset, ints + index, sizeof(int)); + offset += sizeof(int); + } + return fnv1a64(bytes, offset); +} + +static int valid_tp_config(double cycle_time, double velocity_limit, double acceleration_limit) { + return isfinite(cycle_time) && isfinite(velocity_limit) && isfinite(acceleration_limit) && + cycle_time > 0.0 && cycle_time <= 60.0 && velocity_limit >= 0.0 && velocity_limit <= 1e9 && + acceleration_limit >= 0.0 && acceleration_limit <= 1e12; +} + +int sim_tp_reset(sim_tp *tp) { + if (tp == 0) return SIM_POSEMATH_ERR_ARGUMENT; + tp->head = 0; tp->count = 0; tp->next_id = 1; tp->active_id = 0; tp->tick = 0; + tp->progress = 0.0; tp->current_velocity = 0.0; tp->motion_type = 0; tp->status = SIM_POSEMATH_OK; + tp->position.tran.x = 0.0; tp->position.tran.y = 0.0; tp->position.tran.z = 0.0; + tp->position.a = tp->position.b = tp->position.c = tp->position.u = tp->position.v = tp->position.w = 0.0; + return SIM_POSEMATH_OK; +} + +int sim_tp_init(sim_tp *tp, double cycle_time, double velocity_limit, double acceleration_limit) { + if (tp == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (!valid_tp_config(cycle_time, velocity_limit, acceleration_limit)) return SIM_POSEMATH_ERR_RANGE; + tp->cycle_time = cycle_time; tp->velocity_limit = velocity_limit; tp->acceleration_limit = acceleration_limit; + return sim_tp_reset(tp); +} + +int sim_tp_enqueue(sim_tp *tp, const sim_posemath_segment *segment, uint32_t *id_out) { + uint32_t index; + int result; + if (tp == 0 || segment == 0) return SIM_POSEMATH_ERR_ARGUMENT; + result = sim_posemath_segment_validate(segment); + if (result != SIM_POSEMATH_OK) return result; + if (tp->count >= SIM_TP_QUEUE_CAPACITY) return SIM_POSEMATH_ERR_CAPACITY; + if (segment->velocity > tp->velocity_limit || segment->acceleration > tp->acceleration_limit) return SIM_POSEMATH_ERR_RANGE; + index = (tp->head + tp->count) % SIM_TP_QUEUE_CAPACITY; + tp->queue[index] = *segment; tp->ids[index] = tp->next_id++; + if (id_out != 0) *id_out = tp->ids[index]; + tp->count++; + return SIM_POSEMATH_OK; +} + +int sim_tp_step(sim_tp *tp) { + sim_posemath_segment *segment; + double length_sq; + double step; + int result; + if (tp == 0) return SIM_POSEMATH_ERR_ARGUMENT; + if (tp->count == 0) { tp->tick++; tp->status = SIM_POSEMATH_ERR_STATE; return SIM_POSEMATH_ERR_STATE; } + segment = &tp->queue[tp->head]; + result = sim_posemath_segment_validate(segment); + if (result != SIM_POSEMATH_OK) { tp->status = result; return result; } + if (tp->active_id == 0) { tp->active_id = tp->ids[tp->head]; tp->motion_type = segment->motion_type; } + length_sq = (segment->end.tran.x - segment->start.tran.x) * (segment->end.tran.x - segment->start.tran.x) + + (segment->end.tran.y - segment->start.tran.y) * (segment->end.tran.y - segment->start.tran.y) + + (segment->end.tran.z - segment->start.tran.z) * (segment->end.tran.z - segment->start.tran.z); + step = segment->velocity * tp->cycle_time / sqrt(length_sq); + if (!isfinite(step) || step < 0.0) { tp->status = SIM_POSEMATH_ERR_NONFINITE; return tp->status; } + if (step < 1e-15) step = 1e-15; + tp->progress += step; + if (tp->progress >= 1.0) { + tp->progress = 1.0; + result = sim_posemath_segment_point(segment, tp->progress, &tp->position); + tp->head = (tp->head + 1) % SIM_TP_QUEUE_CAPACITY; tp->count--; tp->active_id = 0; tp->motion_type = 0; tp->progress = 0.0; + } else { + result = sim_posemath_segment_point(segment, tp->progress, &tp->position); + } + tp->current_velocity = segment->velocity; tp->tick++; tp->status = result; + return result; +} + +int sim_tp_read_state(const sim_tp *tp, sim_tp_state *state) { + if (tp == 0 || state == 0) return SIM_POSEMATH_ERR_ARGUMENT; + state->position = tp->position; state->velocity = tp->current_velocity; state->progress = tp->progress; + state->tick = tp->tick; state->queue_depth = tp->count; state->active_id = tp->active_id; + state->motion_type = tp->motion_type; state->status = tp->status; + return SIM_POSEMATH_OK; +} + +uint64_t sim_tp_state_hash(const sim_tp *tp) { + sim_tp_state state; + if (sim_tp_read_state(tp, &state) != SIM_POSEMATH_OK) return 0; + return sim_posemath_hash_state(&state); +} diff --git a/wasm-core/tests/sim_hal_test.c b/wasm-core/tests/sim_hal_test.c index c72733b..4537f6a 100644 --- a/wasm-core/tests/sim_hal_test.c +++ b/wasm-core/tests/sim_hal_test.c @@ -1,8 +1,16 @@ #include "sim_hal.h" #include +#include -int main(void) { +static float get_float(const char *name) { + sim_hal_value value = {0}; + assert(sim_hal_get_pin(name, &value) == SIM_HAL_OK); + assert(value.type == SIM_HAL_FLOAT); + return value.value.real; +} + +int sim_hal_test_run(void) { sim_hal_value bit = {SIM_HAL_BIT, {.bit = 1}}; sim_hal_value wrong = {SIM_HAL_S32, {.s32 = 1}}; sim_hal_value out = {0}; @@ -25,5 +33,27 @@ int main(void) { assert(sim_hal_step(1) == SIM_HAL_ERR_FUNCTION); assert(sim_hal_tick() == 5); assert(sim_hal_register_thread("invalid", 0) == SIM_HAL_ERR_RANGE); + + sim_hal_reset(); + assert(sim_hal_register_thread("servo-thread", 1) == SIM_HAL_OK); + assert(sim_hal_register_corexy_by_hal("corexy_by_hal", "servo-thread") == SIM_HAL_OK); + assert(sim_hal_set_pin("corexy_by_hal.j0-motor-pos-cmd", (sim_hal_value){SIM_HAL_FLOAT, {.real = 6.0f}}) == SIM_HAL_OK); + assert(sim_hal_set_pin("corexy_by_hal.j1-motor-pos-cmd", (sim_hal_value){SIM_HAL_FLOAT, {.real = 2.0f}}) == SIM_HAL_OK); + assert(sim_hal_set_pin("corexy_by_hal.alpha-fb", (sim_hal_value){SIM_HAL_FLOAT, {.real = 4.0f}}) == SIM_HAL_OK); + assert(sim_hal_set_pin("corexy_by_hal.beta-fb", (sim_hal_value){SIM_HAL_FLOAT, {.real = 1.0f}}) == SIM_HAL_OK); + assert(sim_hal_step(1) == SIM_HAL_OK); + assert(get_float("corexy_by_hal.alpha-cmd") == 4.0f); + assert(get_float("corexy_by_hal.beta-cmd") == 2.0f); + assert(get_float("corexy_by_hal.j0-motor-pos-fb") == 5.0f); + assert(get_float("corexy_by_hal.j1-motor-pos-fb") == 3.0f); + assert(sim_hal_function_calls("corexy_by_hal") == 1); + assert(sim_hal_corexy_transform("missing") == SIM_HAL_ERR_NOT_FOUND); + assert(sim_hal_register_corexy_by_hal("corexy_by_hal", "servo-thread") == SIM_HAL_ERR_DUPLICATE); + printf("{\"schema\":\"hal-corexy-sample.v1\",\"command\":{\"j0\":%.3f,\"j1\":%.3f,\"alpha\":%.3f,\"beta\":%.3f},\"feedback\":{\"alpha\":%.3f,\"beta\":%.3f,\"j0\":%.3f,\"j1\":%.3f},\"tick\":%u,\"function_calls\":%u}\n", + (double)get_float("corexy_by_hal.j0-motor-pos-cmd"), (double)get_float("corexy_by_hal.j1-motor-pos-cmd"), + (double)get_float("corexy_by_hal.alpha-cmd"), (double)get_float("corexy_by_hal.beta-cmd"), + (double)get_float("corexy_by_hal.alpha-fb"), (double)get_float("corexy_by_hal.beta-fb"), + (double)get_float("corexy_by_hal.j0-motor-pos-fb"), (double)get_float("corexy_by_hal.j1-motor-pos-fb"), + sim_hal_tick(), sim_hal_function_calls("corexy_by_hal")); return 0; } diff --git a/wasm-core/tests/sim_hal_test_main.c b/wasm-core/tests/sim_hal_test_main.c new file mode 100644 index 0000000..089f0b5 --- /dev/null +++ b/wasm-core/tests/sim_hal_test_main.c @@ -0,0 +1,5 @@ +int sim_hal_test_run(void); + +int main(void) { + return sim_hal_test_run(); +} diff --git a/wasm-core/tests/sim_interpreter_test.c b/wasm-core/tests/sim_interpreter_test.c new file mode 100644 index 0000000..33e49bb --- /dev/null +++ b/wasm-core/tests/sim_interpreter_test.c @@ -0,0 +1,36 @@ +#include "sim_interpreter.h" + +#include +#include +#include + +int main(void) { + sim_interpreter interpreter = {0}; + sim_interpreter_state state = {0}; + sim_interpreter_state second = {0}; + char canonical[SIM_INTERPRETER_CANONICAL_CAPACITY] = {0}; + uint32_t required; + + assert(sim_interpreter_init(&interpreter) == SIM_INTERP_OK); + assert(sim_interpreter_execute(&interpreter, "G21 G90 G1 X10 Y2 F120", (uint32_t)(sizeof("G21 G90 G1 X10 Y2 F120") - 1)) == SIM_INTERP_OK); + assert(sim_interpreter_read_state(&interpreter, &state) == SIM_INTERP_OK); + assert(state.x == 10.0 && state.y == 2.0 && state.feed == 120.0); + required = sim_interpreter_canonical(&interpreter, canonical, sizeof(canonical)); + assert(required > 1 && canonical[required - 1] == '\0'); + assert(sim_interpreter_state_hash(&interpreter) != 0); + assert(sim_interpreter_execute(&interpreter, "G91 X1 (increment)", (uint32_t)(sizeof("G91 X1 (increment)") - 1)) == SIM_INTERP_OK); + assert(sim_interpreter_read_state(&interpreter, &second) == SIM_INTERP_OK); + assert(second.x == 11.0 && second.line == state.line + 1); + assert(sim_interpreter_execute(&interpreter, "G20 X1", 6) == SIM_INTERP_OK); + assert(fabs(interpreter.state.x - 36.4) < 1e-12); + assert(sim_interpreter_execute(&interpreter, "X1 G90 G21", (uint32_t)(sizeof("X1 G90 G21") - 1)) == SIM_INTERP_OK); + assert(interpreter.state.x == 1.0); + assert(sim_interpreter_execute(&interpreter, "G1 G0 X1", 8) == SIM_INTERP_ERR_STATE); + assert(sim_interpreter_execute(&interpreter, "G999", 4) == SIM_INTERP_ERR_UNKNOWN_CODE); + assert(sim_interpreter_execute(&interpreter, "Xnan", 4) == SIM_INTERP_ERR_SYNTAX); + assert(sim_interpreter_execute(&interpreter, "G1 X1 X2", 8) == SIM_INTERP_ERR_STATE); + assert(sim_interpreter_execute(&interpreter, "M2", 2) == SIM_INTERP_OK); + assert(interpreter.state.program_end == 1); + assert(sim_interpreter_execute(&interpreter, "G1 X0", (uint32_t)(sizeof("G1 X0") - 1)) == SIM_INTERP_ERR_STATE); + return 0; +} diff --git a/wasm-core/tests/sim_kinematics_test.c b/wasm-core/tests/sim_kinematics_test.c new file mode 100644 index 0000000..ed54dba --- /dev/null +++ b/wasm-core/tests/sim_kinematics_test.c @@ -0,0 +1,585 @@ +#include "sim_kinematics.h" + +#include +#include +#include +#include + +static sim_kinematics_config config_for(int type, const char *coordinates) { + sim_kinematics_config config = {0}; + config.type = type; + config.joint_count = (uint32_t)strlen(coordinates); + strncpy(config.coordinates, coordinates, sizeof(config.coordinates) - 1); + config.pivot_length = 250.0; + config.limit_enabled[0] = 1; config.joint_min[0] = -1000; config.joint_max[0] = 1000; + return config; +} + +static void round_trip(sim_kinematics *kinematics, const double *input, uint32_t count) { + double joints[SIM_KIN_MAX_JOINTS] = {0}; + sim_posemath_pose pose = {0}; + sim_posemath_pose repeat = {0}; + assert(sim_kinematics_forward(kinematics, input, count, &pose) == SIM_KIN_OK); + assert(sim_kinematics_inverse(kinematics, &pose, joints, count) == SIM_KIN_OK); + assert(sim_kinematics_forward(kinematics, joints, count, &repeat) == SIM_KIN_OK); + assert(fabs(pose.tran.x - repeat.tran.x) < 1e-9); + assert(fabs(pose.tran.y - repeat.tran.y) < 1e-9); + assert(fabs(pose.tran.z - repeat.tran.z) < 1e-9); + assert(sim_kinematics_state_hash(kinematics, joints, count, &repeat) == sim_kinematics_state_hash(kinematics, joints, count, &repeat)); +} + +static double canonical(double value) { + return fabs(value) < 5e-10 ? 0.0 : value; +} + +static void emit_coupled_samples(void) { + sim_kinematics kinematics = {0}; + sim_kinematics_config config; + sim_posemath_pose pose = {0}; + double output[SIM_KIN_MAX_JOINTS] = {0}; + double corexy_pose[3]; + double corexy_joints[3]; + double rose_pose[3]; + double rose_joints[3]; + double max_pose[3]; + double max_joints[6]; + double rotate_pose[3]; + double rotate_joints[6]; + double fiveaxis_pose[3]; + double fiveaxis_joints[7]; + double xyzac_pose[3]; + double xyzac_joints[5]; + double xyzbc_pose[3]; + double xyzbc_joints[5]; + double scara_pose[3]; + double scara_joints[6]; + double puma_pose[3]; + double puma_joints[6]; + double scorbot_pose[3]; + double scorbot_joints[5]; + double genser_pose[3]; + double genser_joints[6]; + double ldelta_pose[3]; + double ldelta_joints[3]; + double rdelta_pose[3]; + double rdelta_joints[3]; + double tripod_pose[3]; + double tripod_joints[3]; + double genhex_pose[6]; + double genhex_joints[6]; + double penta_pose[5]; + double penta_joints[5]; + uint32_t rose_branch; + uint64_t corexy_hash; + uint64_t rose_hash; + uint64_t max_hash; + uint64_t rotate_hash; + uint64_t fiveaxis_hash; + uint64_t xyzac_hash; + uint64_t xyzbc_hash; + uint64_t scara_hash; + uint64_t puma_hash; + uint64_t scorbot_hash; + uint64_t genser_hash; + uint64_t ldelta_hash; + uint64_t rdelta_hash; + uint64_t tripod_hash; + uint64_t genhex_hash; + uint64_t penta_hash; + uint32_t ldelta_branch; + uint32_t ldelta_alt_branch; + uint32_t rdelta_branch; + uint32_t rdelta_alt_branch; + int ldelta_no_solution; + int ldelta_limit_error; + int rdelta_singular; + int ldelta_alt_status; + int rdelta_alt_status; + int ldelta_geometry_status; + int rdelta_geometry_status; + int tripod_no_solution; + int tripod_singular; + int tripod_limit_error; + int tripod_geometry_status; + uint32_t tripod_branch; + uint32_t tripod_alt_branch; + int tripod_alt_status; + int genhex_nonpositive; + int genhex_iter_limit_error; + int genhex_max_error_status; + int genhex_singular; + int genhex_limit_error; + int genhex_alt_status; + uint32_t genhex_branch; + uint32_t genhex_alt_branch; + uint32_t genhex_iterations; + double genhex_residual; + int penta_nonpositive; + int penta_iter_limit_error; + int penta_max_error_status; + int penta_singular; + int penta_limit_error; + int penta_alt_status; + uint32_t penta_branch; + uint32_t penta_alt_branch; + uint32_t penta_iterations; + double penta_residual; + sim_posemath_pose tripod_alt_pose = {0}; + sim_posemath_pose genhex_alt_pose = {0}; + sim_posemath_pose penta_alt_pose = {0}; + uint32_t ldelta_iterations; + uint32_t rdelta_iterations; + sim_posemath_pose ldelta_alt_pose = {0}; + sim_posemath_pose rdelta_alt_pose = {0}; + sim_posemath_pose mapping_pose = {0}; + sim_kinematics_result_info delta_info = {0}; + sim_kinematics_result_info genser_info = {0}; + + config = config_for(SIM_KIN_COREXY, "XYZ"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){6, 2, 3}, 3, &pose) == SIM_KIN_OK); + corexy_pose[0] = canonical(pose.tran.x); corexy_pose[1] = canonical(pose.tran.y); corexy_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 3) == SIM_KIN_OK); + memcpy(corexy_joints, output, sizeof(corexy_joints)); + corexy_hash = sim_kinematics_state_hash(&kinematics, output, 3, &pose); + + config = config_for(SIM_KIN_ROSE, "XYZ"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){2, 7, 170}, 3, &pose) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 3) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){2, 7, 190}, 3, &pose) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 3) == SIM_KIN_OK); + rose_pose[0] = canonical(pose.tran.x); rose_pose[1] = canonical(pose.tran.y); rose_pose[2] = canonical(pose.tran.z); + memcpy(rose_joints, output, sizeof(rose_joints)); + rose_branch = kinematics.branch_id; + rose_hash = sim_kinematics_state_hash(&kinematics, output, 3, &pose); + + config = config_for(SIM_KIN_MAXKINS, "XYZABC"); + config.pivot_length = 0.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){3, 4, 5, 0, 30, 90}, 6, &pose) == SIM_KIN_OK); + max_pose[0] = canonical(pose.tran.x); max_pose[1] = canonical(pose.tran.y); max_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse_ex(&kinematics, &pose, 6, 0, output, &genser_info) == SIM_KIN_OK); + memcpy(max_joints, output, sizeof(max_joints)); + max_hash = sim_kinematics_state_hash(&kinematics, output, 6, &pose); + + config = config_for(SIM_KIN_ROTATEKINS, "XYZABC"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){3, 4, 5, 0, 0, 90}, 6, &pose) == SIM_KIN_OK); + rotate_pose[0] = canonical(pose.tran.x); rotate_pose[1] = canonical(pose.tran.y); rotate_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 6) == SIM_KIN_OK); + memcpy(rotate_joints, output, sizeof(rotate_joints)); + rotate_hash = sim_kinematics_state_hash(&kinematics, output, 6, &pose); + + config = config_for(SIM_KIN_5AXISKINS, "XYZBCWY"); + config.pivot_length = 250.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){10, 20, 30, 35, 40, -2, 20}, 7, &pose) == SIM_KIN_OK); + fiveaxis_pose[0] = canonical(pose.tran.x); fiveaxis_pose[1] = canonical(pose.tran.y); fiveaxis_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 7) == SIM_KIN_OK); + memcpy(fiveaxis_joints, output, sizeof(fiveaxis_joints)); + fiveaxis_hash = sim_kinematics_state_hash(&kinematics, output, 7, &pose); + + config = config_for(SIM_KIN_XYZAC_TRT, "XYZAC"); + config.x_rot_point = 20.0; config.y_offset = 3.0; config.tool_offset = 100.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){100, 50, 200, 30, 45}, 5, &pose) == SIM_KIN_OK); + xyzac_pose[0] = canonical(pose.tran.x); xyzac_pose[1] = canonical(pose.tran.y); xyzac_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 5) == SIM_KIN_OK); + memcpy(xyzac_joints, output, sizeof(xyzac_joints)); + xyzac_hash = sim_kinematics_state_hash(&kinematics, output, 5, &pose); + + config = config_for(SIM_KIN_XYZBC_TRT, "XYZBC"); + config.x_offset = 5.0; config.z_offset = 2.0; config.tool_offset = 50.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){100, 50, 200, 30, 45}, 5, &pose) == SIM_KIN_OK); + xyzbc_pose[0] = canonical(pose.tran.x); xyzbc_pose[1] = canonical(pose.tran.y); xyzbc_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 5) == SIM_KIN_OK); + memcpy(xyzbc_joints, output, sizeof(xyzbc_joints)); + xyzbc_hash = sim_kinematics_state_hash(&kinematics, output, 5, &pose); + + config = config_for(SIM_KIN_SCARA, "XYZCAB"); + config.scara_d1 = 490.0; config.scara_d2 = 340.0; config.scara_d3 = 50.0; config.scara_d4 = 250.0; config.scara_d5 = 50.0; config.scara_d6 = 50.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){30, -40, 25, 15, 5, -3}, 6, &pose) == SIM_KIN_OK); + scara_pose[0] = canonical(pose.tran.x); scara_pose[1] = canonical(pose.tran.y); scara_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 6) == SIM_KIN_OK); + memcpy(scara_joints, output, sizeof(scara_joints)); scara_hash = sim_kinematics_state_hash(&kinematics, output, 6, &pose); + + config = config_for(SIM_KIN_PUMA, "XYZABC"); + config.puma_a2 = 400.0; config.puma_a3 = 50.0; config.puma_d3 = 100.0; config.puma_d4 = 400.0; config.puma_d6 = 95.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){10, 20, -30, 40, 25, -15}, 6, &pose) == SIM_KIN_OK); + puma_pose[0] = canonical(pose.tran.x); puma_pose[1] = canonical(pose.tran.y); puma_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 6) == SIM_KIN_OK); + memcpy(puma_joints, output, sizeof(puma_joints)); puma_hash = sim_kinematics_state_hash(&kinematics, output, 6, &pose); + + config = config_for(SIM_KIN_SCORBOT, "XYZAB"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){25, 35, -20, 10, -5}, 5, &pose) == SIM_KIN_OK); + scorbot_pose[0] = canonical(pose.tran.x); scorbot_pose[1] = canonical(pose.tran.y); scorbot_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 5) == SIM_KIN_OK); + memcpy(scorbot_joints, output, sizeof(scorbot_joints)); scorbot_hash = sim_kinematics_state_hash(&kinematics, output, 5, &pose); + + config = config_for(SIM_KIN_GENSER, "XYZABC"); + config.dh_joint_count = 6; + config.max_iterations = 200; + config.convergence_tolerance = 1e-7; + config.dh_a[0] = 0.0; config.dh_a[1] = 85.0; config.dh_a[2] = 380.0; config.dh_a[3] = 100.0; + config.dh_alpha[0] = 0.0; config.dh_alpha[1] = -1.5707963267948966; config.dh_alpha[2] = 0.0; config.dh_alpha[3] = -1.5707963267948966; config.dh_alpha[4] = 1.5707963267948966; config.dh_alpha[5] = -1.5707963267948966; + config.dh_d[0] = 350.0; config.dh_d[1] = 0.0; config.dh_d[2] = 0.0; config.dh_d[3] = 425.0; config.dh_d[4] = 0.0; config.dh_d[5] = 235.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){0, 10, -20, 30, 15, -10}, 6, &pose) == SIM_KIN_OK); + genser_pose[0] = canonical(pose.tran.x); genser_pose[1] = canonical(pose.tran.y); genser_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 6) == SIM_KIN_OK); + memcpy(genser_joints, output, sizeof(genser_joints)); genser_hash = sim_kinematics_state_hash(&kinematics, output, 6, &pose); + + config = config_for(SIM_KIN_LINEAR_DELTA, "XYZ"); + config.joint_count = 4; + config.kinematics_joint_count = 3; + config.extra_joint_count = 1; + config.delta_radius = 130.25; config.delta_rod_length = 269.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward_ex(&kinematics, (double[]){300, 300, 300}, 3, 0, &pose, &delta_info) == SIM_KIN_OK); + ldelta_branch = delta_info.branch_id; ldelta_iterations = delta_info.iterations; + ldelta_pose[0] = canonical(pose.tran.x); ldelta_pose[1] = canonical(pose.tran.y); ldelta_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_forward_ex(&kinematics, (double[]){300, 300, 300}, 3, SIM_KIN_DELTA_ALTERNATE_ROOT, &ldelta_alt_pose, &delta_info) == SIM_KIN_OK); + ldelta_alt_status = SIM_KIN_OK; ldelta_alt_branch = delta_info.branch_id; + assert(sim_kinematics_inverse(&kinematics, &pose, output, 3) == SIM_KIN_OK); + memcpy(ldelta_joints, output, sizeof(ldelta_joints)); ldelta_hash = sim_kinematics_state_hash(&kinematics, output, 3, &pose); + ldelta_no_solution = sim_kinematics_inverse(&kinematics, &(sim_posemath_pose){.tran = {1000.0, 0.0, 0.0}}, output, 3); + config.limit_enabled[0] = 1; config.joint_min[0] = -10.0; config.joint_max[0] = 10.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + ldelta_limit_error = sim_kinematics_inverse(&kinematics, &pose, output, 3); + config.limit_enabled[0] = 0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + config.delta_radius = 0.0; config.delta_rod_length = 269.0; + ldelta_geometry_status = sim_kinematics_init(&kinematics, &config); + config.delta_radius = 130.25; config.delta_rod_length = 269.0; + + config = config_for(SIM_KIN_ROTARY_DELTA, "XYZ"); + config.rotary_platform_radius = 10.0; config.rotary_thigh_length = 10.0; config.rotary_shin_length = 14.0; config.rotary_foot_radius = 6.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward_ex(&kinematics, (double[]){10, 10, 10}, 3, 0, &pose, &delta_info) == SIM_KIN_OK); + rdelta_branch = delta_info.branch_id; rdelta_iterations = delta_info.iterations; + rdelta_pose[0] = canonical(pose.tran.x); rdelta_pose[1] = canonical(pose.tran.y); rdelta_pose[2] = canonical(pose.tran.z); + assert(sim_kinematics_forward_ex(&kinematics, (double[]){10, 10, 10}, 3, SIM_KIN_DELTA_ALTERNATE_ROOT, &rdelta_alt_pose, &delta_info) == SIM_KIN_OK); + rdelta_alt_status = SIM_KIN_OK; rdelta_alt_branch = delta_info.branch_id; + assert(sim_kinematics_inverse(&kinematics, &pose, output, 3) == SIM_KIN_OK); + memcpy(rdelta_joints, output, sizeof(rdelta_joints)); rdelta_hash = sim_kinematics_state_hash(&kinematics, output, 3, &pose); + rdelta_singular = sim_kinematics_inverse(&kinematics, &(sim_posemath_pose){.tran = {0.0, 0.0, 0.0}}, output, 3); + config.rotary_platform_radius = 0.0; + rdelta_geometry_status = sim_kinematics_init(&kinematics, &config); + + /* Non-default coordinate order must use the same axis-to-joint mapping + * in rotary Delta inverse as it does in forward. */ + config = config_for(SIM_KIN_ROTARY_DELTA, "YZX"); + config.rotary_platform_radius = 10.0; config.rotary_thigh_length = 10.0; config.rotary_shin_length = 14.0; config.rotary_foot_radius = 6.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){10, 20, 30}, 3, &pose) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &pose, output, 3) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, output, 3, &mapping_pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x - mapping_pose.tran.x) < 1e-9); + assert(fabs(pose.tran.y - mapping_pose.tran.y) < 1e-9); + assert(fabs(pose.tran.z - mapping_pose.tran.z) < 1e-9); + + config = config_for(SIM_KIN_TRIPOD, "XYZ"); + config.tripod_bx = 10.0; config.tripod_cx = 5.0; config.tripod_cy = 7.071; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_inverse_ex(&kinematics, &(sim_posemath_pose){.tran = {2.0, 3.0, 4.0}}, 3, 0, output, &delta_info) == SIM_KIN_OK); + memcpy(tripod_joints, output, sizeof(tripod_joints)); + assert(sim_kinematics_forward_ex(&kinematics, output, 3, 0, &pose, &delta_info) == SIM_KIN_OK); + tripod_branch = delta_info.branch_id; + tripod_pose[0] = canonical(pose.tran.x); tripod_pose[1] = canonical(pose.tran.y); tripod_pose[2] = canonical(pose.tran.z); + tripod_hash = sim_kinematics_state_hash(&kinematics, output, 3, &pose); + assert(sim_kinematics_forward_ex(&kinematics, output, 3, SIM_KIN_TRIPOD_BELOW_ROOT, &tripod_alt_pose, &delta_info) == SIM_KIN_OK); + tripod_alt_status = SIM_KIN_OK; tripod_alt_branch = delta_info.branch_id; + tripod_no_solution = sim_kinematics_forward(&kinematics, (double[]){1.0, 1.0, 20.0}, 3, &pose); + assert(sim_kinematics_inverse(&kinematics, &(sim_posemath_pose){.tran = {2.0, 3.0, 0.0}}, output, 3) == SIM_KIN_OK); + tripod_singular = sim_kinematics_forward(&kinematics, output, 3, &pose); + config.limit_enabled[0] = 1; config.joint_min[0] = 0.0; config.joint_max[0] = 1.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + tripod_limit_error = sim_kinematics_inverse(&kinematics, &(sim_posemath_pose){.tran = {2.0, 3.0, 4.0}}, output, 3); + config.limit_enabled[0] = 0; + config.tripod_bx = 0.0; + tripod_geometry_status = sim_kinematics_init(&kinematics, &config); + config.tripod_bx = 10.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_home(&kinematics, output, 3, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.z - 1.0) < 1e-9); + + config = config_for(SIM_KIN_GENHEX, "XYZABC"); + config.genhex_initial_pose[2] = 50.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_inverse_ex(&kinematics, &(sim_posemath_pose){.tran = {10.0, -5.0, 60.0}, .a = 5.0, .b = -3.0, .c = 10.0}, 6, 0, output, &genser_info) == SIM_KIN_OK); + memcpy(genhex_joints, output, sizeof(genhex_joints)); + assert(sim_kinematics_forward_ex(&kinematics, output, 6, 0, &pose, &genser_info) == SIM_KIN_OK); + genhex_pose[0] = canonical(pose.tran.x); genhex_pose[1] = canonical(pose.tran.y); genhex_pose[2] = canonical(pose.tran.z); + genhex_pose[3] = canonical(pose.a); genhex_pose[4] = canonical(pose.b); genhex_pose[5] = canonical(pose.c); + genhex_iterations = genser_info.iterations; genhex_residual = genser_info.residual; genhex_branch = genser_info.branch_id; + genhex_hash = sim_kinematics_state_hash(&kinematics, output, 6, &pose); + genhex_alt_status = sim_kinematics_forward_ex(&kinematics, output, 6, SIM_KIN_GENHEX_ALTERNATE_SEED, &genhex_alt_pose, &genser_info); + genhex_alt_branch = genser_info.branch_id; + genhex_nonpositive = sim_kinematics_forward(&kinematics, (double[]){0.0, 1.0, 1.0, 1.0, 1.0, 1.0}, 6, &pose); + config.genhex_iteration_limit = 1; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + genhex_iter_limit_error = sim_kinematics_forward(&kinematics, genhex_joints, 6, &pose); + config.genhex_iteration_limit = 120; config.genhex_max_error = 0.000001; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + genhex_max_error_status = sim_kinematics_forward(&kinematics, genhex_joints, 6, &pose); + config.genhex_max_error = 500.0; config.limit_enabled[0] = 1; config.joint_min[0] = 0.0; config.joint_max[0] = 1.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + genhex_limit_error = sim_kinematics_inverse(&kinematics, &(sim_posemath_pose){.tran = {10.0, -5.0, 60.0}, .a = 5.0, .b = -3.0, .c = 10.0}, output, 6); + config.limit_enabled[0] = 0; + config.genhex_base[0][0] = 1.0; config.genhex_base[0][1] = 0.0; config.genhex_base[0][2] = 0.0; + config.genhex_platform[0][0] = 0.0; config.genhex_platform[0][1] = 1.0; config.genhex_platform[0][2] = 0.0; + for (int duplicate = 1; duplicate < 6; ++duplicate) { + memcpy(config.genhex_base[duplicate], config.genhex_base[0], sizeof(config.genhex_base[0])); + memcpy(config.genhex_platform[duplicate], config.genhex_platform[0], sizeof(config.genhex_platform[0])); + } + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + genhex_singular = sim_kinematics_forward(&kinematics, genhex_joints, 6, &pose); + + config = config_for(SIM_KIN_PENTAPOD, "XYZAB"); + config.penta_initial_pose[0] = 0.0; config.penta_initial_pose[1] = 500.0; config.penta_initial_pose[2] = 300.0; config.penta_initial_pose[3] = 2.0 * 0.017453292519943295769; config.penta_initial_pose[4] = -3.0 * 0.017453292519943295769; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_inverse_ex(&kinematics, &(sim_posemath_pose){.tran = {0.0, 500.0, 300.0}, .a = 2.0, .b = -3.0}, 5, 0, output, &genser_info) == SIM_KIN_OK); + memcpy(penta_joints, output, sizeof(penta_joints)); + assert(sim_kinematics_forward_ex(&kinematics, output, 5, 0, &pose, &genser_info) == SIM_KIN_OK); + penta_pose[0] = canonical(pose.tran.x); penta_pose[1] = canonical(pose.tran.y); penta_pose[2] = canonical(pose.tran.z); penta_pose[3] = canonical(pose.a); penta_pose[4] = canonical(pose.b); + penta_iterations = genser_info.iterations; penta_residual = genser_info.residual; penta_branch = genser_info.branch_id; + penta_hash = sim_kinematics_state_hash(&kinematics, output, 5, &pose); + penta_alt_status = sim_kinematics_forward_ex(&kinematics, output, 5, SIM_KIN_GENHEX_ALTERNATE_SEED, &penta_alt_pose, &genser_info); penta_alt_branch = genser_info.branch_id; + penta_nonpositive = sim_kinematics_forward(&kinematics, (double[]){0.0, 1.0, 1.0, 1.0, 1.0}, 5, &pose); + config.penta_initial_pose[3] = 0.0; config.penta_initial_pose[4] = 0.0; + config.penta_iteration_limit = 1; assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); penta_iter_limit_error = sim_kinematics_forward(&kinematics, penta_joints, 5, &pose); + config.penta_iteration_limit = 120; config.penta_max_error = 0.000001; assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); penta_max_error_status = sim_kinematics_forward(&kinematics, penta_joints, 5, &pose); + config.penta_max_error = 1000.0; config.limit_enabled[0] = 1; config.joint_min[0] = 0.0; config.joint_max[0] = 1.0; assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); penta_limit_error = sim_kinematics_inverse(&kinematics, &(sim_posemath_pose){.tran = {0.0, 500.0, 300.0}, .a = 2.0, .b = -3.0}, output, 5); + config.limit_enabled[0] = 0; config.penta_base[0][0] = 1.0; config.penta_base[0][1] = 1.0; config.penta_base[0][2] = 1.0; for (int duplicate = 1; duplicate < 5; ++duplicate) memcpy(config.penta_base[duplicate], config.penta_base[0], sizeof(config.penta_base[0])); assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); penta_singular = sim_kinematics_forward(&kinematics, penta_joints, 5, &pose); + + printf("{\"schema\":\"kinematics-coupled-samples.v1\"," + "\"corexy\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"rose\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f],\"branch\":%u,\"state_hash\":%llu}," + "\"maxkins\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"rotatekins\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"fiveaxiskins\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"xyzac_trt\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"xyzbc_trt\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"scara\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"puma\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"scorbot\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"genser\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu,\"iterations\":%u,\"residual\":%.12f}," + "\"lineardelta\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"rotarydelta\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"tripod\":{\"pose\":[%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f],\"state_hash\":%llu}," + "\"genhex\":{\"pose\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu,\"iterations\":%u,\"residual\":%.12f}," + "\"pentapod\":{\"pose\":[%.9f,%.9f,%.9f,%.9f,%.9f],\"inverse\":[%.9f,%.9f,%.9f,%.9f,%.9f],\"state_hash\":%llu,\"iterations\":%u,\"residual\":%.12f}," + "\"delta_edges\":{\"lineardelta\":{\"alternate_status\":%d,\"alternate_branch\":%u,\"alternate_pose\":[%.9f,%.9f,%.9f],\"no_solution\":%d,\"limit_error\":%d,\"geometry_error\":%d,\"branch\":%u,\"iterations\":%u}," + "\"rotarydelta\":{\"alternate_status\":%d,\"alternate_branch\":%u,\"alternate_pose\":[%.9f,%.9f,%.9f],\"singular\":%d,\"geometry_error\":%d,\"branch\":%u,\"iterations\":%u}," + "\"tripod\":{\"alternate_status\":%d,\"alternate_branch\":%u,\"alternate_pose\":[%.9f,%.9f,%.9f],\"no_solution\":%d,\"singular\":%d,\"limit_error\":%d,\"geometry_error\":%d,\"branch\":%u,\"iterations\":%u}," + "\"genhex\":{\"alternate_status\":%d,\"alternate_branch\":%u,\"alternate_pose\":[%.9f,%.9f,%.9f],\"nonpositive\":%d,\"iteration_limit\":%d,\"max_error\":%d,\"singular\":%d,\"limit_error\":%d,\"branch\":%u,\"iterations\":%u,\"residual\":%.12f}," + "\"pentapod\":{\"alternate_status\":%d,\"alternate_branch\":%u,\"alternate_pose\":[%.9f,%.9f,%.9f],\"nonpositive\":%d,\"iteration_limit\":%d,\"max_error\":%d,\"singular\":%d,\"limit_error\":%d,\"branch\":%u,\"iterations\":%u,\"residual\":%.12f}}}\n", + corexy_pose[0], corexy_pose[1], corexy_pose[2], corexy_joints[0], corexy_joints[1], corexy_joints[2], (unsigned long long)corexy_hash, + rose_pose[0], rose_pose[1], rose_pose[2], rose_joints[0], rose_joints[1], rose_joints[2], rose_branch, (unsigned long long)rose_hash, + max_pose[0], max_pose[1], max_pose[2], max_joints[0], max_joints[1], max_joints[2], max_joints[3], max_joints[4], max_joints[5], (unsigned long long)max_hash, + rotate_pose[0], rotate_pose[1], rotate_pose[2], rotate_joints[0], rotate_joints[1], rotate_joints[2], rotate_joints[3], rotate_joints[4], rotate_joints[5], (unsigned long long)rotate_hash, + fiveaxis_pose[0], fiveaxis_pose[1], fiveaxis_pose[2], fiveaxis_joints[0], fiveaxis_joints[1], fiveaxis_joints[2], fiveaxis_joints[3], fiveaxis_joints[4], fiveaxis_joints[5], fiveaxis_joints[6], (unsigned long long)fiveaxis_hash, + xyzac_pose[0], xyzac_pose[1], xyzac_pose[2], xyzac_joints[0], xyzac_joints[1], xyzac_joints[2], xyzac_joints[3], xyzac_joints[4], (unsigned long long)xyzac_hash, + xyzbc_pose[0], xyzbc_pose[1], xyzbc_pose[2], xyzbc_joints[0], xyzbc_joints[1], xyzbc_joints[2], xyzbc_joints[3], xyzbc_joints[4], (unsigned long long)xyzbc_hash, + scara_pose[0], scara_pose[1], scara_pose[2], scara_joints[0], scara_joints[1], scara_joints[2], scara_joints[3], scara_joints[4], scara_joints[5], (unsigned long long)scara_hash, + puma_pose[0], puma_pose[1], puma_pose[2], puma_joints[0], puma_joints[1], puma_joints[2], puma_joints[3], puma_joints[4], puma_joints[5], (unsigned long long)puma_hash, + scorbot_pose[0], scorbot_pose[1], scorbot_pose[2], scorbot_joints[0], scorbot_joints[1], scorbot_joints[2], scorbot_joints[3], scorbot_joints[4], (unsigned long long)scorbot_hash, + genser_pose[0], genser_pose[1], genser_pose[2], genser_joints[0], genser_joints[1], genser_joints[2], genser_joints[3], genser_joints[4], genser_joints[5], (unsigned long long)genser_hash, genser_info.iterations, genser_info.residual, + ldelta_pose[0], ldelta_pose[1], ldelta_pose[2], ldelta_joints[0], ldelta_joints[1], ldelta_joints[2], (unsigned long long)ldelta_hash, + rdelta_pose[0], rdelta_pose[1], rdelta_pose[2], rdelta_joints[0], rdelta_joints[1], rdelta_joints[2], (unsigned long long)rdelta_hash, + tripod_pose[0], tripod_pose[1], tripod_pose[2], tripod_joints[0], tripod_joints[1], tripod_joints[2], (unsigned long long)tripod_hash, + genhex_pose[0], genhex_pose[1], genhex_pose[2], genhex_pose[3], genhex_pose[4], genhex_pose[5], genhex_joints[0], genhex_joints[1], genhex_joints[2], genhex_joints[3], genhex_joints[4], genhex_joints[5], (unsigned long long)genhex_hash, genhex_iterations, genhex_residual, + penta_pose[0], penta_pose[1], penta_pose[2], penta_pose[3], penta_pose[4], penta_joints[0], penta_joints[1], penta_joints[2], penta_joints[3], penta_joints[4], (unsigned long long)penta_hash, penta_iterations, penta_residual, + ldelta_alt_status, ldelta_alt_branch, ldelta_alt_pose.tran.x, ldelta_alt_pose.tran.y, ldelta_alt_pose.tran.z, ldelta_no_solution, ldelta_limit_error, ldelta_geometry_status, ldelta_branch, ldelta_iterations, + rdelta_alt_status, rdelta_alt_branch, rdelta_alt_pose.tran.x, rdelta_alt_pose.tran.y, rdelta_alt_pose.tran.z, rdelta_singular, rdelta_geometry_status, rdelta_branch, rdelta_iterations, + tripod_alt_status, tripod_alt_branch, tripod_alt_pose.tran.x, tripod_alt_pose.tran.y, tripod_alt_pose.tran.z, tripod_no_solution, tripod_singular, tripod_limit_error, tripod_geometry_status, tripod_branch, delta_info.iterations, + genhex_alt_status, genhex_alt_branch, genhex_alt_pose.tran.x, genhex_alt_pose.tran.y, genhex_alt_pose.tran.z, genhex_nonpositive, genhex_iter_limit_error, genhex_max_error_status, genhex_singular, genhex_limit_error, genhex_branch, genhex_iterations, genhex_residual, + penta_alt_status, penta_alt_branch, penta_alt_pose.tran.x, penta_alt_pose.tran.y, penta_alt_pose.tran.z, penta_nonpositive, penta_iter_limit_error, penta_max_error_status, penta_singular, penta_limit_error, penta_branch, penta_iterations, penta_residual); +} + +int sim_kinematics_test_run(void) { + sim_kinematics kinematics = {0}; + sim_kinematics_config config = config_for(SIM_KIN_TRIVKINS, "XYZABCUVW"); + double joints[9] = {10, 20, 30, 4, 5, 6, 7, 8, 9}; + sim_posemath_pose pose = {0}; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, joints, 9); + + config = config_for(SIM_KIN_TRIVKINS, "xyyz"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){1, 2, 3, 4}, 4, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x - 1.0) < 1e-12); + assert(fabs(pose.tran.y - 2.0) < 1e-12); + assert(fabs(pose.tran.z - 4.0) < 1e-12); + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 4) == SIM_KIN_OK); + /* Duplicate Y maps to the first Y joint deterministically. */ + assert(fabs(joints[1] - joints[2]) < 1e-12); + assert(sim_kinematics_state_hash(&kinematics, joints, 4, &pose) == sim_kinematics_state_hash(&kinematics, joints, 4, &pose)); + + config = config_for(SIM_KIN_TRIVKINS, "XYZ"); + config.limit_enabled[1] = 1; config.joint_min[1] = -2.0; config.joint_max[1] = 2.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){0, 3, 0}, 3, &pose) == SIM_KIN_ERR_RANGE); + assert(sim_kinematics_home(&kinematics, joints, 3, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x) < 1e-12 && fabs(pose.tran.y) < 1e-12 && fabs(pose.tran.z) < 1e-12); + + /* Extra joints are configured but are not passed to kinematics. */ + config = config_for(SIM_KIN_TRIVKINS, "XYZ"); + config.joint_count = 4; + config.kinematics_joint_count = 3; + config.extra_joint_count = 1; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){1, 2, 3}, 3, &pose) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){1, 2, 3, 99}, 4, &pose) == SIM_KIN_ERR_CONFIGURATION); + assert(sim_kinematics_home(&kinematics, joints, 3, &pose) == SIM_KIN_OK); + + config = config_for(SIM_KIN_TRIVKINS, "XYZ"); + config.mode = SIM_KIN_MODE_FORWARD_ONLY; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 3) == SIM_KIN_ERR_UNSUPPORTED); + config.mode = SIM_KIN_MODE_INVERSE_ONLY; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){1, 2, 3}, 3, &pose) == SIM_KIN_ERR_UNSUPPORTED); + + config.mode = SIM_KIN_MODE_BOTH; + config.max_iterations = 25; + config.convergence_tolerance = 1e-10; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + { + sim_kinematics_result_info info = {0}; + assert(sim_kinematics_forward_ex(&kinematics, (double[]){1, 2, 3}, 3, 7, &pose, &info) == SIM_KIN_OK); + assert(info.inverse_flags == 7); + assert(sim_kinematics_inverse_ex(&kinematics, &pose, 3, 9, joints, &info) == SIM_KIN_OK); + assert(info.forward_flags == 9); + } + + config = config_for(SIM_KIN_XYZAC_TRT, "XYZAC"); + config.x_rot_point = 20; config.y_offset = 3; config.tool_offset = 100; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + joints[0] = 100; joints[1] = 50; joints[2] = 200; joints[3] = 30; joints[4] = 45; + round_trip(&kinematics, joints, 5); + + config = config_for(SIM_KIN_XYZBC_TRT, "XYZBC"); + config.x_offset = 5; config.z_offset = 2; config.tool_offset = 50; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + joints[0] = 100; joints[1] = 50; joints[2] = 200; joints[3] = 30; joints[4] = 45; + round_trip(&kinematics, joints, 5); + + config = config_for(SIM_KIN_XYZBCW, "XYZBCW"); + config.pivot_length = 250; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + joints[0] = 10; joints[1] = 20; joints[2] = 30; joints[3] = 35; joints[4] = 40; joints[5] = -2; + round_trip(&kinematics, joints, 6); + + assert(sim_kinematics_forward(&kinematics, (double[]){NAN, 0, 0, 0, 0, 0}, 6, &pose) == SIM_KIN_ERR_NONFINITE); + config.type = 99; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_ERR_UNKNOWN_TYPE); + config = config_for(SIM_KIN_XYZBC_TRT, "XYZBC"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + pose.a = 0; pose.b = 90; pose.c = 0; + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 5) == SIM_KIN_ERR_SINGULAR); + + config = config_for(SIM_KIN_COREXY, "XYZ"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){6, 2, 3}, 3, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x - 4.0) < 1e-12 && fabs(pose.tran.y - 2.0) < 1e-12); + round_trip(&kinematics, (double[]){6, 2, 3}, 3); + config = config_for(SIM_KIN_COREXY, "YZ"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_ERR_CONFIGURATION); + + { + sim_kinematics second = {0}; + sim_posemath_pose q2 = {{-1.0, 0.1, 7.0}, 0, 0, 0, 0, 0, 0}; + sim_posemath_pose q3 = {{-1.0, -0.1, 7.0}, 0, 0, 0, 0, 0, 0}; + uint64_t first_hash; + config = config_for(SIM_KIN_ROSE, "XYZ"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_init(&second, &config) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &q2, joints, 3) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &q3, joints, 3) == SIM_KIN_OK); + assert(kinematics.revolution_count == 1 && joints[2] > 180.0 && joints[2] < 190.0); + first_hash = sim_kinematics_state_hash(&kinematics, joints, 3, &q3); + assert(sim_kinematics_inverse(&kinematics, &q3, joints, 3) == SIM_KIN_OK); + assert(first_hash == sim_kinematics_state_hash(&kinematics, joints, 3, &q3)); + assert(sim_kinematics_inverse(&second, &q2, joints + 3, 3) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&second, &q3, joints + 3, 3) == SIM_KIN_OK); + assert(first_hash == sim_kinematics_state_hash(&second, joints + 3, 3, &q3)); + assert(sim_kinematics_inverse(&kinematics, &q2, joints, 3) == SIM_KIN_OK); + assert(kinematics.revolution_count == 0 && joints[2] > 170.0 && joints[2] < 180.0); + config.joint_count = 4; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_ERR_CONFIGURATION); + } + + config = config_for(SIM_KIN_MAXKINS, "XYZABC"); + config.pivot_length = 0.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){3, 4, 5, 0, 30, 90}, 6); + config.pivot_length = 0.666; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){0, 0, 5, 0, 30, 0}, 6, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x - 0.333) < 1e-12); + + config = config_for(SIM_KIN_ROTATEKINS, "XYZABC"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){3, 4, 5, 0, 0, 90}, 6); + assert(sim_kinematics_forward(&kinematics, (double[]){3, 4, 5, 0, 0, 90}, 6, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x - 4.0) < 1e-12 && fabs(pose.tran.y + 3.0) < 1e-12); + + config = config_for(SIM_KIN_5AXISKINS, "XYZBCWY"); + config.pivot_length = 250.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){10, 20, 30, 35, 40, -2, 20}, 7); + assert(sim_kinematics_forward(&kinematics, (double[]){10, 20, 30, 35, 40, -2, 20}, 7, &pose) == SIM_KIN_OK); + assert(fabs(pose.tran.x - 10.0 - (250.0 - 2.0) * sin((180.0 - 35.0) * 0.017453292519943295769) * cos(40.0 * 0.017453292519943295769)) < 1e-9); + config = config_for(SIM_KIN_5AXISKINS, "XYZBC"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_ERR_CONFIGURATION); + + config = config_for(SIM_KIN_SCARA, "XYZCAB"); + config.scara_d1 = 490.0; config.scara_d2 = 340.0; config.scara_d3 = 50.0; config.scara_d4 = 250.0; config.scara_d5 = 50.0; config.scara_d6 = 50.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){30, -40, 25, 15, 5, -3}, 6); + assert(sim_kinematics_forward(&kinematics, (double[]){30, -40, 25, 15, 5, -3}, 6, &pose) == SIM_KIN_OK); + assert(fabs(pose.c - 5.0) < 1e-9); + config = config_for(SIM_KIN_SCARA, "XYZC"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_ERR_CONFIGURATION); + config = config_for(SIM_KIN_SCARA, "XYZCAB"); + config.scara_d2 = 1.0; config.scara_d4 = 1.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + pose.tran.x = 10.0; pose.tran.y = 0.0; pose.tran.z = 0.0; pose.c = 0.0; + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 6) == SIM_KIN_ERR_RANGE); + + config = config_for(SIM_KIN_PUMA, "XYZABC"); + config.puma_a2 = 400.0; config.puma_a3 = 50.0; config.puma_d3 = 100.0; config.puma_d4 = 400.0; config.puma_d6 = 95.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){10, 20, -30, 40, 25, -15}, 6); + pose.tran.x = 0.0; pose.tran.y = 0.0; pose.tran.z = 0.0; pose.a = 0.0; pose.b = 0.0; pose.c = 0.0; + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 6) == SIM_KIN_ERR_RANGE || sim_kinematics_inverse(&kinematics, &pose, joints, 6) == SIM_KIN_ERR_SINGULAR); + + config = config_for(SIM_KIN_SCORBOT, "XYZAB"); + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){25, 35, -20, 10, -5}, 5); + pose.tran.x = 1000.0; pose.tran.y = 0.0; pose.tran.z = 0.0; + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 5) == SIM_KIN_ERR_RANGE); + + config = config_for(SIM_KIN_GENSER, "XYZABC"); + config.dh_joint_count = 6; config.max_iterations = 200; config.convergence_tolerance = 1e-7; + config.dh_a[0] = 0.0; config.dh_a[1] = 85.0; config.dh_a[2] = 380.0; config.dh_a[3] = 100.0; + config.dh_alpha[0] = 0.0; config.dh_alpha[1] = -1.5707963267948966; config.dh_alpha[2] = 0.0; config.dh_alpha[3] = -1.5707963267948966; config.dh_alpha[4] = 1.5707963267948966; config.dh_alpha[5] = -1.5707963267948966; + config.dh_d[0] = 350.0; config.dh_d[1] = 0.0; config.dh_d[2] = 0.0; config.dh_d[3] = 425.0; config.dh_d[4] = 0.0; config.dh_d[5] = 235.0; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + round_trip(&kinematics, (double[]){0, 10, -20, 30, 15, -10}, 6); + config.max_iterations = 1; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_OK); + assert(sim_kinematics_forward(&kinematics, (double[]){0, 10, -20, 30, 15, -10}, 6, &pose) == SIM_KIN_OK); + assert(sim_kinematics_inverse(&kinematics, &pose, joints, 6) == SIM_KIN_ERR_SINGULAR); + config.dh_alpha[0] = NAN; + assert(sim_kinematics_init(&kinematics, &config) == SIM_KIN_ERR_NONFINITE); + + emit_coupled_samples(); + return 0; +} diff --git a/wasm-core/tests/sim_kinematics_test_main.c b/wasm-core/tests/sim_kinematics_test_main.c new file mode 100644 index 0000000..45cd81c --- /dev/null +++ b/wasm-core/tests/sim_kinematics_test_main.c @@ -0,0 +1,5 @@ +int sim_kinematics_test_run(void); + +int main(void) { + return sim_kinematics_test_run(); +} diff --git a/wasm-core/tests/sim_motion_queue_test.c b/wasm-core/tests/sim_motion_queue_test.c new file mode 100644 index 0000000..393d290 --- /dev/null +++ b/wasm-core/tests/sim_motion_queue_test.c @@ -0,0 +1,36 @@ +#include "sim_motion_queue.h" + +#include + +static sim_posemath_segment line(double x0, double x1) { + sim_posemath_segment segment = { + {{x0, 0, 0}, 0, 0, 0, 0, 0, 0}, + {{x1, 0, 0}, 0, 0, 0, 0, 0, 0}, + {0, 0, 0}, {0, 0, 1}, 1.0, 1.0, SIM_POSEMATH_LINEAR, 0 + }; + return segment; +} + +int main(void) { + sim_motion_queue queue = {0}; + sim_motion_command command = {0}; + sim_motion_state state = {0}; + char canonical[512] = {0}; + uint32_t id = 0; + command.segment = line(0, 1); + command.tag = 42; + assert(sim_motion_init(&queue, 0.1, 10.0) == SIM_MOTION_OK); + assert(sim_motion_enqueue(&queue, &command, &id) == SIM_MOTION_OK && id == 1); + command.segment = line(1, 2); + assert(sim_motion_enqueue(&queue, &command, 0) == SIM_MOTION_OK); + assert(sim_motion_step(&queue) == SIM_MOTION_OK); + assert(sim_motion_read_state(&queue, &state) == SIM_MOTION_OK); + assert(state.tick == 1 && state.queue_depth == 2 && state.position.tran.x > 0.09); + assert(sim_motion_state_hash(&queue) != 0); + assert(sim_motion_canonical(&queue, canonical, sizeof(canonical)) > 1); + command.segment = line(9, 10); + assert(sim_motion_enqueue(&queue, &command, 0) == SIM_MOTION_ERR_STATE); + command.segment.motion_type = 99; + assert(sim_motion_enqueue(&queue, &command, 0) == SIM_MOTION_ERR_MOTION_TYPE); + return 0; +} diff --git a/wasm-core/tests/sim_posemath_test.c b/wasm-core/tests/sim_posemath_test.c index e3f5ef2..abc8313 100644 --- a/wasm-core/tests/sim_posemath_test.c +++ b/wasm-core/tests/sim_posemath_test.c @@ -16,8 +16,35 @@ int main(void) { assert(output.x == 6.5 && output.y == 7.0 && output.z == 5.0); assert(sim_posemath_line_point(&input, &end, 1.1, &output) == SIM_POSEMATH_ERR_RANGE); input.x = NAN; - assert(sim_posemath_normalize(&input, &output) == SIM_POSEMATH_ERR_ARGUMENT); + assert(sim_posemath_normalize(&input, &output) == SIM_POSEMATH_ERR_NONFINITE); input.x = 0.0; input.y = 0.0; input.z = 0.0; assert(sim_posemath_normalize(&input, &output) == SIM_POSEMATH_ERR_DEGENERATE); + + { + sim_posemath_pose start = {{0.0, 0.0, 0.0}, 0, 0, 0, 0, 0, 0}; + sim_posemath_pose finish = {{2.0, 0.0, 0.0}, 1, 2, 3, 4, 5, 6}; + sim_posemath_pose point = {0}; + sim_posemath_segment segment = {start, finish, {0, 0, 0}, {0, 0, 1}, 1.0, 2.0, SIM_POSEMATH_LINEAR, 0}; + sim_tp planner = {0}; + sim_tp_state first = {0}; + sim_tp_state second = {0}; + uint32_t id = 0; + assert(sim_posemath_pose_line_point(&start, &finish, 0.5, &point) == SIM_POSEMATH_OK); + assert(point.tran.x == 1.0 && point.a == 0.5 && point.w == 3.0); + assert(sim_posemath_segment_validate(&segment) == SIM_POSEMATH_OK); + assert(sim_posemath_segment_point(&segment, 0.5, &point) == SIM_POSEMATH_OK); + assert(sim_tp_init(&planner, 0.1, 10.0, 10.0) == SIM_POSEMATH_OK); + assert(sim_tp_enqueue(&planner, &segment, &id) == SIM_POSEMATH_OK && id == 1); + assert(sim_tp_step(&planner) == SIM_POSEMATH_OK); + assert(sim_tp_read_state(&planner, &first) == SIM_POSEMATH_OK); + assert(sim_tp_state_hash(&planner) == sim_posemath_hash_state(&first)); + assert(sim_tp_read_state(&planner, &second) == SIM_POSEMATH_OK); + assert(sim_posemath_hash_state(&first) == sim_posemath_hash_state(&second)); + segment.motion_type = 99; + assert(sim_posemath_segment_validate(&segment) == SIM_POSEMATH_ERR_MOTION_TYPE); + segment.motion_type = SIM_POSEMATH_LINEAR; + segment.velocity = 11.0; + assert(sim_tp_enqueue(&planner, &segment, 0) == SIM_POSEMATH_ERR_RANGE); + } return 0; }