mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-21 05:37:52 -06:00
ENH: parse ack of upgrade confirm
Change-Id: I33691749221aac4c83f71d6d76708d7b2d8d6d4d Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
parent
8c923804fc
commit
6fee9bcca1
4 changed files with 58 additions and 23 deletions
|
@ -2653,8 +2653,14 @@ int MachineObject::parse_json(std::string payload)
|
||||||
this->command_get_version();
|
this->command_get_version();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (upgrade_display_hold_count > 0)
|
||||||
|
upgrade_display_hold_count--;
|
||||||
|
else
|
||||||
upgrade_display_state = jj["upgrade_state"]["dis_state"].get<int>();
|
upgrade_display_state = jj["upgrade_state"]["dis_state"].get<int>();
|
||||||
} else {
|
} else {
|
||||||
|
if (upgrade_display_hold_count > 0)
|
||||||
|
upgrade_display_hold_count--;
|
||||||
|
else {
|
||||||
//BBS compatibility with old version
|
//BBS compatibility with old version
|
||||||
if (upgrade_status == "DOWNLOADING"
|
if (upgrade_status == "DOWNLOADING"
|
||||||
|| upgrade_status == "FLASHING"
|
|| upgrade_status == "FLASHING"
|
||||||
|
@ -2679,6 +2685,7 @@ int MachineObject::parse_json(std::string payload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// new ver list
|
// new ver list
|
||||||
if (jj["upgrade_state"].contains("new_ver_list")) {
|
if (jj["upgrade_state"].contains("new_ver_list")) {
|
||||||
m_new_ver_list_exist = true;
|
m_new_ver_list_exist = true;
|
||||||
|
@ -3333,6 +3340,21 @@ int MachineObject::parse_json(std::string payload)
|
||||||
}
|
}
|
||||||
} catch (...) {}
|
} catch (...) {}
|
||||||
|
|
||||||
|
// upgrade
|
||||||
|
try {
|
||||||
|
if (j.contains("upgrade")) {
|
||||||
|
if (j["upgrade"].contains("command")) {
|
||||||
|
if (j["upgrade"]["command"].get<std::string>() == "upgrade_confirm") {
|
||||||
|
this->upgrade_display_state == UpgradingInProgress;
|
||||||
|
upgrade_display_hold_count = HOLD_COUNT_MAX;
|
||||||
|
BOOST_LOG_TRIVIAL(info) << "ack of upgrade_confirm";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (...) {
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
// event info
|
// event info
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -533,6 +533,7 @@ public:
|
||||||
bool upgrade_new_version { false };
|
bool upgrade_new_version { false };
|
||||||
bool upgrade_consistency_request { false };
|
bool upgrade_consistency_request { false };
|
||||||
int upgrade_display_state = 0; // 0 : upgrade unavailable, 1: upgrade idle, 2: upgrading, 3: upgrade_finished
|
int upgrade_display_state = 0; // 0 : upgrade unavailable, 1: upgrade idle, 2: upgrading, 3: upgrade_finished
|
||||||
|
int upgrade_display_hold_count = 0;
|
||||||
PrinterFirmwareType firmware_type; // engineer|production
|
PrinterFirmwareType firmware_type; // engineer|production
|
||||||
std::string upgrade_progress;
|
std::string upgrade_progress;
|
||||||
std::string upgrade_message;
|
std::string upgrade_message;
|
||||||
|
|
|
@ -738,6 +738,17 @@ void MachineInfoPanel::on_sys_color_changed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MachineInfoPanel::confirm_upgrade(MachineObject* obj)
|
||||||
|
{
|
||||||
|
if (obj) {
|
||||||
|
obj->command_upgrade_confirm();
|
||||||
|
obj->upgrade_display_state = MachineObject::UpgradingDisplayState::UpgradingInProgress;
|
||||||
|
obj->upgrade_display_hold_count = HOLD_COUNT_MAX;
|
||||||
|
// enter in progress status first
|
||||||
|
this->show_status(MachineObject::UpgradingDisplayState::UpgradingInProgress);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MachineInfoPanel::upgrade_firmware_internal() {
|
void MachineInfoPanel::upgrade_firmware_internal() {
|
||||||
if (!m_obj)
|
if (!m_obj)
|
||||||
return;
|
return;
|
||||||
|
@ -746,7 +757,7 @@ void MachineInfoPanel::upgrade_firmware_internal() {
|
||||||
} else if (panel_type == ptAmsPanel) {
|
} else if (panel_type == ptAmsPanel) {
|
||||||
m_obj->command_upgrade_firmware(m_ams_info);
|
m_obj->command_upgrade_firmware(m_ams_info);
|
||||||
} else if (panel_type == ptPushPanel) {
|
} else if (panel_type == ptPushPanel) {
|
||||||
m_obj->command_upgrade_confirm();
|
confirm_upgrade();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -755,9 +766,7 @@ void MachineInfoPanel::on_upgrade_firmware(wxCommandEvent &event)
|
||||||
if (confirm_dlg == nullptr) {
|
if (confirm_dlg == nullptr) {
|
||||||
confirm_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Update firmware"));
|
confirm_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Update firmware"));
|
||||||
confirm_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent& e) {
|
confirm_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent& e) {
|
||||||
if (m_obj) {
|
this->confirm_upgrade(m_obj);
|
||||||
m_obj->command_upgrade_confirm();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
confirm_dlg->update_text(_L("Are you sure you want to update? This will take about 10 minutes. Do not turn off the power while the printer is updating."));
|
confirm_dlg->update_text(_L("Are you sure you want to update? This will take about 10 minutes. Do not turn off the power while the printer is updating."));
|
||||||
|
@ -899,6 +908,8 @@ void UpgradePanel::update(MachineObject *obj)
|
||||||
force_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent& e) {
|
force_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent& e) {
|
||||||
if (m_obj) {
|
if (m_obj) {
|
||||||
m_obj->command_upgrade_confirm();
|
m_obj->command_upgrade_confirm();
|
||||||
|
m_obj->upgrade_display_state == MachineObject::UpgradingDisplayState::UpgradingInProgress;
|
||||||
|
m_obj->upgrade_display_hold_count = HOLD_COUNT_MAX;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,6 +109,7 @@ protected:
|
||||||
|
|
||||||
void upgrade_firmware_internal();
|
void upgrade_firmware_internal();
|
||||||
void on_show_release_note(wxMouseEvent &event);
|
void on_show_release_note(wxMouseEvent &event);
|
||||||
|
void confirm_upgrade(MachineObject* obj = nullptr);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MachineInfoPanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString);
|
MachineInfoPanel(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue