FIX: Cannot send the print job when the printer is not at FDM mode

jira: [STUDIO-10571]
Change-Id: I20c02b79d09400dce2089856fde98d0cd50713ff
(cherry picked from commit d327fa91781bbc568b26ba147f9dd9f625ff1022)
This commit is contained in:
xin.zhang
2025-03-06 20:35:10 +08:00
committed by Noisyfox
parent 03ea48c6b4
commit 872f0342bb
4 changed files with 19 additions and 4 deletions

View File

@@ -6059,8 +6059,7 @@ void MachineObject::parse_new_info(json print)
}
if (device.contains("type")) {
int type = device["type"].get<int>(); // FDM:1<<0 Laser:1<< Cut:1<<2
is_fdm = type & 1;
m_device_mode = (DeviceMode)device["type"].get<int>();// FDM:1<<0 Laser:1<< Cut:1<<2
}
if (device.contains("bed_temp")) {

View File

@@ -963,6 +963,13 @@ public:
DOOR_OPEN_CHECK_ENABLE_PAUSE_PRINT = 2,/*pause print*/
};
enum DeviceMode : unsigned int
{
DEVICE_MODE_FDM = 0x00000001,
DEVICE_MODE_LASER = 0x00000010,
DEVICE_MODE_CUT = 0x00000100,
};
bool file_model_download{false};
bool virtual_camera{false};
@@ -1067,8 +1074,8 @@ public:
bool is_makeworld_subtask();
/* device type */
bool is_fdm{ true };
inline bool is_fdm_type() const { return is_fdm; }
DeviceMode m_device_mode{ DEVICE_MODE_FDM };
inline bool is_fdm_type() const { return m_device_mode == DEVICE_MODE_FDM; }
int m_plate_index { -1 };
std::string m_gcode_file;

View File

@@ -1773,6 +1773,8 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxSt
} else if (status == PrintDialogStatus::PrintStatusReadingTimeout) {
wxString msg_text = _L("Synchronizing device information time out");
update_print_status_msg(msg_text, true, true, true);
} 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);
} else if (status == PrintDialogStatus::PrintStatusInUpgrading) {
wxString msg_text = _L("Cannot send the print job when the printer is updating firmware");
update_print_status_msg(msg_text, true, false, true);
@@ -3285,6 +3287,12 @@ void SelectMachineDialog::update_show_status()
}
}
if (!obj_->is_fdm_type())
{
show_status(PrintDialogStatus::PrintStatusModeNotFDM);
return;
}
if (is_blocking_printing(obj_)) {
show_status(PrintDialogStatus::PrintStatusUnsupportedPrinter);
return;

View File

@@ -71,6 +71,7 @@ enum PrintDialogStatus {
PrintStatusReadingFinished,
PrintStatusReadingTimeout,
PrintStatusInUpgrading,
PrintStatusModeNotFDM,
PrintStatusNeedUpgradingAms,
PrintStatusInSystemPrinting,
PrintStatusInPrinting,