ENH: check if the custom k value will be used, and show warning

jira: [STUDIO-10970]
Change-Id: If67ef695340e6bed38604d92ea86a4b0d5e57bdf
This commit is contained in:
xin.zhang 2025-03-19 18:03:18 +08:00 committed by lane.wei
parent 90a58ae4c6
commit 8b775f5c2e
2 changed files with 50 additions and 9 deletions

View File

@ -1938,6 +1938,9 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
} else if (status == PrintStatusTPUUnsupportAutoCali) { } else if (status == PrintStatusTPUUnsupportAutoCali) {
wxString msg_text = _L("TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics calibration."); wxString msg_text = _L("TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics calibration.");
update_print_status_msg(msg_text, false, false, true); update_print_status_msg(msg_text, false, false, true);
} else if (status == PrintStatusWarningKvalueNotUsed && !params.empty()) {
wxString msg_text = _L("Custom K value of { %s } will not be used since dynamic flow calibration is enabled.");
update_print_status_msg(wxString::Format(msg_text, params[0]), false, true, true);
} }
// m_panel_warn m_simplebook // m_panel_warn m_simplebook
@ -3256,6 +3259,37 @@ void SelectMachineDialog::update_filament_change_count()
Fit(); Fit();
} }
static wxString _check_kval_not_default(const MachineObject* obj, const std::vector<FilamentInfo> &mapping_result)
{
if (!obj) { return wxEmptyString;}
wxString ams_names;
for (const auto& info : mapping_result) {
auto ams_iter = obj->amsList.find(info.ams_id);
if (ams_iter == obj->amsList.end()) { continue; }
auto tray_iter = ams_iter->second->trayList.find(std::to_string(info.tray_id));
if (tray_iter == ams_iter->second->trayList.end()) { continue; }
if (tray_iter->second->cali_idx == -1) { continue; } /*-1 means default*/
wxString ams_name;
if (info.tray_id == VIRTUAL_TRAY_MAIN_ID) {
ams_name = "Right-Ext";
} else if (info.tray_id == VIRTUAL_TRAY_DEPUTY_ID) {
ams_name = "Left-Ext";
} else {
ams_name = wxGetApp().transition_tridid(info.tray_id);
}
if (!ams_names.empty()) { ams_names += ", ";}
ams_names += ams_name;
}
return ams_names;
}
void SelectMachineDialog::update_show_status() void SelectMachineDialog::update_show_status()
{ {
// refreshing return // refreshing return
@ -3606,29 +3640,35 @@ void SelectMachineDialog::update_show_status()
if (m_ams_mapping_res) { if (m_ams_mapping_res) {
if (has_timelapse_warning()) { if (has_timelapse_warning()) {
show_status(PrintDialogStatus::PrintStatusTimelapseWarning); show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
}
else {
show_status(PrintDialogStatus::PrintStatusAmsMappingSuccess);
}
return; return;
} }
}
else { else {
if (obj_->is_valid_mapping_result(m_ams_mapping_result)) { if (obj_->is_valid_mapping_result(m_ams_mapping_result)) {
if (!has_tips(obj_)){ if (!has_tips(obj_)){
if (has_timelapse_warning()) { if (has_timelapse_warning()) {
show_status(PrintDialogStatus::PrintStatusTimelapseWarning); show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
}
else {
show_status(PrintDialogStatus::PrintStatusAmsMappingValid);
}
return; return;
} }
} }
}
else { else {
show_status(PrintDialogStatus::PrintStatusAmsMappingInvalid); show_status(PrintDialogStatus::PrintStatusAmsMappingInvalid);
return; return;
} }
} }
/*STUDIO-10970 check the k value and flow cali option*/
if (m_checkbox_list["flow_cali"]->getValue() != "off") {
const auto &not_default_ams_names = _check_kval_not_default(obj_, m_ams_mapping_result);
if (!not_default_ams_names.empty()) {
std::vector<wxString> params{not_default_ams_names};
show_status(PrintDialogStatus::PrintStatusWarningKvalueNotUsed, params);
return;
}
}
update_print_status_msg(wxEmptyString, false, true, true);
} }
bool SelectMachineDialog::has_timelapse_warning() bool SelectMachineDialog::has_timelapse_warning()

View File

@ -104,7 +104,8 @@ enum PrintDialogStatus {
PrintStatusPublicInitFailed, PrintStatusPublicInitFailed,
PrintStatusPublicUploadFiled, PrintStatusPublicUploadFiled,
PrintStatusInvalidMapping, PrintStatusInvalidMapping,
PrintStatusTPUUnsupportAutoCali PrintStatusTPUUnsupportAutoCali,
PrintStatusWarningKvalueNotUsed,
}; };
class Material class Material