ENH: split the status

jira: [STUDIO-10949]
Change-Id: Ic93ae9d13dff2f5d72aef4e0f5a1250581224a18
(cherry picked from commit cc5b696d8dcf3838ac5324cdd11297e04ce1c8e6)
This commit is contained in:
xin.zhang
2025-03-24 10:47:43 +08:00
committed by Noisyfox
parent 13d3cfda63
commit 1aee0189d4
2 changed files with 76 additions and 59 deletions

View File

@@ -1791,11 +1791,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) {
@@ -1809,8 +1807,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) {
@@ -1820,8 +1816,6 @@ 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){
update_print_status_msg(wxEmptyString, false, true, true);
} else if (status == PrintDialogStatus::PrintStatusAmsMappingInvalid) { } 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) {
@@ -1844,23 +1838,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);
@@ -3285,9 +3272,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) {
@@ -3531,35 +3515,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 (!m_ams_mapping_res && !obj_->is_valid_mapping_result(m_ams_mapping_result)) {
show_status(PrintDialogStatus::PrintStatusAmsMappingInvalid);
return;
}
/*Warnings*/
// no ams
if (!obj_->has_ams() || m_checkbox_list["use_ams"]->getValue() != "on") {
if (has_timelapse_warning()) { if (has_timelapse_warning()) {
show_status(PrintDialogStatus::PrintStatusTimelapseWarning); show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
} else {
show_status(PrintDialogStatus::PrintStatusDisableAms);
}
return; return;
} }
if (obj_->is_ams_on_settingup())
{
show_status(PrintDialogStatus::PrintStatusAmsOnSettingup);
return;
} }
struct ExtruderStatus struct ExtruderStatus

View File

@@ -62,52 +62,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,
}; };
@@ -523,6 +555,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); };
}; };