FIX:add ams hub upgrade module
Change-Id: Iba636f5a13ab3350aa61b22548535aa7ad334cc0
This commit is contained in:
parent
fdd9582e3e
commit
1c3375bb07
4 changed files with 152 additions and 28 deletions
|
@ -1825,6 +1825,30 @@ int MachineObject::parse_json(std::string payload)
|
|||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region online
|
||||
// parse online info
|
||||
try {
|
||||
if (jj.contains("online")) {
|
||||
if (jj["online"].contains("ahb")) {
|
||||
if (jj["online"]["ahb"].get<bool>()) {
|
||||
online_ahb = true;
|
||||
} else {
|
||||
online_ahb = false;
|
||||
}
|
||||
}
|
||||
if (jj["online"].contains("rfid")) {
|
||||
if (jj["online"]["rfid"].get<bool>()) {
|
||||
online_rfid = true;
|
||||
} else {
|
||||
online_rfid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (...) {
|
||||
;
|
||||
}
|
||||
#pragma endregion
|
||||
|
||||
#pragma region print_task
|
||||
if (jj.contains("printer_type")) {
|
||||
printer_type = parse_printer_type(jj["printer_type"].get<std::string>());
|
||||
|
@ -2092,6 +2116,8 @@ int MachineObject::parse_json(std::string payload)
|
|||
|
||||
new_ver_list.insert(std::make_pair(ver_info.name, ver_info));
|
||||
}
|
||||
} else {
|
||||
new_ver_list.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -374,6 +374,9 @@ public:
|
|||
bool is_mapping_exceed_filament(std::vector<FilamentInfo>& result, int &exceed_index);
|
||||
void reset_mapping_result(std::vector<FilamentInfo>& result);
|
||||
|
||||
/*online*/
|
||||
bool online_rfid;
|
||||
bool online_ahb;
|
||||
|
||||
/* temperature */
|
||||
float nozzle_temp;
|
||||
|
|
|
@ -105,6 +105,13 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
|
|||
|
||||
wxBoxSizer *m_ams_content_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
m_ams_content_sizer->Add(0, 40, 0, wxEXPAND, FromDIP(5));
|
||||
|
||||
|
||||
m_ahb_panel = new AmsPanel(this, wxID_ANY);
|
||||
m_ahb_panel->m_staticText_ams->SetLabel("AMS HUB");
|
||||
m_ams_content_sizer->Add(m_ahb_panel, 0, wxEXPAND, 0);
|
||||
|
||||
|
||||
m_ams_info_sizer = new wxGridSizer(0, 2, FromDIP(30), FromDIP(30));
|
||||
|
||||
|
||||
|
@ -120,7 +127,6 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
|
|||
}
|
||||
|
||||
m_ams_content_sizer->Add(m_ams_info_sizer, 0, wxEXPAND, 0);
|
||||
|
||||
m_ams_sizer->Add(m_ams_content_sizer, 1, wxEXPAND, 0);
|
||||
|
||||
m_main_left_sizer->Add(m_ams_sizer, 0, wxEXPAND, 0);
|
||||
|
@ -274,7 +280,7 @@ void MachineInfoPanel::update(MachineObject* obj)
|
|||
m_caption_text->SetLabelText(caption_text);
|
||||
show_status(MachineObject::UpgradingDisplayState::UpgradingUnavaliable);
|
||||
} else {
|
||||
show_status(obj->upgrade_display_state);
|
||||
show_status(obj->upgrade_display_state, obj->upgrade_status);
|
||||
if (obj->upgrade_display_state == (int) MachineObject::UpgradingDisplayState::UpgradingUnavaliable) {
|
||||
if (obj->can_abort()) {
|
||||
wxString caption_text = wxString::Format("%s(%s)", from_u8(obj->dev_name), _L("Printing"));
|
||||
|
@ -356,6 +362,88 @@ void MachineInfoPanel::update_version_text(MachineObject* obj)
|
|||
|
||||
void MachineInfoPanel::update_ams(MachineObject *obj)
|
||||
{
|
||||
bool has_hub_model = false;
|
||||
|
||||
//hub
|
||||
if (!obj->online_ahb || obj->module_vers.find("ahb") == obj->module_vers.end())
|
||||
m_ahb_panel->Hide();
|
||||
else {
|
||||
has_hub_model = true;
|
||||
show_ams(true);
|
||||
|
||||
for (auto i = 0; i < m_amspanel_list.GetCount(); i++) {
|
||||
AmsPanel *amspanel = m_amspanel_list[i];
|
||||
amspanel->Hide();
|
||||
}
|
||||
|
||||
m_ahb_panel->Show();
|
||||
|
||||
wxString hub_sn = "-";
|
||||
if (!obj->module_vers.find("ahb")->second.sn.empty()) {
|
||||
wxString sn_text = obj->module_vers.find("ahb")->second.sn;
|
||||
hub_sn = sn_text.MakeUpper();
|
||||
}
|
||||
|
||||
|
||||
wxString hub_ver = "-";
|
||||
if (!obj->module_vers.find("ahb")->second.sw_ver.empty()) {
|
||||
wxString sn_text = obj->module_vers.find("ahb")->second.sw_ver;
|
||||
hub_ver = sn_text.MakeUpper();
|
||||
}
|
||||
|
||||
/* auto ver_item = obj->new_ver_list.find("ahb");
|
||||
if (ver_item != obj->new_ver_list.end()) {
|
||||
m_ahb_panel->m_ams_new_version_img->Show();
|
||||
hub_ver = wxString::Format("%s->%s", hub_ver, ver_item->second.sw_new_ver);
|
||||
} else {
|
||||
m_ahb_panel->m_ams_new_version_img->Hide();
|
||||
hub_ver = wxString::Format("%s(%s)", hub_ver, _L("Latest version"));
|
||||
}*/
|
||||
|
||||
if (obj->new_ver_list.empty() && !obj->m_new_ver_list_exist) {
|
||||
if (obj->upgrade_new_version && obj->ahb_new_version_number.compare(obj->module_vers.find("ahb")->second.sw_ver) != 0) {
|
||||
m_ahb_panel->m_ams_new_version_img->Show();
|
||||
|
||||
if (obj->ahb_new_version_number.empty()) {
|
||||
hub_ver = wxString::Format("%s", obj->module_vers.find("ahb")->second.sw_ver);
|
||||
} else {
|
||||
hub_ver = wxString::Format("%s->%s", obj->module_vers.find("ahb")->second.sw_ver, obj->ahb_new_version_number);
|
||||
}
|
||||
} else {
|
||||
m_ahb_panel->m_ams_new_version_img->Hide();
|
||||
if (obj->ahb_new_version_number.empty()) {
|
||||
wxString ver_text = wxString::Format("%s", obj->module_vers.find("ahb")->second.sw_ver);
|
||||
hub_ver = ver_text;
|
||||
} else {
|
||||
wxString ver_text = wxString::Format("%s(%s)", obj->module_vers.find("ahb")->second.sw_ver, _L("Latest version"));
|
||||
hub_ver = ver_text;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
auto ver_item = obj->new_ver_list.find("ahb");
|
||||
|
||||
if (ver_item == obj->new_ver_list.end()) {
|
||||
m_ahb_panel->m_ams_new_version_img->Hide();
|
||||
wxString ver_text = wxString::Format("%s(%s)", obj->module_vers.find("ahb")->second.sw_ver, _L("Latest version"));
|
||||
hub_ver = ver_text;
|
||||
} else {
|
||||
if (ver_item->second.sw_new_ver != ver_item->second.sw_ver) {
|
||||
m_ahb_panel->m_ams_new_version_img->Show();
|
||||
wxString ver_text = wxString::Format("%s->%s", ver_item->second.sw_ver, ver_item->second.sw_new_ver);
|
||||
hub_ver = ver_text;
|
||||
} else {
|
||||
m_ahb_panel->m_ams_new_version_img->Hide();
|
||||
wxString ver_text = wxString::Format("%s(%s)", ver_item->second.sw_ver, _L("Latest version"));
|
||||
hub_ver = ver_text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_ahb_panel->m_staticText_ams_sn_val->SetLabelText(hub_sn);
|
||||
m_ahb_panel->m_staticText_ams_ver_val->SetLabelText(hub_ver);
|
||||
}
|
||||
|
||||
//ams
|
||||
if (obj->ams_exist_bits != 0) {
|
||||
show_ams(true);
|
||||
std::map<int, MachineObject::ModuleVersionInfo> ver_list = obj->get_ams_version();
|
||||
|
@ -394,38 +482,43 @@ void MachineInfoPanel::update_ams(MachineObject *obj)
|
|||
wxString ams_text = wxString::Format("AMS%s", std::to_string(ams_id + 1));
|
||||
ams_name = ams_text;
|
||||
|
||||
std::string ams_id = "ams/" + std::to_string(ams_index);
|
||||
auto ver_item = obj->new_ver_list.find(ams_id);
|
||||
if (obj->new_ver_list.empty() && !obj->m_new_ver_list_exist) {
|
||||
if (obj->upgrade_new_version
|
||||
&& obj->ams_new_version_number.compare(it->second.sw_ver) != 0) {
|
||||
amspanel->m_ams_new_version_img->Show();
|
||||
wxString ver_text = wxString::Format("%s->%s", it->second.sw_ver, obj->ams_new_version_number);
|
||||
ams_ver = ver_text;
|
||||
|
||||
if (obj->ams_new_version_number.empty()) {
|
||||
ams_ver = wxString::Format("%s", it->second.sw_ver);
|
||||
} else {
|
||||
ams_ver = wxString::Format("%s->%s", it->second.sw_ver, obj->ams_new_version_number);
|
||||
}
|
||||
} else {
|
||||
amspanel->m_ams_new_version_img->Hide();
|
||||
if (obj->ams_new_version_number.empty()) {
|
||||
wxString ver_text = wxString::Format("%s", it->second.sw_ver);
|
||||
ams_ver = ver_text;
|
||||
ams_ver = ver_text;
|
||||
} else {
|
||||
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Latest version"));
|
||||
ams_ver = ver_text;
|
||||
ams_ver = ver_text;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
std::string ams_id = "ams/" + std::to_string(ams_index);
|
||||
auto ver_item = obj->new_ver_list.find(ams_id);
|
||||
|
||||
if (ver_item == obj->new_ver_list.end()) {
|
||||
amspanel->m_ams_new_version_img->Hide();
|
||||
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Latest version"));
|
||||
ams_ver = ver_text;
|
||||
ams_ver = ver_text;
|
||||
} else {
|
||||
if (ver_item->second.sw_new_ver != ver_item->second.sw_ver) {
|
||||
amspanel->m_ams_new_version_img->Show();
|
||||
wxString ver_text = wxString::Format("%s->%s", ver_item->second.sw_ver, ver_item->second.sw_new_ver);
|
||||
ams_ver = ver_text;
|
||||
ams_ver = ver_text;
|
||||
} else {
|
||||
amspanel->m_ams_new_version_img->Hide();
|
||||
wxString ver_text = wxString::Format("%s(%s)", ver_item->second.sw_ver, _L("Latest version"));
|
||||
ams_ver = ver_text;
|
||||
ams_ver = ver_text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -446,18 +539,19 @@ void MachineInfoPanel::update_ams(MachineObject *obj)
|
|||
ams_index++;
|
||||
}
|
||||
} else {
|
||||
show_ams(false);
|
||||
if (!has_hub_model) { show_ams(false); }
|
||||
|
||||
}
|
||||
this->Layout();
|
||||
}
|
||||
|
||||
void MachineInfoPanel::show_status(int status)
|
||||
void MachineInfoPanel::show_status(int status, std::string upgrade_status_str)
|
||||
{
|
||||
if (last_status == status)
|
||||
return;
|
||||
last_status = status;
|
||||
if (last_status == status && last_status_str == upgrade_status_str) return;
|
||||
last_status = status;
|
||||
last_status_str = upgrade_status_str;
|
||||
|
||||
BOOST_LOG_TRIVIAL(trace) << "MachineInfoPanel: show_status = " << status;
|
||||
BOOST_LOG_TRIVIAL(trace) << "MachineInfoPanel: show_status = " << status << ", str = " << upgrade_status_str;
|
||||
|
||||
Freeze();
|
||||
|
||||
|
@ -487,15 +581,7 @@ void MachineInfoPanel::show_status(int status)
|
|||
m_staticText_upgrading_percent->SetForegroundColour(TEXT_NORMAL_CLR);
|
||||
m_staticText_upgrading_percent->Show();
|
||||
} else if (status == (int) MachineObject::UpgradingDisplayState::UpgradingFinished) {
|
||||
if (true) {
|
||||
for (size_t i = 0; i < m_upgrading_sizer->GetItemCount(); i++) { m_upgrading_sizer->Show(true); }
|
||||
m_button_upgrade_firmware->Hide();
|
||||
m_staticText_upgrading_info->SetLabel(_L("Upgrading success"));
|
||||
m_staticText_upgrading_info->Show();
|
||||
m_staticText_upgrading_info->SetForegroundColour(TEXT_NORMAL_CLR);
|
||||
m_staticText_upgrading_percent->SetForegroundColour(TEXT_NORMAL_CLR);
|
||||
m_upgrade_retry_img->Hide();
|
||||
} else {
|
||||
if (upgrade_status_str == "UPGRADE_FAIL") {
|
||||
m_staticText_upgrading_info->SetLabel(_L("Upgrading failed"));
|
||||
m_staticText_upgrading_info->SetForegroundColour(TEXT_FAILED_CLR);
|
||||
for (size_t i = 0; i < m_upgrading_sizer->GetItemCount(); i++) { m_upgrading_sizer->Show(true); }
|
||||
|
@ -503,6 +589,14 @@ void MachineInfoPanel::show_status(int status)
|
|||
m_staticText_upgrading_info->Show();
|
||||
m_staticText_upgrading_percent->Hide();
|
||||
m_upgrade_retry_img->Show();
|
||||
} else {
|
||||
for (size_t i = 0; i < m_upgrading_sizer->GetItemCount(); i++) { m_upgrading_sizer->Show(true); }
|
||||
m_button_upgrade_firmware->Hide();
|
||||
m_staticText_upgrading_info->SetLabel(_L("Upgrading success"));
|
||||
m_staticText_upgrading_info->Show();
|
||||
m_staticText_upgrading_info->SetForegroundColour(TEXT_NORMAL_CLR);
|
||||
m_staticText_upgrading_percent->SetForegroundColour(TEXT_NORMAL_CLR);
|
||||
m_upgrade_retry_img->Hide();
|
||||
}
|
||||
} else {
|
||||
;
|
||||
|
|
|
@ -48,7 +48,7 @@ protected:
|
|||
wxStaticText * m_staticText_ver_val;
|
||||
wxStaticLine * m_staticline;
|
||||
wxStaticBitmap *m_ams_img;
|
||||
|
||||
AmsPanel* m_ahb_panel;
|
||||
|
||||
|
||||
wxGridSizer * m_ams_info_sizer;
|
||||
|
@ -75,6 +75,7 @@ protected:
|
|||
wxBitmap upgrade_green_icon;
|
||||
wxBitmap upgrade_yellow_icon;
|
||||
int last_status = -1;
|
||||
std::string last_status_str = "";
|
||||
|
||||
void upgrade_firmware_internal();
|
||||
void on_upgrade_firmware(wxCommandEvent &event);
|
||||
|
@ -94,7 +95,7 @@ public:
|
|||
void update(MachineObject *obj);
|
||||
void update_version_text(MachineObject *obj);
|
||||
void update_ams(MachineObject *obj);
|
||||
void show_status(int status);
|
||||
void show_status(int status, std::string upgrade_status_str = "");
|
||||
void show_ams(bool show = false, bool force_update = false);
|
||||
|
||||
MachineObject *m_obj{nullptr};
|
||||
|
|
Loading…
Reference in a new issue