FIX: the bed_type is incorrect for flowrate cali

jira: STUDIO-14901
Change-Id: I8a1fcdf5eb051a81f0fcd0c5d9a590bce2646994
(cherry picked from commit 49edbe52572137ff79f1b17dab261d5b800b2499)
This commit is contained in:
zhimin.zeng
2025-09-26 17:41:21 +08:00
committed by Noisyfox
parent d4e1d7dfb2
commit 0964a9a85c
4 changed files with 10 additions and 5 deletions

View File

@@ -646,6 +646,7 @@ std::string AppConfig::load()
preset_info.nozzle_volume_type = NozzleVolumeType(cali_it.value()["nozzle_volume_type"].get<int>());
preset_info.nozzle_diameter = cali_it.value()["nozzle_diameter"].get<float>();
preset_info.filament_id = cali_it.value()["filament_id"].get<std::string>();
preset_info.bed_type = BedType(cali_it.value()["bed_type"].get<int>());
preset_info.setting_id = cali_it.value()["setting_id"].get<std::string>();
preset_info.name = cali_it.value()["name"].get<std::string>();
cali_info.selected_presets.push_back(preset_info);
@@ -790,6 +791,7 @@ void AppConfig::save()
preset_json["tray_id"] = filament_preset.tray_id;
preset_json["extruder_id"] = filament_preset.extruder_id;
preset_json["nozzle_volume_type"] = int(filament_preset.nozzle_volume_type);
preset_json["bed_type"] = int(filament_preset.bed_type);
preset_json["nozzle_diameter"] = filament_preset.nozzle_diameter;
preset_json["filament_id"] = filament_preset.filament_id;
preset_json["setting_id"] = filament_preset.setting_id;

View File

@@ -81,6 +81,7 @@ public:
int tray_id;
int extruder_id;
NozzleVolumeType nozzle_volume_type;
BedType bed_type;
float nozzle_diameter;
std::string filament_id;
std::string setting_id;

View File

@@ -375,7 +375,7 @@ bool CalibrationWizard::save_preset_with_index(const std::string &old_preset_nam
return true;
}
void CalibrationWizard::cache_preset_info(MachineObject* obj, float nozzle_dia)
void CalibrationWizard::cache_preset_info(MachineObject *obj, float nozzle_dia, BedType bed_type)
{
if (!obj) return;
@@ -388,6 +388,7 @@ void CalibrationWizard::cache_preset_info(MachineObject* obj, float nozzle_dia)
CaliPresetInfo result;
result.tray_id = item.first;
result.nozzle_diameter = nozzle_dia;
result.bed_type = bed_type;
result.filament_id = item.second->filament_id;
result.setting_id = item.second->setting_id;
result.name = item.second->name;
@@ -696,7 +697,7 @@ void PressureAdvanceWizard::on_cali_start()
float nozzle_dia = -1;
preset_page->get_preset_info(nozzle_dia, plate_type);
CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia);
CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type);
if (/*nozzle_dia < 0 || */ plate_type == BedType::btDefault) {
BOOST_LOG_TRIVIAL(error) << "CaliPreset: get preset info, nozzle and plate type error";
return;
@@ -1207,7 +1208,7 @@ void FlowRateWizard::on_cali_start(CaliPresetStage stage, float cali_value, Flow
msg_dlg.ShowModal();
return;
}
CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia);
CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type);
}
else if (from_page == FlowRatioCaliSource::FROM_COARSE_PAGE) {
selected_filaments = get_cached_selected_filament(curr_obj);
@@ -1278,6 +1279,7 @@ void FlowRateWizard::on_cali_start(CaliPresetStage stage, float cali_value, Flow
int selected_tray_id = curr_obj->selected_cali_preset.front().tray_id;
PresetCollection *filament_presets = &wxGetApp().preset_bundle->filaments;
Preset* preset = filament_presets->find_preset(curr_obj->selected_cali_preset.front().name);
plate_type = curr_obj->selected_cali_preset.front().bed_type;
if (preset) {
selected_filaments.insert(std::make_pair(selected_tray_id, preset));
}
@@ -1673,7 +1675,7 @@ void MaxVolumetricSpeedWizard::on_cali_start()
preset_page->get_preset_info(nozzle_dia, plate_type);
CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia);
CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type);
wxArrayString values = preset_page->get_custom_range_values();
Calib_Params params;

View File

@@ -69,7 +69,7 @@ public:
bool save_preset(const std::string &old_preset_name, const std::string &new_preset_name, const std::map<std::string, ConfigOption *> &key_values, wxString& message);
bool save_preset_with_index(const std::string &old_preset_name, const std::string &new_preset_name, const std::map<std::string, ConfigIndexValue> &key_values, wxString &message);
virtual void cache_preset_info(MachineObject* obj, float nozzle_dia);
virtual void cache_preset_info(MachineObject *obj, float nozzle_dia, BedType bed_type);
virtual void recover_preset_info(MachineObject *obj);
virtual void back_preset_info(MachineObject *obj, bool cali_finish, bool back_cali_flag = true);