按规划持续工作
结论:浏览器 interpreter smoke 和 INI panel UI 已接入 vendored LinuxCNC 五轴 switchkins remap 执行路径,只复制 LinuxCNC sample machine 文件到 WASM FS 并调用 SDK C ABI;host 聚合 smoke 通过,未新增 JavaScript M428/M429/M430 或运动学语义。
This commit is contained in:
@@ -93,6 +93,50 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function writeFetchedTextFile(interp, sourcePath, wasmPath) {
|
||||
interp.writeTextFile(wasmPath, await fetchText(sourcePath));
|
||||
}
|
||||
|
||||
async function writeFiveAxisTrtMachineFiles(interp) {
|
||||
const sourceDir =
|
||||
"../../vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting";
|
||||
const wasmDir = "/work/browser-fiveaxis/table-rotary-tilting";
|
||||
const remapFiles = [
|
||||
"428remap.ngc",
|
||||
"429remap.ngc",
|
||||
"430remap.ngc",
|
||||
"centering.ngc",
|
||||
"helix_ac.ngc",
|
||||
"helix_bc.ngc",
|
||||
"xyzac_switchkins_sub.ngc",
|
||||
"xyzbc_switchkins_sub.ngc",
|
||||
];
|
||||
|
||||
await writeFetchedTextFile(interp, `${sourceDir}/xyzac-trt.ini`, `${wasmDir}/xyzac-trt.ini`);
|
||||
await writeFetchedTextFile(interp, `${sourceDir}/xyzbc-trt.ini`, `${wasmDir}/xyzbc-trt.ini`);
|
||||
|
||||
for (const filename of remapFiles) {
|
||||
await writeFetchedTextFile(
|
||||
interp,
|
||||
`${sourceDir}/remap_subs/${filename}`,
|
||||
`${wasmDir}/remap_subs/${filename}`,
|
||||
);
|
||||
}
|
||||
|
||||
await writeFetchedTextFile(
|
||||
interp,
|
||||
`${sourceDir}/demos/xyzac_switchkins.ngc`,
|
||||
`${wasmDir}/demos/xyzac_switchkins.ngc`,
|
||||
);
|
||||
await writeFetchedTextFile(
|
||||
interp,
|
||||
`${sourceDir}/demos/xyzbc_switchkins.ngc`,
|
||||
`${wasmDir}/demos/xyzbc_switchkins.ngc`,
|
||||
);
|
||||
|
||||
return wasmDir;
|
||||
}
|
||||
|
||||
async function verifyRejects(fixtureName, operation, expectedPattern) {
|
||||
try {
|
||||
await operation();
|
||||
@@ -310,6 +354,48 @@
|
||||
baselineIniExpectedText,
|
||||
);
|
||||
|
||||
const fiveAxisTrtDir = await writeFiveAxisTrtMachineFiles(interp);
|
||||
verifyExpectedOutput(
|
||||
"browser_fiveaxis_xyzac_switchkins",
|
||||
interp.runFiveAxisRemapFile(
|
||||
`${fiveAxisTrtDir}/demos/xyzac_switchkins.ngc`,
|
||||
`${fiveAxisTrtDir}/xyzac-trt.ini`,
|
||||
),
|
||||
[
|
||||
"fiveaxis_ini_open=1",
|
||||
"fiveaxis_parse_remap_1=0",
|
||||
"fiveaxis_parse_remap_2=0",
|
||||
"fiveaxis_parse_remap_3=0",
|
||||
"fiveaxis_file_open=0",
|
||||
"fiveaxis_file_read_count=620",
|
||||
"fiveaxis_file_execute_count=620",
|
||||
"fiveaxis_file_finish_count=21",
|
||||
"fiveaxis_file_reached_exit=1",
|
||||
"fiveaxis_hal_switchkins: rc=0 found=1 value=0",
|
||||
"fiveaxis_linuxcnc_remap_file_execute=1",
|
||||
].join("\n"),
|
||||
);
|
||||
verifyExpectedOutput(
|
||||
"browser_fiveaxis_xyzbc_switchkins",
|
||||
interp.runFiveAxisRemapFile(
|
||||
`${fiveAxisTrtDir}/demos/xyzbc_switchkins.ngc`,
|
||||
`${fiveAxisTrtDir}/xyzbc-trt.ini`,
|
||||
),
|
||||
[
|
||||
"fiveaxis_ini_open=1",
|
||||
"fiveaxis_parse_remap_1=0",
|
||||
"fiveaxis_parse_remap_2=0",
|
||||
"fiveaxis_parse_remap_3=0",
|
||||
"fiveaxis_file_open=0",
|
||||
"fiveaxis_file_read_count=620",
|
||||
"fiveaxis_file_execute_count=620",
|
||||
"fiveaxis_file_finish_count=21",
|
||||
"fiveaxis_file_reached_exit=1",
|
||||
"fiveaxis_hal_switchkins: rc=0 found=1 value=0",
|
||||
"fiveaxis_linuxcnc_remap_file_execute=1",
|
||||
].join("\n"),
|
||||
);
|
||||
|
||||
verifyExpectedOutput(
|
||||
"restore_parameters_missing_file",
|
||||
interp.restoreParameters("/work/browser-missing.var"),
|
||||
|
||||
Reference in New Issue
Block a user