接入 LinuxCNC TP 运行反馈
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { readFile } from "node:fs/promises";
|
||||
|
||||
import {
|
||||
applyIniConfigToProfile,
|
||||
parseLinuxCncIni,
|
||||
} from "../../app/src/runtime/linuxcnc-ini-runtime.js";
|
||||
import { xyzacTrtProfile } from "../../app/src/profiles/xyzac-trt.js";
|
||||
import { xyzbcTrtProfile } from "../../app/src/profiles/xyzbc-trt.js";
|
||||
|
||||
const xyzacIniText = await readFile(
|
||||
new URL("../../../wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini", import.meta.url),
|
||||
"utf8",
|
||||
);
|
||||
const xyzbcIniText = await readFile(
|
||||
new URL("../../../wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini", import.meta.url),
|
||||
"utf8",
|
||||
);
|
||||
|
||||
const xyzacIni = parseLinuxCncIni(xyzacIniText, {
|
||||
path: xyzacTrtProfile.iniPath,
|
||||
profileId: xyzacTrtProfile.id,
|
||||
});
|
||||
assert.equal(xyzacIni.apiName, "web-rtcp-5axis-linuxcnc-ini-config");
|
||||
assert.equal(xyzacIni.validation.ready, true);
|
||||
assert.equal(xyzacIni.machineName, "sim-xyzac-trt-kins (switchkins)");
|
||||
assert.equal(xyzacIni.kinematics.name, "xyzac-trt-kins");
|
||||
assert.equal(xyzacIni.kinematicsParameters.sparm, "identityfirst");
|
||||
assert.equal(xyzacIni.kinematicsParameters.joints, 5);
|
||||
assert.equal(xyzacIni.traj.coordinates, "XYZAC");
|
||||
assert.equal(xyzacIni.axisLimits.A.max, 50);
|
||||
assert.equal(xyzacIni.jointConfig[3].axis, "A");
|
||||
assert.equal(xyzacIni.jointConfig[4].max, 36000);
|
||||
assert.deepEqual(xyzacIni.halui.mdiCommands, ["M429", "M428", "M430"]);
|
||||
assert.equal(xyzacIni.rs274ngc.remaps.map((remap) => remap.code).join(","), "M428,M429,M430");
|
||||
assert.equal(xyzacIni.hal.initialSets.some((set) => set.pin === "y-offset" && set.value === 20), true);
|
||||
|
||||
const derivedXyzac = applyIniConfigToProfile(xyzacTrtProfile, xyzacIni);
|
||||
assert.equal(derivedXyzac.machineName, xyzacIni.machineName);
|
||||
assert.equal(derivedXyzac.traj.coordinates, "XYZAC");
|
||||
assert.equal(derivedXyzac.axisLimits.X.min, -200);
|
||||
assert.equal(derivedXyzac.jointConfig.length, 5);
|
||||
assert.equal(derivedXyzac.linuxCncIniConfig.path.endsWith("xyzac-trt.ini"), true);
|
||||
|
||||
const xyzbcIni = parseLinuxCncIni(xyzbcIniText, {
|
||||
path: xyzbcTrtProfile.iniPath,
|
||||
profileId: xyzbcTrtProfile.id,
|
||||
});
|
||||
assert.equal(xyzbcIni.validation.ready, true);
|
||||
assert.equal(xyzbcIni.kinematics.name, "xyzbc-trt-kins");
|
||||
assert.equal(xyzbcIni.kinematicsModuleId, "xyzbc-trt");
|
||||
assert.equal(xyzbcIni.traj.coordinates, "XYZBC");
|
||||
assert.equal(xyzbcIni.axisLimits.B.max, 36000);
|
||||
assert.equal(xyzbcIni.jointConfig[3].axis, "B");
|
||||
assert.equal(xyzbcIni.kinematicsParameters.switchkinsTypes[1].webKinsType, "tcp-xyzbc");
|
||||
|
||||
console.log("linuxcnc_ini_runtime_smoke=ok");
|
||||
Reference in New Issue
Block a user