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 = "";
|
||||
print_status = "";
|
||||
last_mc_print_stage = -1;
|
||||
m_new_ver_list_exist = false;
|
||||
|
||||
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 (...) {
|
||||
|
|
|
@ -296,6 +296,7 @@ public:
|
|||
std::string sn;
|
||||
std::string hw_ver;
|
||||
std::string sw_ver;
|
||||
std::string sw_new_ver;
|
||||
};
|
||||
|
||||
/* static members and functions */
|
||||
|
@ -413,6 +414,8 @@ public:
|
|||
std::string ota_new_version_number;
|
||||
std::string ahb_new_version_number;
|
||||
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;
|
||||
std::vector<FirmwareInfo> firmware_list;
|
||||
|
||||
|
|
|
@ -19,8 +19,6 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
|
|||
|
||||
init_bitmaps();
|
||||
|
||||
|
||||
|
||||
wxBoxSizer *m_top_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
m_panel_caption = create_caption_panel(this);
|
||||
|
@ -345,7 +343,7 @@ void MachineInfoPanel::update_version_text(MachineObject* obj)
|
|||
}
|
||||
else {
|
||||
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);
|
||||
}
|
||||
else {
|
||||
|
@ -391,24 +389,50 @@ void MachineInfoPanel::update_ams(MachineObject *obj)
|
|||
// update ams img
|
||||
wxString ams_text = wxString::Format("AMS%s", std::to_string(ams_index + 1));
|
||||
ams_name = ams_text;
|
||||
if (obj->upgrade_new_version
|
||||
&& !obj->ams_new_version_number.empty()
|
||||
&& 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;
|
||||
|
||||
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;
|
||||
} 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 {
|
||||
amspanel->m_ams_new_version_img->Hide();
|
||||
wxString ver_text = wxString::Format("%s(%s)", it->second.sw_ver, _L("Lastest version"));
|
||||
ams_ver = ver_text;
|
||||
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;
|
||||
} 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
|
||||
if (it->second.sn.empty()) {
|
||||
ams_sn = "-";
|
||||
} else {
|
||||
wxString sn_text = it->second.sn;
|
||||
ams_sn = sn_text.MakeUpper();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
amspanel->m_staticText_ams->SetLabelText(ams_name);
|
||||
|
|
Loading…
Reference in New Issue