refactoring the modules of amscontrol

adapted from bambulab/BambuStudio@b78fa4c11c

Co-authored-by: tao wang <tao.wang@bambulab.com>
This commit is contained in:
Noisyfox 2025-05-07 09:47:56 +08:00
parent dad7320f4b
commit afb1d3df6f
8 changed files with 3005 additions and 2927 deletions

View file

@ -828,6 +828,9 @@ StatusBasePanel::StatusBasePanel(wxWindow *parent, wxWindowID id, const wxPoint
: wxScrolledWindow(parent, id, pos, size, wxHSCROLL | wxVSCROLL)
{
this->SetScrollRate(5, 5);
Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager();
if (!dev) return;
obj = dev->get_selected_machine();
init_bitmaps();
@ -2629,10 +2632,13 @@ void StatusPanel::update_ams(MachineObject *obj)
if (m_filament_setting_dlg) m_filament_setting_dlg->update();
std::vector<AMSinfo> ams_info;
ams_info.clear();
for (auto ams = obj->amsList.begin(); ams != obj->amsList.end(); ams++) {
AMSinfo info;
info.ams_id = ams->first;
if (ams->second->is_exists && info.parse_ams_info(obj, ams->second, obj->ams_calibrate_remain_flag, obj->is_support_ams_humidity)) ams_info.push_back(info);
if (ams->second->is_exists && info.parse_ams_info(obj, ams->second, obj->ams_calibrate_remain_flag, obj->is_support_ams_humidity)) {
ams_info.push_back(info);
}
}
//if (obj->ams_exist_bits != last_ams_exist_bits || obj->tray_exist_bits != last_tray_exist_bits || obj->tray_is_bbl_bits != last_tray_is_bbl_bits ||
// obj->tray_read_done_bits != last_read_done_bits || obj->ams_version != last_ams_version) {
@ -3680,9 +3686,17 @@ void StatusPanel::on_filament_edit(wxCommandEvent &event)
if (obj) {
m_filament_setting_dlg->obj = obj;
std::string ams_id = m_ams_control->GetCurentAms();
std::string ams_id;
int ams_id_int = 0;
int tray_id_int = 0;
int tray_id = event.GetInt();
if (tray_id == VIRTUAL_TRAY_ID) {
ams_id = std::to_string(tray_id);
}
else{
ams_id = std::to_string(tray_id / 4);
}
if (ams_id.compare(std::to_string(VIRTUAL_TRAY_ID)) == 0) {
tray_id_int = VIRTUAL_TRAY_ID;
m_filament_setting_dlg->ams_id = ams_id_int;
@ -3694,10 +3708,10 @@ void StatusPanel::on_filament_edit(wxCommandEvent &event)
m_filament_setting_dlg->Move(wxPoint(current_position_x, current_position_y));
m_filament_setting_dlg->Popup(wxEmptyString, wxEmptyString, wxEmptyString, wxEmptyString, k_val, n_val);
} else {
std::string tray_id = event.GetString().ToStdString(); // m_ams_control->GetCurrentCan(ams_id);
//std::string tray_id = event.GetString().ToStdString(); // m_ams_control->GetCurrentCan(ams_id);
try {
ams_id_int = atoi(ams_id.c_str());
tray_id_int = atoi(tray_id.c_str());
ams_id_int = tray_id / 4;
tray_id_int = tray_id % 4;
m_filament_setting_dlg->ams_id = ams_id_int;
m_filament_setting_dlg->tray_id = tray_id_int;
@ -3707,9 +3721,9 @@ void StatusPanel::on_filament_edit(wxCommandEvent &event)
std::string temp_min;
wxString k_val;
wxString n_val;
auto it = obj->amsList.find(ams_id);
auto it = obj->amsList.find(std::to_string(ams_id_int));
if (it != obj->amsList.end()) {
auto tray_it = it->second->trayList.find(tray_id);
auto tray_it = it->second->trayList.find(std::to_string(tray_id));
if (tray_it != it->second->trayList.end()) {
k_val = wxString::Format("%.3f", tray_it->second->k);
n_val = wxString::Format("%.3f", tray_it->second->n);
@ -3762,7 +3776,10 @@ void StatusPanel::on_ext_spool_edit(wxCommandEvent &event)
current_position_y = current_position_y + m_filament_setting_dlg->GetSize().GetHeight() > drect ? drect - m_filament_setting_dlg->GetSize().GetHeight() : current_position_y;
if (obj) {
int tray_id = event.GetInt();
int ams_id = tray_id;
m_filament_setting_dlg->obj = obj;
m_filament_setting_dlg->ams_id = ams_id;
try {
m_filament_setting_dlg->tray_id = VIRTUAL_TRAY_ID;
std::string sn_number;