Guard browser direct non-random generated tool-table

This commit is contained in:
2026-06-14 06:56:41 +08:00
parent e5ea24729c
commit 5cf6f8f339
2 changed files with 114 additions and 32 deletions

View File

@@ -4619,6 +4619,23 @@
];
}
function directToolTableResultLines(operation, tools, extraLines = []) {
return [
`tooldata_${operation}=0`,
...extraLines,
...tools.flatMap((tool) => tool.resultLines),
];
}
function directToolTableTextLines(tools) {
return tools.flatMap((tool) => [
`T${tool.toolNo}`,
`P${tool.pocketNo}`,
...(tool.extraTextLines ?? []),
tool.comment,
]);
}
function opfsRandomToolTableResultLines(operation, tools) {
return [
...(operation === "load" ? ["tooldata_random_toolchanger=1"] : []),
@@ -9238,12 +9255,11 @@
"",
].join("\n"),
);
verifyExpectedOutput(
"load_tool_table_direct",
interp.loadToolTable(browserToolTablePath),
[
"tooldata_load=0",
"tooldata_last_index=2",
const browserDirectFinishTool = {
toolNo: "2",
pocketNo: "7",
comment: ";browser direct finish tool",
resultLines: [
"tool_1.toolno=2",
"tool_1.pocketno=7",
"tool_1.z=3.125",
@@ -9252,37 +9268,46 @@
"tool_1.backangle=34",
"tool_1.orientation=4",
"tool_1.comment=browser direct finish tool",
"tool_2.toolno=5",
"tool_2.pocketno=9",
"tool_2.comment=browser direct rough tool",
"tool_index_for_tool_2=1",
].join("\n"),
);
verifyExpectedOutput(
"save_tool_table_direct",
interp.saveToolTable(browserToolTablePath),
[
"tooldata_save=0",
"tool_1.toolno=2",
"tool_2.toolno=5",
].join("\n"),
);
verifyExpectedOutput(
"saved_tool_table_direct_text",
interp.readTextFile(browserToolTablePath),
[
"T2",
"P7",
],
extraTextLines: [
"Z+3.125000",
"D+1.500000",
"I+12.000000",
"J+34.000000",
"Q4",
";browser direct finish tool",
"T5",
"P9",
";browser direct rough tool",
].join("\n"),
],
};
const browserDirectRoughTool = {
toolNo: "5",
pocketNo: "9",
comment: ";browser direct rough tool",
resultLines: [
"tool_2.toolno=5",
"tool_2.pocketno=9",
"tool_2.comment=browser direct rough tool",
],
};
const browserDirectTools = [browserDirectFinishTool, browserDirectRoughTool];
verifyExpectedOutput(
"load_tool_table_direct",
interp.loadToolTable(browserToolTablePath),
directToolTableResultLines("load", browserDirectTools, [
"tooldata_last_index=2",
"tool_index_for_tool_2=1",
]).join("\n"),
);
verifyExpectedOutput(
"save_tool_table_direct",
interp.saveToolTable(browserToolTablePath),
directToolTableResultLines("save", [
{ resultLines: ["tool_1.toolno=2"] },
{ resultLines: ["tool_2.toolno=5"] },
]).join("\n"),
);
verifyExpectedOutput(
"saved_tool_table_direct_text",
interp.readTextFile(browserToolTablePath),
directToolTableTextLines(browserDirectTools).join("\n"),
);
const browserRandomToolTablePath = writeGeneratedToolTableFixture(