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