ENH: refine new version protocol in upgrading
Change-Id: I8c14dce6a20ca93cf42ff55b4610c397cdbf97e3 Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
parent
531794d131
commit
2866e33304
|
@ -1617,6 +1617,7 @@ void MachineObject::reset()
|
||||||
iot_print_status = "";
|
iot_print_status = "";
|
||||||
print_status = "";
|
print_status = "";
|
||||||
last_mc_print_stage = -1;
|
last_mc_print_stage = -1;
|
||||||
|
m_new_ver_list_exist = false;
|
||||||
|
|
||||||
subtask_ = nullptr;
|
subtask_ = nullptr;
|
||||||
|
|
||||||
|
@ -2069,6 +2070,29 @@ int MachineObject::parse_json(std::string payload)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// new ver list
|
||||||
|
if (jj["upgrade_state"].contains("new_ver_list")) {
|
||||||
|
m_new_ver_list_exist = true;
|
||||||
|
new_ver_list.clear();
|
||||||
|
for (auto ver_item = jj["upgrade_state"]["new_ver_list"].begin(); ver_item != jj["upgrade_state"]["new_ver_list"].end(); ver_item++) {
|
||||||
|
ModuleVersionInfo ver_info;
|
||||||
|
if (ver_item->contains("name"))
|
||||||
|
ver_info.name = (*ver_item)["name"].get<std::string>();
|
||||||
|
else
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (ver_item->contains("cur_ver"))
|
||||||
|
ver_info.sw_ver = (*ver_item)["cur_ver"].get<std::string>();
|
||||||
|
if (ver_item->contains("new_ver"))
|
||||||
|
ver_info.sw_new_ver = (*ver_item)["new_ver"].get<std::string>();
|
||||||
|
|
||||||
|
if (ver_info.name == "ota") {
|
||||||
|
ota_new_version_number = ver_info.sw_new_ver;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_ver_list.insert(std::make_pair(ver_info.name, ver_info));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (...) {
|
catch (...) {
|
||||||
|
|
|
@ -296,6 +296,7 @@ public:
|
||||||
std::string sn;
|
std::string sn;
|
||||||
std::string hw_ver;
|
std::string hw_ver;
|
||||||
std::string sw_ver;
|
std::string sw_ver;
|
||||||
|
std::string sw_new_ver;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* static members and functions */
|
/* static members and functions */
|
||||||
|
@ -413,6 +414,8 @@ public:
|
||||||
std::string ota_new_version_number;
|
std::string ota_new_version_number;
|
||||||
std::string ahb_new_version_number;
|
std::string ahb_new_version_number;
|
||||||
std::map<std::string, ModuleVersionInfo> module_vers;
|
std::map<std::string, ModuleVersionInfo> module_vers;
|
||||||
|
std::map<std::string, ModuleVersionInfo> new_ver_list;
|
||||||
|
bool m_new_ver_list_exist = false;
|
||||||
int upgrade_err_code = 0;
|
int upgrade_err_code = 0;
|
||||||
std::vector<FirmwareInfo> firmware_list;
|
std::vector<FirmwareInfo> firmware_list;
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,6 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
|
||||||
|
|
||||||
init_bitmaps();
|
init_bitmaps();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wxBoxSizer *m_top_sizer = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer *m_top_sizer = new wxBoxSizer(wxVERTICAL);
|
||||||
|
|
||||||
m_panel_caption = create_caption_panel(this);
|
m_panel_caption = create_caption_panel(this);
|
||||||
|
@ -345,7 +343,7 @@ void MachineInfoPanel::update_version_text(MachineObject* obj)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (it != obj->module_vers.end()) {
|
if (it != obj->module_vers.end()) {
|
||||||
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Lastest version"));
|
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Latest version"));
|
||||||
m_staticText_ver_val->SetLabelText(ver_text);
|
m_staticText_ver_val->SetLabelText(ver_text);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -391,24 +389,50 @@ void MachineInfoPanel::update_ams(MachineObject *obj)
|
||||||
// update ams img
|
// update ams img
|
||||||
wxString ams_text = wxString::Format("AMS%s", std::to_string(ams_index + 1));
|
wxString ams_text = wxString::Format("AMS%s", std::to_string(ams_index + 1));
|
||||||
ams_name = ams_text;
|
ams_name = ams_text;
|
||||||
if (obj->upgrade_new_version
|
|
||||||
&& !obj->ams_new_version_number.empty()
|
std::string ams_id = "ams/" + std::to_string(ams_index);
|
||||||
&& obj->ams_new_version_number.compare(it->second.sw_ver) != 0) {
|
auto ver_item = obj->new_ver_list.find(ams_id);
|
||||||
amspanel->m_ams_new_version_img->Show();
|
if (obj->new_ver_list.empty() && !obj->m_new_ver_list_exist) {
|
||||||
wxString ver_text = wxString::Format("%s->%s", it->second.sw_ver, obj->ams_new_version_number);
|
if (obj->upgrade_new_version
|
||||||
ams_ver = ver_text;
|
&& 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;
|
||||||
|
} 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;
|
||||||
|
} else {
|
||||||
|
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Latest version"));
|
||||||
|
ams_ver = ver_text;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
amspanel->m_ams_new_version_img->Hide();
|
if (ver_item == obj->new_ver_list.end()) {
|
||||||
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Lastest version"));
|
amspanel->m_ams_new_version_img->Hide();
|
||||||
ams_ver = ver_text;
|
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Latest version"));
|
||||||
|
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;
|
||||||
|
} 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// update ams sn
|
// update ams sn
|
||||||
if (it->second.sn.empty()) {
|
if (it->second.sn.empty()) {
|
||||||
ams_sn = "-";
|
ams_sn = "-";
|
||||||
} else {
|
} else {
|
||||||
wxString sn_text = it->second.sn;
|
wxString sn_text = it->second.sn;
|
||||||
ams_sn = sn_text.MakeUpper();
|
ams_sn = sn_text.MakeUpper();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
amspanel->m_staticText_ams->SetLabelText(ams_name);
|
amspanel->m_staticText_ams->SetLabelText(ams_name);
|
||||||
|
|
Loading…
Reference in New Issue