补齐 tooldata 非随机同步 probe

This commit is contained in:
cnc
2026-06-05 22:40:34 +08:00
parent ff2980569c
commit 71c61fca84

View File

@@ -89,6 +89,42 @@ int main() {
return 9;
}
tooldata_init(false);
std::string nonrandom_path_template = make_temp_template("cnc_tooldata_common_nonrandom_probe_XXXXXX");
std::vector<char> nonrandom_path(nonrandom_path_template.begin(), nonrandom_path_template.end());
nonrandom_path.push_back('\0');
const int nonrandom_fd = mkstemp(nonrandom_path.data());
if (nonrandom_fd < 0) {
return 16;
}
FILE *nonrandom_fp = fdopen(nonrandom_fd, "w");
if (!nonrandom_fp) {
close(nonrandom_fd);
std::remove(nonrandom_path.data());
return 17;
}
std::fputs("T-1 P5 Z4.25\n", nonrandom_fp);
std::fclose(nonrandom_fp);
if (tooldata_load(nonrandom_path.data()) != 0) {
std::remove(nonrandom_path.data());
return 18;
}
std::remove(nonrandom_path.data());
// LinuxCNC source basis: src/emc/tooldata/tooldata_common.cc
// tooldata_load() mirrors a matching nonrandom table entry into spindle
// pocket 0 after tooldata_read_entry() assigns fake pocket indices.
CANON_TOOL_TABLE nonrandom_spindle = tooldata_entry_init();
if (tooldata_get(&nonrandom_spindle, 0) != IDX_OK) {
return 19;
}
if (nonrandom_spindle.toolno != -1 || nonrandom_spindle.pocketno != 5 ||
nonrandom_spindle.offset.tran.z != 4.25) {
return 20;
}
tooldata_init(true);
tooldata_set_db(DB_ACTIVE);
if (tooldata_load(path.data()) != -1) {
return 10;