NEW: add some parts;modify panel layouts

jira: [STUDIO-11578]
Change-Id: Ifdcf6d285d763a15ed153508cb4f5f66069144bc
This commit is contained in:
xin.zhang 2025-04-29 14:13:40 +08:00 committed by lane.wei
parent 67aca43fa1
commit f97931d191
5 changed files with 156 additions and 48 deletions

View File

@ -1436,22 +1436,23 @@ void MachineObject::clear_version_info()
air_pump_version_info = ModuleVersionInfo(); air_pump_version_info = ModuleVersionInfo();
laser_version_info = ModuleVersionInfo(); laser_version_info = ModuleVersionInfo();
cutting_module_version_info = ModuleVersionInfo(); cutting_module_version_info = ModuleVersionInfo();
extinguish_version_info = ModuleVersionInfo();
rotary_version_info = ModuleVersionInfo();
module_vers.clear(); module_vers.clear();
} }
void MachineObject::store_version_info(const ModuleVersionInfo& info) void MachineObject::store_version_info(const ModuleVersionInfo& info)
{ {
if (info.isAirPump()) if (info.isAirPump()) {
{
air_pump_version_info = info; air_pump_version_info = info;
} } else if (info.isLaszer()) {
else if (info.isLaszer())
{
laser_version_info = info; laser_version_info = info;
} } else if (info.isCuttingModule()) {
else if (info.isCuttingModule())
{
cutting_module_version_info = info; cutting_module_version_info = info;
} else if (info.isExtinguishSystem()) {
extinguish_version_info = info;
} else if (info.isRotary()) {
rotary_version_info = info;
} }
module_vers.emplace(info.name, info); module_vers.emplace(info.name, info);

View File

@ -593,6 +593,8 @@ public:
bool isAirPump() const { return product_name.Contains("Air Pump"); } bool isAirPump() const { return product_name.Contains("Air Pump"); }
bool isLaszer() const { return product_name.Contains("Laser"); } bool isLaszer() const { return product_name.Contains("Laser"); }
bool isCuttingModule() const { return product_name.Contains("Cutting Module"); } bool isCuttingModule() const { return product_name.Contains("Cutting Module"); }
bool isExtinguishSystem() const { return product_name.Contains("Extinguishing System"); }// Auto Fire Extinguishing System
bool isRotary() const { return product_name.Contains("Rotary"); }// Rotary Attachment
}; };
enum SdcardState { enum SdcardState {
@ -849,6 +851,8 @@ public:
ModuleVersionInfo air_pump_version_info; ModuleVersionInfo air_pump_version_info;
ModuleVersionInfo laser_version_info; ModuleVersionInfo laser_version_info;
ModuleVersionInfo cutting_module_version_info; ModuleVersionInfo cutting_module_version_info;
ModuleVersionInfo extinguish_version_info;
ModuleVersionInfo rotary_version_info;
std::map<std::string, ModuleVersionInfo> module_vers; std::map<std::string, ModuleVersionInfo> module_vers;
std::map<std::string, ModuleVersionInfo> new_ver_list; std::map<std::string, ModuleVersionInfo> new_ver_list;
std::map<std::string, ExtrusionRatioInfo> extrusion_ratio_map; std::map<std::string, ExtrusionRatioInfo> extrusion_ratio_map;

View File

@ -71,33 +71,39 @@ void uiDeviceUpdateVersion::CreateWidgets()
wxStaticText* serial_text = new wxStaticText(this, wxID_ANY, _L(SERIAL_STR)); wxStaticText* serial_text = new wxStaticText(this, wxID_ANY, _L(SERIAL_STR));
wxStaticText* version_text = new wxStaticText(this, wxID_ANY, _L(VERSION_STR)); wxStaticText* version_text = new wxStaticText(this, wxID_ANY, _L(VERSION_STR));
// The main sizer // Use bold font
wxFlexGridSizer* main_sizer = new wxFlexGridSizer(3, 3, 0, 0); wxFont font = this->GetFont();
main_sizer->AddGrowableCol(1); font.SetWeight(wxFONTWEIGHT_BOLD);
main_sizer->SetFlexibleDirection(wxHORIZONTAL); serial_text->SetFont(font);
main_sizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED); version_text->SetFont(font);
main_sizer->Add(m_dev_name, 0, wxALIGN_RIGHT | wxALL, FromDIP(5)); // The grid sizer
main_sizer->Add(0, 0, wxALL, wxEXPAND); wxFlexGridSizer* grid_sizer = new wxFlexGridSizer(2, 3, 0, 0);
main_sizer->Add(0, 0, wxALL, wxEXPAND); //grid_sizer->AddGrowableCol(1);
grid_sizer->SetFlexibleDirection(wxHORIZONTAL);
grid_sizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
main_sizer->Add(serial_text, 0, wxALIGN_RIGHT | wxALL, FromDIP(5)); grid_sizer->Add(serial_text, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
main_sizer->Add(m_dev_snl, 0, wxALIGN_LEFT | wxALL, FromDIP(5)); grid_sizer->Add(m_dev_snl, 0, wxALIGN_LEFT | wxALL, FromDIP(5));
main_sizer->Add(0, 0, wxALL, wxEXPAND); grid_sizer->Add(0, 0, wxALL, wxEXPAND);
m_dev_upgrade_indicator = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(5), FromDIP(5))); m_dev_upgrade_indicator = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(5), FromDIP(5)));
m_dev_upgrade_indicator->SetBitmap(ScalableBitmap(this, "monitor_upgrade_online", 5).bmp()); m_dev_upgrade_indicator->SetBitmap(ScalableBitmap(this, "monitor_upgrade_online", 5).bmp());
wxBoxSizer* version_hsizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* version_hsizer = new wxBoxSizer(wxHORIZONTAL);
version_hsizer->Add(m_dev_upgrade_indicator, 0, wxALIGN_CENTER_VERTICAL); version_hsizer->Add(m_dev_upgrade_indicator, 0, wxALIGN_CENTER_VERTICAL);
version_hsizer->AddSpacer(FromDIP(5)); version_hsizer->Add(version_text, 0, wxALIGN_RIGHT);
version_hsizer->Add(version_text, 0);
main_sizer->Add(version_hsizer, 0, wxALIGN_RIGHT | wxALL, FromDIP(5)); grid_sizer->Add(version_hsizer, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
main_sizer->Add(m_dev_version, 0, wxALIGN_LEFT | wxALL, FromDIP(5)); grid_sizer->Add(m_dev_version, 0, wxALIGN_LEFT | wxALL, FromDIP(5));
main_sizer->Add(0, 0, wxALL, wxEXPAND); grid_sizer->Add(0, 0, wxALL, wxEXPAND);
// Updating // Updating
wxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);
main_sizer->AddSpacer(FromDIP(20));
main_sizer->Add(m_dev_name, 0, wxALIGN_LEFT | wxALL, FromDIP(5));
main_sizer->Add(grid_sizer, 0, wxALIGN_LEFT, FromDIP(5));
SetSizer(main_sizer); SetSizer(main_sizer);
Layout(); Layout();
} }

View File

@ -23,6 +23,8 @@ static const std::unordered_map<wxString, wxString> ACCESSORY_DISPLAY_STR = {
{"O2L_PCM", L("Cutting Module")}, {"O2L_PCM", L("Cutting Module")},
{"O2L_ACM", "Active Cutting Module"}, {"O2L_ACM", "Active Cutting Module"},
{"O2L_UCM", "Ultrasonic Cutting Module"}, {"O2L_UCM", "Ultrasonic Cutting Module"},
{"O2L-LFA", L("Rotary Attachment")},
{"O2L-AFP",L("Auto Fire Extinguishing System")}
}; };
enum FIRMWARE_STASUS enum FIRMWARE_STASUS
@ -213,6 +215,8 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
createCuttingWidgets(m_main_left_sizer); createCuttingWidgets(m_main_left_sizer);
createLaserWidgets(m_main_left_sizer); createLaserWidgets(m_main_left_sizer);
createAirPumpWidgets(m_main_left_sizer); createAirPumpWidgets(m_main_left_sizer);
createExtinguishWidgets(m_main_left_sizer);
createRotaryWidgets(m_main_left_sizer);
m_main_sizer->Add(m_main_left_sizer, 1, wxEXPAND, 0); m_main_sizer->Add(m_main_left_sizer, 1, wxEXPAND, 0);
@ -333,7 +337,6 @@ void MachineInfoPanel::createAirPumpWidgets(wxBoxSizer* main_left_sizer)
m_air_pump_img->SetBitmap(m_img_air_pump.bmp()); m_air_pump_img->SetBitmap(m_img_air_pump.bmp());
wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL);
content_sizer->Add(0, 40, 0, wxEXPAND, FromDIP(5));
m_air_pump_version = new uiDeviceUpdateVersion(this, wxID_ANY); m_air_pump_version = new uiDeviceUpdateVersion(this, wxID_ANY);
content_sizer->Add(m_air_pump_version, 0, wxEXPAND, 0); content_sizer->Add(m_air_pump_version, 0, wxEXPAND, 0);
@ -354,7 +357,6 @@ void MachineInfoPanel::createCuttingWidgets(wxBoxSizer* main_left_sizer)
m_cutting_img->SetBitmap(m_img_cutting.bmp()); m_cutting_img->SetBitmap(m_img_cutting.bmp());
wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL);
content_sizer->Add(0, 40, 0, wxEXPAND, FromDIP(5));
m_cutting_version = new uiDeviceUpdateVersion(this, wxID_ANY); m_cutting_version = new uiDeviceUpdateVersion(this, wxID_ANY);
content_sizer->Add(m_cutting_version, 0, wxEXPAND, 0); content_sizer->Add(m_cutting_version, 0, wxEXPAND, 0);
@ -375,7 +377,6 @@ void MachineInfoPanel::createLaserWidgets(wxBoxSizer* main_left_sizer)
m_lazer_img->SetBitmap(m_img_laser.bmp()); m_lazer_img->SetBitmap(m_img_laser.bmp());
wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL);
content_sizer->Add(0, 40, 0, wxEXPAND, FromDIP(5));
m_laser_version = new uiDeviceUpdateVersion(this, wxID_ANY); m_laser_version = new uiDeviceUpdateVersion(this, wxID_ANY);
content_sizer->Add(m_laser_version, 0, wxEXPAND, 0); content_sizer->Add(m_laser_version, 0, wxEXPAND, 0);
@ -386,6 +387,46 @@ void MachineInfoPanel::createLaserWidgets(wxBoxSizer* main_left_sizer)
main_left_sizer->Add(m_laser_sizer, 0, wxEXPAND, 0); main_left_sizer->Add(m_laser_sizer, 0, wxEXPAND, 0);
} }
void MachineInfoPanel::createExtinguishWidgets(wxBoxSizer* main_left_sizer)
{
m_extinguish_line_above = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL);
m_extinguish_line_above->SetBackgroundColour(wxColour(206, 206, 206));
main_left_sizer->Add(m_extinguish_line_above, 0, wxEXPAND | wxLEFT, FromDIP(40));
m_extinguish_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(200), FromDIP(200)));
m_extinguish_img->SetBitmap(m_img_extinguish.bmp());
wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL);
m_extinguish_version = new uiDeviceUpdateVersion(this, wxID_ANY);
content_sizer->Add(m_extinguish_version, 0, wxEXPAND, 0);
m_extinguish_sizer = new wxBoxSizer(wxHORIZONTAL);
m_extinguish_sizer->Add(m_extinguish_img, 0, wxALIGN_TOP | wxALL, FromDIP(5));
m_extinguish_sizer->Add(content_sizer, 1, wxEXPAND, 0);
main_left_sizer->Add(m_extinguish_sizer, 0, wxEXPAND, 0);
}
void MachineInfoPanel::createRotaryWidgets(wxBoxSizer* main_left_sizer)
{
m_rotary_line_above = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL);
m_rotary_line_above->SetBackgroundColour(wxColour(206, 206, 206));
main_left_sizer->Add(m_rotary_line_above, 0, wxEXPAND | wxLEFT, FromDIP(40));
m_rotary_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(200), FromDIP(200)));
m_rotary_img->SetBitmap(m_img_rotary.bmp());
wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL);
m_rotary_version = new uiDeviceUpdateVersion(this, wxID_ANY);
content_sizer->Add(m_rotary_version, 0, wxEXPAND, 0);
m_rotary_sizer = new wxBoxSizer(wxHORIZONTAL);
m_rotary_sizer->Add(m_rotary_img, 0, wxALIGN_TOP | wxALL, FromDIP(5));
m_rotary_sizer->Add(content_sizer, 1, wxEXPAND, 0);
main_left_sizer->Add(m_rotary_sizer, 0, wxEXPAND, 0);
}
void MachineInfoPanel::msw_rescale() void MachineInfoPanel::msw_rescale()
{ {
rescale_bitmaps(); rescale_bitmaps();
@ -418,6 +459,8 @@ void MachineInfoPanel::init_bitmaps()
m_img_laser = ScalableBitmap(this, "laser", 160); m_img_laser = ScalableBitmap(this, "laser", 160);
m_img_cutting = ScalableBitmap(this, "cut", 160); m_img_cutting = ScalableBitmap(this, "cut", 160);
m_img_extinguish = ScalableBitmap(this, "cut", 160);//TODO
m_img_rotary = ScalableBitmap(this, "cut", 160);//TODO
upgrade_green_icon = ScalableBitmap(this, "monitor_upgrade_online", 5); upgrade_green_icon = ScalableBitmap(this, "monitor_upgrade_online", 5);
upgrade_gray_icon = ScalableBitmap(this, "monitor_upgrade_offline", 5); upgrade_gray_icon = ScalableBitmap(this, "monitor_upgrade_offline", 5);
@ -513,6 +556,8 @@ void MachineInfoPanel::update(MachineObject* obj)
update_air_pump(obj); update_air_pump(obj);
update_cut(obj); update_cut(obj);
update_laszer(obj); update_laszer(obj);
update_extinguish(obj);
update_rotary(obj);
//update progress //update progress
int upgrade_percent = obj->get_upgrade_percent(); int upgrade_percent = obj->get_upgrade_percent();
@ -1000,43 +1045,54 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj)
void MachineInfoPanel::update_air_pump(MachineObject* obj) void MachineInfoPanel::update_air_pump(MachineObject* obj)
{ {
if (obj && obj->air_pump_version_info.isValid()) if (obj && obj->air_pump_version_info.isValid()) {
{
m_air_pump_version->UpdateInfo(obj->air_pump_version_info); m_air_pump_version->UpdateInfo(obj->air_pump_version_info);
show_air_pump(true); show_air_pump(true);
} } else {
else
{
show_air_pump(false); show_air_pump(false);
} }
} }
void MachineInfoPanel::update_cut(MachineObject* obj) void MachineInfoPanel::update_cut(MachineObject* obj)
{ {
if (obj && obj->cutting_module_version_info.isValid()) if (obj && obj->cutting_module_version_info.isValid()) {
{
m_cutting_version->UpdateInfo(obj->cutting_module_version_info); m_cutting_version->UpdateInfo(obj->cutting_module_version_info);
show_cut(true); show_cut(true);
} } else {
else
{
show_cut(false); show_cut(false);
} }
} }
void MachineInfoPanel::update_laszer(MachineObject* obj) void MachineInfoPanel::update_laszer(MachineObject* obj)
{ {
if (obj && obj->laser_version_info.isValid()) if (obj && obj->laser_version_info.isValid()) {
{
m_laser_version->UpdateInfo(obj->laser_version_info); m_laser_version->UpdateInfo(obj->laser_version_info);
show_laszer(true); show_laszer(true);
} } else {
else
{
show_laszer(false); show_laszer(false);
} }
} }
void MachineInfoPanel::update_extinguish(MachineObject* obj)
{
if (obj && obj->extinguish_version_info.isValid()) {
m_extinguish_version->UpdateInfo(obj->extinguish_version_info);
show_extinguish(true);
} else {
show_extinguish(false);
}
}
void MachineInfoPanel::update_rotary(MachineObject* obj)
{
if (obj && obj->rotary_version_info.isValid()) {
m_rotary_version->UpdateInfo(obj->rotary_version_info);
show_rotary(true);
} else {
show_rotary(false);
}
}
void MachineInfoPanel::show_status(int status, std::string upgrade_status_str) void MachineInfoPanel::show_status(int status, std::string upgrade_status_str)
{ {
if (last_status == status && last_status_str == upgrade_status_str) return; if (last_status == status && last_status_str == upgrade_status_str) return;
@ -1161,6 +1217,24 @@ void MachineInfoPanel::show_laszer(bool show)
} }
} }
void MachineInfoPanel::show_extinguish(bool show)
{
if (m_extinguish_version->IsShown() != show) {
m_extinguish_img->Show(show);
m_extinguish_line_above->Show(show);
m_extinguish_version->Show(show);
}
}
void MachineInfoPanel::show_rotary(bool show)
{
if (m_rotary_version->IsShown() != show) {
m_rotary_img->Show(show);
m_rotary_line_above->Show(show);
m_rotary_version->Show(show);
}
}
void MachineInfoPanel::on_sys_color_changed() void MachineInfoPanel::on_sys_color_changed()
{ {
if (m_obj) { if (m_obj) {

View File

@ -126,6 +126,18 @@ protected:
wxStaticLine* m_laser_line_above = nullptr;; wxStaticLine* m_laser_line_above = nullptr;;
uiDeviceUpdateVersion* m_laser_version = nullptr; uiDeviceUpdateVersion* m_laser_version = nullptr;
/* fire extinguish*/
wxBoxSizer* m_extinguish_sizer = nullptr;
wxStaticBitmap* m_extinguish_img = nullptr;
wxStaticLine* m_extinguish_line_above = nullptr;;
uiDeviceUpdateVersion* m_extinguish_version = nullptr;
/* rotary attachment*/
wxBoxSizer* m_rotary_sizer = nullptr;
wxStaticBitmap* m_rotary_img = nullptr;
wxStaticLine* m_rotary_line_above = nullptr;;
uiDeviceUpdateVersion* m_rotary_version = nullptr;
/* upgrade widgets */ /* upgrade widgets */
wxBoxSizer* m_upgrading_sizer; wxBoxSizer* m_upgrading_sizer;
wxStaticText * m_staticText_upgrading_info; wxStaticText * m_staticText_upgrading_info;
@ -146,6 +158,8 @@ protected:
ScalableBitmap m_img_air_pump; ScalableBitmap m_img_air_pump;
ScalableBitmap m_img_cutting; ScalableBitmap m_img_cutting;
ScalableBitmap m_img_laser; ScalableBitmap m_img_laser;
ScalableBitmap m_img_extinguish;
ScalableBitmap m_img_rotary;
ScalableBitmap upgrade_gray_icon; ScalableBitmap upgrade_gray_icon;
ScalableBitmap upgrade_green_icon; ScalableBitmap upgrade_green_icon;
ScalableBitmap upgrade_yellow_icon; ScalableBitmap upgrade_yellow_icon;
@ -175,16 +189,11 @@ public:
void update(MachineObject *obj); void update(MachineObject *obj);
void update_version_text(MachineObject *obj); void update_version_text(MachineObject *obj);
void update_ams_ext(MachineObject *obj); void update_ams_ext(MachineObject *obj);
void update_air_pump(MachineObject* obj);
void update_cut(MachineObject* obj);
void update_laszer(MachineObject* obj);
void show_status(int status, std::string upgrade_status_str = ""); void show_status(int status, std::string upgrade_status_str = "");
void show_ams(bool show = false, bool force_update = false); void show_ams(bool show = false, bool force_update = false);
void show_ext(bool show = false, bool force_update = false); void show_ext(bool show = false, bool force_update = false);
void show_extra_ams(bool show = false, bool force_update = false); void show_extra_ams(bool show = false, bool force_update = false);
void show_air_pump(bool show = true);
void show_cut(bool show = true);
void show_laszer(bool show = true);
void on_upgrade_firmware(wxCommandEvent &event); void on_upgrade_firmware(wxCommandEvent &event);
void on_consisitency_upgrade_firmware(wxCommandEvent &event); void on_consisitency_upgrade_firmware(wxCommandEvent &event);
@ -206,6 +215,20 @@ private:
void createAirPumpWidgets(wxBoxSizer* main_left_sizer); void createAirPumpWidgets(wxBoxSizer* main_left_sizer);
void createCuttingWidgets(wxBoxSizer* main_left_sizer); void createCuttingWidgets(wxBoxSizer* main_left_sizer);
void createLaserWidgets(wxBoxSizer* main_left_sizer); void createLaserWidgets(wxBoxSizer* main_left_sizer);
void createExtinguishWidgets(wxBoxSizer* main_left_sizer);
void createRotaryWidgets(wxBoxSizer* main_left_sizer);
void update_air_pump(MachineObject* obj);
void update_cut(MachineObject* obj);
void update_laszer(MachineObject* obj);
void update_extinguish(MachineObject* obj);
void update_rotary(MachineObject* obj);
void show_air_pump(bool show = true);
void show_cut(bool show = true);
void show_laszer(bool show = true);
void show_extinguish(bool show = true);
void show_rotary(bool show = true);
}; };
//enum UpgradeMode { //enum UpgradeMode {