ENH: split the status

jira: [STUDIO-10949]
Change-Id: Ic93ae9d13dff2f5d72aef4e0f5a1250581224a18
This commit is contained in:
xin.zhang 2025-03-24 10:47:43 +08:00 committed by lane.wei
parent 7af3eba500
commit cc5b696d8d
2 changed files with 76 additions and 59 deletions

View File

@ -1793,11 +1793,9 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
} else if (status == PrintDialogStatus::PrintStatusReading) { } else if (status == PrintDialogStatus::PrintStatusReading) {
wxString msg_text = _L("Synchronizing device information"); wxString msg_text = _L("Synchronizing device information");
update_print_status_msg(msg_text, true, false, true); update_print_status_msg(msg_text, true, false, true);
} else if (status == PrintDialogStatus::PrintStatusReadingFinished) {
update_print_status_msg(wxEmptyString, true, true, true);
} else if (status == PrintDialogStatus::PrintStatusReadingTimeout) { } else if (status == PrintDialogStatus::PrintStatusReadingTimeout) {
wxString msg_text = _L("Synchronizing device information time out"); wxString msg_text = _L("Synchronizing device information time out");
update_print_status_msg(msg_text, true, true, true); update_print_status_msg(msg_text, true, false, true);
} else if (status == PrintDialogStatus::PrintStatusModeNotFDM) { } else if (status == PrintDialogStatus::PrintStatusModeNotFDM) {
update_print_status_msg(_L("Cannot send the print job when the printer is not at FDM mode"), true, false, true); update_print_status_msg(_L("Cannot send the print job when the printer is not at FDM mode"), true, false, true);
} else if (status == PrintDialogStatus::PrintStatusInUpgrading) { } else if (status == PrintDialogStatus::PrintStatusInUpgrading) {
@ -1811,8 +1809,6 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
update_print_status_msg(msg_text, true, false, true); update_print_status_msg(msg_text, true, false, true);
} else if (status == PrintDialogStatus::PrintStatusAmsOnSettingup) { } else if (status == PrintDialogStatus::PrintStatusAmsOnSettingup) {
update_print_status_msg(_L("AMS is setting up. Please try again later."), false, false, true); update_print_status_msg(_L("AMS is setting up. Please try again later."), false, false, true);
} else if (status == PrintDialogStatus::PrintStatusDisableAms) {
update_print_status_msg(wxEmptyString, false, true, true);
} else if (status == PrintDialogStatus::PrintStatusInvalidMapping) { } else if (status == PrintDialogStatus::PrintStatusInvalidMapping) {
update_print_status_msg(wxEmptyString, false, false, true); update_print_status_msg(wxEmptyString, false, false, true);
} else if (status == PrintDialogStatus::PrintStatusNeedUpgradingAms) { } else if (status == PrintDialogStatus::PrintStatusNeedUpgradingAms) {
@ -1822,9 +1818,7 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
else else
msg_text = _L("Filament exceeds the number of AMS slots. Please update the printer firmware to support AMS slot assignment."); msg_text = _L("Filament exceeds the number of AMS slots. Please update the printer firmware to support AMS slot assignment.");
update_print_status_msg(msg_text, false, false, true); update_print_status_msg(msg_text, false, false, true);
} else if (status == PrintDialogStatus::PrintStatusAmsMappingSuccess){ } else if (status == PrintDialogStatus::PrintStatusAmsMappingInvalid) {
update_print_status_msg(wxEmptyString, false, true, true);
} else if (status == PrintDialogStatus::PrintStatusAmsMappingInvalid) {
update_print_status_msg(wxEmptyString, false, false, true); update_print_status_msg(wxEmptyString, false, false, true);
} else if (status == PrintDialogStatus::PrintStatusAmsMappingMixInvalid) { } else if (status == PrintDialogStatus::PrintStatusAmsMappingMixInvalid) {
wxString msg_text = _L("Please do not mix-use the Ext with AMS"); wxString msg_text = _L("Please do not mix-use the Ext with AMS");
@ -1846,23 +1840,16 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
else else
msg_text = _L("Filament does not match the filament in AMS slot. Please update the printer firmware to support AMS slot assignment."); msg_text = _L("Filament does not match the filament in AMS slot. Please update the printer firmware to support AMS slot assignment.");
update_print_status_msg(msg_text, false, false, true); update_print_status_msg(msg_text, false, false, true);
} else if (status == PrintDialogStatus::PrintStatusAmsMappingValid) {
update_print_status_msg(wxEmptyString, false, true, true);
} else if (status == PrintDialogStatus::PrintStatusRefreshingMachineList) { } else if (status == PrintDialogStatus::PrintStatusRefreshingMachineList) {
update_print_status_msg(wxEmptyString, true, false, false); update_print_status_msg(wxEmptyString, true, false, false);
} else if (status == PrintDialogStatus::PrintStatusSending) { } else if (status == PrintDialogStatus::PrintStatusSending) {
update_print_status_msg(wxEmptyString, true, false, false); update_print_status_msg(wxEmptyString, true, false, false);
} else if (status == PrintDialogStatus::PrintStatusSendingCanceled) {
update_print_status_msg(wxEmptyString, true, true, true);
} else if (status == PrintDialogStatus::PrintStatusLanModeNoSdcard) { } else if (status == PrintDialogStatus::PrintStatusLanModeNoSdcard) {
wxString msg_text = _L("Storage needs to be inserted before printing via LAN."); wxString msg_text = _L("Storage needs to be inserted before printing via LAN.");
update_print_status_msg(msg_text, true, false, true); update_print_status_msg(msg_text, true, false, true);
} else if (status == PrintDialogStatus::PrintStatusLanModeSDcardNotAvailable) { } else if (status == PrintDialogStatus::PrintStatusLanModeSDcardNotAvailable) {
wxString msg_text = _L("Storage is not available or is in read-only mode."); wxString msg_text = _L("Storage is not available or is in read-only mode.");
update_print_status_msg(msg_text, true, true, true); update_print_status_msg(msg_text, true, false, true);
} else if (status == PrintDialogStatus::PrintStatusLanModeSDcardNotAvailable) {
wxString msg_text = _L("External storage is not available or is in read-only mode.");
update_print_status_msg(msg_text, true, true, true);
} else if (status == PrintDialogStatus::PrintStatusAmsMappingByOrder) { } else if (status == PrintDialogStatus::PrintStatusAmsMappingByOrder) {
wxString msg_text = _L("The printer firmware only supports sequential mapping of filament => AMS slot."); wxString msg_text = _L("The printer firmware only supports sequential mapping of filament => AMS slot.");
update_print_status_msg(msg_text, false, true, true); update_print_status_msg(msg_text, false, true, true);
@ -3302,9 +3289,6 @@ void SelectMachineDialog::update_show_status()
if (get_status() == PrintDialogStatus::PrintStatusSending) if (get_status() == PrintDialogStatus::PrintStatusSending)
return; return;
if (get_status() == PrintDialogStatus::PrintStatusSendingCanceled)
return;
NetworkAgent* agent = Slic3r::GUI::wxGetApp().getAgent(); NetworkAgent* agent = Slic3r::GUI::wxGetApp().getAgent();
DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
if (!agent) { if (!agent) {
@ -3548,35 +3532,28 @@ void SelectMachineDialog::update_show_status()
} }
} }
// no ams if (obj_->is_ams_on_settingup()) {
if (!obj_->has_ams() || m_checkbox_list["use_ams"]->getValue() != "on") { show_status(PrintDialogStatus::PrintStatusAmsOnSettingup);
if (!has_tips(obj_)) {
if (has_timelapse_warning()) {
show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
} else {
show_status(PrintDialogStatus::PrintStatusReadingFinished);
}
}
return; return;
} }
if (m_checkbox_list["use_ams"]->getValue() != "on") { if (m_checkbox_list["use_ams"]->getValue() != "on") {
m_ams_mapping_result.clear(); m_ams_mapping_result.clear();
sync_ams_mapping_result(m_ams_mapping_result); sync_ams_mapping_result(m_ams_mapping_result);
}
if (has_timelapse_warning()) { if (!m_ams_mapping_res && !obj_->is_valid_mapping_result(m_ams_mapping_result)) {
show_status(PrintDialogStatus::PrintStatusTimelapseWarning); show_status(PrintDialogStatus::PrintStatusAmsMappingInvalid);
} else {
show_status(PrintDialogStatus::PrintStatusDisableAms);
}
return; return;
} }
if (obj_->is_ams_on_settingup()) /*Warnings*/
{ // no ams
show_status(PrintDialogStatus::PrintStatusAmsOnSettingup); if (!obj_->has_ams() || m_checkbox_list["use_ams"]->getValue() != "on") {
return; if (has_timelapse_warning()) {
show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
return;
}
} }
struct ExtruderStatus struct ExtruderStatus

View File

@ -60,52 +60,84 @@ enum PrintPageMode {
PrintPageModeFinish PrintPageModeFinish
}; };
enum PrintDialogStatus { enum PrintDialogStatus : unsigned int {
PrintStatusInit = 0, /*Errors*/
PrintStatusErrorBegin,
//Errors for printer, Block Print
PrintStatusPrinterErrorBegin,
PrintStatusInit,
PrintStatusNoUserLogin, PrintStatusNoUserLogin,
PrintStatusInvalidPrinter, PrintStatusInvalidPrinter,
PrintStatusConnectingServer, PrintStatusConnectingServer,
PrintStatusReading,
PrintStatusReadingFinished,
PrintStatusReadingTimeout, PrintStatusReadingTimeout,
PrintStatusReading,
PrintStatusInUpgrading, PrintStatusInUpgrading,
PrintStatusModeNotFDM, PrintStatusModeNotFDM,
PrintStatusNeedUpgradingAms,
PrintStatusInSystemPrinting, PrintStatusInSystemPrinting,
PrintStatusInPrinting, PrintStatusInPrinting,
PrintStatusDisableAms,
PrintStatusAmsOnSettingup,
PrintStatusAmsMappingSuccess,
PrintStatusAmsMappingInvalid,
PrintStatusAmsMappingU0Invalid,
PrintStatusAmsMappingMixInvalid,
PrintStatusNozzleMatchInvalid, PrintStatusNozzleMatchInvalid,
PrintStatusNozzleDataInvalid, PrintStatusNozzleDataInvalid,
PrintStatusNozzleDiameterMismatch, PrintStatusNozzleDiameterMismatch,
PrintStatusNozzleTypeMismatch, PrintStatusNozzleTypeMismatch,
PrintStatusAmsMappingValid,
PrintStatusAmsMappingByOrder,
PrintStatusRefreshingMachineList, PrintStatusRefreshingMachineList,
PrintStatusSending, PrintStatusSending,
PrintStatusSendingCanceled,
PrintStatusLanModeNoSdcard, PrintStatusLanModeNoSdcard,
PrintStatusLanModeSDcardNotAvailable,
PrintStatusNoSdcard, PrintStatusNoSdcard,
PrintStatusTimelapseNoSdcard, PrintStatusLanModeSDcardNotAvailable,
PrintStatusNotOnTheSameLAN,
PrintStatusNeedForceUpgrading, PrintStatusNeedForceUpgrading,
PrintStatusNeedConsistencyUpgrading, PrintStatusNeedConsistencyUpgrading,
PrintStatusNotSupportedSendToSDCard,
PrintStatusNotSupportedPrintAll, PrintStatusNotSupportedPrintAll,
PrintStatusBlankPlate, PrintStatusBlankPlate,
PrintStatusUnsupportedPrinter, PrintStatusUnsupportedPrinter,
PrintStatusInvalidMapping,
PrintStatusPrinterErrorEnd,
//Errors for filament, Block Print
PrintStatusFilamentErrorBegin,
PrintStatusNeedUpgradingAms,
PrintStatusAmsOnSettingup,
PrintStatusAmsMappingInvalid,
PrintStatusAmsMappingU0Invalid,
PrintStatusAmsMappingMixInvalid,
PrintStatusTPUUnsupportAutoCali,
PrintStatusFilamentErrorEnd,
PrintStatusErrorEnd,
/*Warnings*/
PrintStatusWarningBegin,
//Warnings for printer
PrintStatusPrinterWarningBegin,
PrintStatusTimelapseNoSdcard,
PrintStatusTimelapseWarning, PrintStatusTimelapseWarning,
PrintStatusMixAmsAndVtSlotWarning, PrintStatusMixAmsAndVtSlotWarning,
PrintStatusPrinterWarningEnd,
//Warnings for filament
PrintStatusFilamentWarningBegin,
PrintStatusAmsMappingByOrder,
PrintStatusWarningKvalueNotUsed,
PrintStatusFilamentWarningEnd,
PrintStatusWarningEnd,
/*Success*/
//printer
PrintStatusReadingFinished,
PrintStatusSendingCanceled,
//filament
PrintStatusDisableAms,
PrintStatusAmsMappingSuccess,
PrintStatusAmsMappingValid,
/*Other, SendToPrinterDialog*/
PrintStatusNotOnTheSameLAN,
PrintStatusNotSupportedSendToSDCard,
PrintStatusPublicInitFailed, PrintStatusPublicInitFailed,
PrintStatusPublicUploadFiled, PrintStatusPublicUploadFiled,
PrintStatusInvalidMapping,
PrintStatusTPUUnsupportAutoCali,
PrintStatusWarningKvalueNotUsed,
}; };
class Material class Material
@ -520,6 +552,14 @@ public:
private: private:
void EnableEditing(bool enable); void EnableEditing(bool enable);
/*go check*/
bool is_error(PrintDialogStatus status) { return (PrintStatusErrorBegin < status) && (PrintStatusErrorEnd > status); };
bool is_error_printer(PrintDialogStatus status) { return (PrintStatusPrinterErrorBegin < status) && (PrintStatusPrinterErrorEnd > status); };
bool is_error_filament(PrintDialogStatus status) { return (PrintStatusFilamentErrorBegin < status) && (PrintStatusFilamentErrorEnd > status); };
bool is_warning(PrintDialogStatus status) { return (PrintStatusWarningBegin < status) && (PrintStatusWarningEnd > status); };
bool is_warning_printer(PrintDialogStatus status) { return (PrintStatusPrinterWarningBegin < status) && (PrintStatusPrinterWarningEnd > status); };
bool is_warning_filament(PrintDialogStatus status) { return (PrintStatusFilamentWarningBegin < status) && (PrintStatusFilamentWarningEnd > status); };
}; };