Files
linuxcncWebWASM/coverage/kinematics-mapping-contract.json

93 lines
2.3 KiB
JSON

{
"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"
}