mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-07 23:17:35 -06:00
ENH: calibration: filaments compatibility
Change-Id: Ibdbf25905b7f0fff2371247437624ec4645b35ee
This commit is contained in:
parent
0cad88309c
commit
257e2e0bbb
4 changed files with 217 additions and 160 deletions
|
@ -509,19 +509,25 @@ std::string AppConfig::load()
|
|||
}
|
||||
}
|
||||
} else if (it.key() == "calis") {
|
||||
for (auto &j : it.value()) {
|
||||
std::string str = j.dump();
|
||||
for (auto &calis_j : it.value()) {
|
||||
PrinterCaliInfo cali_info;
|
||||
cali_info.dev_id = j["dev_id"].get<std::string>();
|
||||
cali_info.mode = CalibMode(j["cali_mode"].get<int>());
|
||||
cali_info.state = CalibState(j["cali_state"].get<int>());
|
||||
cali_info.filament_preset = j["preset"].get<std::string>();
|
||||
if (calis_j.contains("dev_id"))
|
||||
cali_info.dev_id = calis_j["dev_id"].get<std::string>();
|
||||
if (calis_j.contains("cali_mode"))
|
||||
cali_info.mode = CalibMode(calis_j["cali_mode"].get<int>());
|
||||
if (calis_j.contains("cali_state"))
|
||||
cali_info.state = CalibState(calis_j["cali_state"].get<int>());
|
||||
if (calis_j.contains("preset")) {
|
||||
for (auto cali_it = calis_j["preset"].begin(); cali_it != calis_j["preset"].end(); cali_it++) {
|
||||
int tray_id = cali_it.value()["tray_id"].get<int>();
|
||||
std::string name = cali_it.value()["preset_name"].get<std::string>();
|
||||
cali_info.filament_presets[tray_id] = name;
|
||||
}
|
||||
}
|
||||
//if (j.contains("nozzle"))
|
||||
//cali_info.nozzle_dia = j["nozzle"].get<float>();
|
||||
//if (j.contains("bed_type"))
|
||||
//cali_info.bed_type = j["bed_type"].get<int>();
|
||||
if (j.contains("tray_ids"))
|
||||
cali_info.tray_ids = j["tray_ids"].get<std::vector<int>>();
|
||||
m_printer_cali_infos.emplace_back(cali_info);
|
||||
}
|
||||
} else {
|
||||
|
@ -630,17 +636,19 @@ void AppConfig::save()
|
|||
}
|
||||
|
||||
for (const auto &cali_info : m_printer_cali_infos) {
|
||||
json json;
|
||||
json["dev_id"] = cali_info.dev_id;
|
||||
json["cali_mode"] = int(cali_info.mode);
|
||||
json["cali_state"] = int(cali_info.state);
|
||||
json["preset"] = cali_info.filament_preset;
|
||||
for (int tray_id : cali_info.tray_ids) {
|
||||
json["tray_ids"].push_back(tray_id);
|
||||
json cali_json;
|
||||
cali_json["dev_id"] = cali_info.dev_id;
|
||||
cali_json["cali_mode"] = int(cali_info.mode);
|
||||
cali_json["cali_state"] = int(cali_info.state);
|
||||
for (auto filament_preset : cali_info.filament_presets) {
|
||||
json preset_json;
|
||||
preset_json["tray_id"] = filament_preset.first;
|
||||
preset_json["preset_name"] = filament_preset.second;
|
||||
cali_json["preset"].push_back(preset_json);
|
||||
}
|
||||
//json["nozzle"] = cali_info.nozzle_dia;
|
||||
//json["bed_type"] = cali_info.bed_type;
|
||||
j["calis"].push_back(json);
|
||||
j["calis"].push_back(cali_json);
|
||||
}
|
||||
|
||||
// Write the other categories.
|
||||
|
@ -978,10 +986,9 @@ void AppConfig::save_printer_cali_infos(const PrinterCaliInfo &cali_info)
|
|||
if (iter == m_printer_cali_infos.end()) {
|
||||
m_printer_cali_infos.emplace_back(cali_info);
|
||||
} else {
|
||||
(*iter).filament_preset = cali_info.filament_preset;
|
||||
(*iter).filament_presets = cali_info.filament_presets;
|
||||
(*iter).mode = cali_info.mode;
|
||||
(*iter).state = cali_info.state;
|
||||
(*iter).tray_ids = cali_info.tray_ids;
|
||||
//(*iter).nozzle_dia = cali_info.nozzle_dia;
|
||||
//(*iter).bed_type = cali_info.bed_type;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue