mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-09 18:27:00 +00:00
filament_id v4.1: resolve retired QD_* ids in the Qidi box miss path
QidiPrinterAgent composes QD_<series>_<vendor>_<typeidx> setting ids from device enums and previously degraded any slot whose id matched no visible preset to generic-by-type. Plan v4.2 retires every QD_* preset id to the succession ledger, so insert the ledger walk between the direct match and the generic fallback: a composed QD_* id now forwards to its family's minted OF* successor exactly like every other retired id. Behavior-neutral until the ids are actually retired (the ledger holds no QD_* keys yet, and live QD_* presets still match directly). Also documents the code<->ledger lockstep on the hardcoded non-numeric- series fallback table (QD_1_0_1/_11/_41/_50) and adds a C++ test pinning that the succession walk is key-format agnostic. Gates: libslic3r_tests [filament_id] 14 assertions green; libslic3r_gui compiles.
This commit is contained in:
@@ -34,6 +34,14 @@ TEST_CASE("filament_id succession follows forwarding chains", "[Preset][filament
|
||||
CHECK(follow_filament_id_succession("OFchainB", forwards) == "OFlive00");
|
||||
CHECK(follow_filament_id_succession("OFchainC", forwards) == "OFlive00");
|
||||
}
|
||||
|
||||
// QidiPrinterAgent resolves device-composed QD_* protocol ids through this same walk;
|
||||
// the map key format carries no OF assumption.
|
||||
SECTION("device-protocol QD_* keys forward like any other id") {
|
||||
const std::map<std::string, std::string> qd = {{"QD_2_1_11", "OFnew001"}};
|
||||
CHECK(follow_filament_id_succession("QD_2_1_11", qd) == "OFnew001");
|
||||
CHECK(follow_filament_id_succession("QD_2_1_12", qd).empty());
|
||||
}
|
||||
}
|
||||
|
||||
// Cycles are a ledger-validation error (script check 9) and never ship, but the client
|
||||
|
||||
Reference in New Issue
Block a user