NEW:add remaining capacity detection switch in ams setting
Change-Id: I8f7be78dbf881bb5e2564aea4d0e01d78f1b0433
This commit is contained in:
parent
a316bdfa22
commit
8216265725
7 changed files with 174 additions and 57 deletions
|
@ -26,8 +26,7 @@ void AMSSetting::create()
|
|||
|
||||
m_panel_body = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), wxTAB_TRAVERSAL);
|
||||
m_panel_body->SetBackgroundColour(*wxWHITE);
|
||||
wxBoxSizer *m_sizerl_body;
|
||||
m_sizerl_body = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer *m_sizerl_body = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
|
||||
// checkbox area 1
|
||||
|
@ -46,8 +45,7 @@ void AMSSetting::create()
|
|||
m_title_Insert_material_auto_read->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_Insert_material->Add(m_title_Insert_material_auto_read, 1, wxALL | wxEXPAND, 0);
|
||||
|
||||
m_sizerl_body->Add(m_sizer_Insert_material, 0, wxEXPAND, 0);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
|
||||
|
||||
|
||||
wxBoxSizer *m_sizer_Insert_material_tip = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_sizer_Insert_material_tip_inline = new wxBoxSizer(wxVERTICAL);
|
||||
|
@ -89,31 +87,23 @@ void AMSSetting::create()
|
|||
m_sizer_Insert_material_tip_inline->Add(m_tip_Insert_material_line3, 0, wxEXPAND, 0);
|
||||
|
||||
m_sizer_Insert_material_tip->Add(m_sizer_Insert_material_tip_inline, 1, wxALIGN_CENTER, 0);
|
||||
m_sizerl_body->Add(m_sizer_Insert_material_tip, 0, wxEXPAND | wxLEFT, 18);
|
||||
|
||||
|
||||
// checkbox area 2
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 15);
|
||||
wxBoxSizer *m_sizer_starting = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
m_checkbox_starting_auto_read = new ::CheckBox(m_panel_body);
|
||||
m_checkbox_starting_auto_read->Bind(wxEVT_TOGGLEBUTTON, &AMSSetting::on_starting_read, this);
|
||||
m_sizer_starting->Add(m_checkbox_starting_auto_read, 0, wxTOP, 1);
|
||||
|
||||
m_sizer_starting->Add(0, 0, 0, wxLEFT, 12);
|
||||
|
||||
m_title_starting_auto_read = new wxStaticText(m_panel_body, wxID_ANY, _L("Power on update"), wxDefaultPosition,
|
||||
wxDefaultSize, 0);
|
||||
m_title_starting_auto_read = new wxStaticText(m_panel_body, wxID_ANY, _L("Power on update"), wxDefaultPosition,wxDefaultSize, 0);
|
||||
m_title_starting_auto_read->SetFont(::Label::Head_13);
|
||||
m_title_starting_auto_read->SetForegroundColour(AMS_SETTING_GREY800);
|
||||
m_title_starting_auto_read->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_starting->Add(m_title_starting_auto_read, 1, wxEXPAND, 0);
|
||||
|
||||
m_sizerl_body->Add(m_sizer_starting, 0, wxEXPAND|wxTOP, FromDIP(8));
|
||||
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
|
||||
|
||||
|
||||
wxBoxSizer *m_sizer_starting_tip = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
m_sizer_starting_tip->Add(0, 0, 0, wxLEFT, 10);
|
||||
|
||||
// tip line
|
||||
|
@ -136,51 +126,98 @@ void AMSSetting::create()
|
|||
m_tip_starting_line2->SetSize(wxSize(AMS_SETTING_BODY_WIDTH, -1));
|
||||
m_tip_starting_line2->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_starting_tip_inline->Add(m_tip_starting_line2, 0, wxEXPAND,0);
|
||||
|
||||
m_sizer_starting_tip->Add(m_sizer_starting_tip_inline, 1, wxALIGN_CENTER, 0);
|
||||
|
||||
m_sizerl_body->Add(m_sizer_starting_tip, 0, wxLEFT, 18);
|
||||
// checkbox area 3
|
||||
wxBoxSizer* m_sizer_remain = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_checkbox_remain = new ::CheckBox(m_panel_body);
|
||||
m_checkbox_remain->Bind(wxEVT_TOGGLEBUTTON, &AMSSetting::on_remain, this);
|
||||
m_sizer_remain->Add(m_checkbox_remain, 0, wxTOP, 1);
|
||||
m_sizer_remain->Add(0, 0, 0, wxLEFT, 12);
|
||||
m_title_remain = new wxStaticText(m_panel_body, wxID_ANY, _L("Update remaining capacity"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_title_remain->SetFont(::Label::Head_13);
|
||||
m_title_remain->SetForegroundColour(AMS_SETTING_GREY800);
|
||||
m_title_remain->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_remain->Add(m_title_remain, 1, wxEXPAND, 0);
|
||||
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 6);
|
||||
|
||||
|
||||
wxBoxSizer* m_sizer_remain_tip = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_sizer_remain_tip->Add(0, 0, 0, wxLEFT, 10);
|
||||
|
||||
// tip line
|
||||
m_sizer_remain_inline = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
m_tip_remain_line1 = new wxStaticText(m_panel_body, wxID_ANY,
|
||||
_L("The AMS will estimate Bambu filament's remaining capacity after the filament info is updated. During printing, remaining capacity will be updated automatically."),
|
||||
wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_tip_remain_line1->SetFont(::Label::Body_13);
|
||||
m_tip_remain_line1->SetForegroundColour(AMS_SETTING_GREY700);
|
||||
m_tip_remain_line1->SetSize(wxSize(AMS_SETTING_BODY_WIDTH, -1));
|
||||
m_tip_remain_line1->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_remain_inline->Add(m_tip_remain_line1, 0, wxEXPAND, 0);
|
||||
m_sizer_remain_tip->Add(m_sizer_remain_inline, 1, wxALIGN_CENTER, 0);
|
||||
|
||||
// checkbox area 4
|
||||
wxBoxSizer* m_sizer_switch_filament = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_checkbox_switch_filament = new ::CheckBox(m_panel_body);
|
||||
m_checkbox_switch_filament->Bind(wxEVT_TOGGLEBUTTON, &AMSSetting::on_switch_filament, this);
|
||||
m_sizer_switch_filament->Add(m_checkbox_switch_filament, 0, wxTOP, 1);
|
||||
m_sizer_switch_filament->Add(0, 0, 0, wxLEFT, 12);
|
||||
m_title_switch_filament = new wxStaticText(m_panel_body, wxID_ANY, _L("AMS auto switch filament"), wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_title_switch_filament->SetFont(::Label::Head_13);
|
||||
m_title_switch_filament->SetForegroundColour(AMS_SETTING_GREY800);
|
||||
m_title_switch_filament->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_switch_filament->Add(m_title_switch_filament, 1, wxEXPAND, 0);
|
||||
|
||||
|
||||
|
||||
wxBoxSizer* m_sizer_switch_filament_tip = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_sizer_switch_filament_tip->Add(0, 0, 0, wxLEFT, 10);
|
||||
|
||||
// tip line
|
||||
m_sizer_switch_filament_inline = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
m_tip_switch_filament_line1 = new wxStaticText(m_panel_body, wxID_ANY,
|
||||
_L("AMS switches to the same type of filament automatically when the current filament runs out."),
|
||||
wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_tip_switch_filament_line1->SetFont(::Label::Body_13);
|
||||
m_tip_switch_filament_line1->SetForegroundColour(AMS_SETTING_GREY700);
|
||||
m_tip_switch_filament_line1->SetSize(wxSize(AMS_SETTING_BODY_WIDTH, -1));
|
||||
m_tip_switch_filament_line1->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_switch_filament_inline->Add(m_tip_switch_filament_line1, 0, wxEXPAND, 0);
|
||||
m_sizer_switch_filament_tip->Add(m_sizer_switch_filament_inline, 1, wxALIGN_CENTER, 0);
|
||||
|
||||
|
||||
// panel img
|
||||
m_panel_img = new wxPanel(m_panel_body, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||
wxPanel* m_panel_img = new wxPanel(m_panel_body, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_panel_img->SetBackgroundColour(AMS_SETTING_GREY200);
|
||||
|
||||
wxBoxSizer *m_sizer_img = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
auto img = new wxStaticBitmap(m_panel_img, wxID_ANY, create_scaled_bitmap("ams_icon", nullptr, 126), wxDefaultPosition, wxDefaultSize);
|
||||
m_sizer_img->Add(img, 0, wxALIGN_CENTER | wxTOP, 26);
|
||||
|
||||
m_sizer_img->Add(0, 0, 0, wxTOP, 18);
|
||||
|
||||
/* wxBoxSizer *m_sizer_ams_img_tip = new wxBoxSizer(wxVERTICAL);
|
||||
m_tip_ams_img = new wxStaticText(m_panel_img, wxID_ANY, _L("Click the automatic calibration button to enter the AMS initialization setup program"), wxDefaultPosition,
|
||||
wxDefaultSize, 0);
|
||||
m_tip_ams_img->SetFont(::Label::Body_13);
|
||||
m_tip_ams_img->SetForegroundColour(AMS_SETTING_GREY700);
|
||||
m_tip_ams_img->Wrap(AMS_SETTING_BODY_WIDTH);
|
||||
m_sizer_ams_img_tip->Add(m_tip_ams_img, 0, wxALIGN_CENTER, 0);
|
||||
|
||||
m_button_auto_demarcate = new Button(m_panel_img, _L("Auto Calibration"));
|
||||
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed), std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Normal));
|
||||
m_button_auto_demarcate->SetBackgroundColor(btn_bg_green);
|
||||
m_button_auto_demarcate->SetBorderColor(wxColour(0, 174, 66));
|
||||
m_button_auto_demarcate->SetTextColor(AMS_SETTING_GREY200);
|
||||
m_button_auto_demarcate->SetMinSize(AMS_SETTING_BUTTON_SIZE);
|
||||
m_button_auto_demarcate->SetCornerRadius(12);
|
||||
m_button_auto_demarcate->Bind(wxEVT_LEFT_DOWN, &AMSSetting::on_select_ok, this);
|
||||
|
||||
m_sizer_img->Add(m_sizer_ams_img_tip, 1, wxALIGN_CENTER, 0);
|
||||
m_sizer_img->Add(0, 0, 0, wxTOP, 12);
|
||||
m_sizer_img->Add(m_button_auto_demarcate, 0, wxALIGN_CENTER, 0);
|
||||
m_sizer_img->Add(0, 0, 0, wxBOTTOM, 17);*/
|
||||
|
||||
m_panel_img->SetSizer(m_sizer_img);
|
||||
m_panel_img->Layout();
|
||||
m_sizer_img->Fit(m_panel_img);
|
||||
m_sizerl_body->Add(0,0,0,wxTOP, FromDIP(5));
|
||||
|
||||
|
||||
m_sizerl_body->Add(m_sizer_Insert_material, 0, wxEXPAND, 0);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
|
||||
m_sizerl_body->Add(m_sizer_Insert_material_tip, 0, wxEXPAND | wxLEFT, 18);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 15);
|
||||
m_sizerl_body->Add(m_sizer_starting, 0, wxEXPAND | wxTOP, FromDIP(8));
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
|
||||
m_sizerl_body->Add(m_sizer_starting_tip, 0, wxLEFT, 18);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 15);
|
||||
m_sizerl_body->Add(m_sizer_remain, 0, wxEXPAND | wxTOP, FromDIP(8));
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
|
||||
m_sizerl_body->Add(m_sizer_remain_tip, 0, wxLEFT, 18);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 15);
|
||||
m_sizerl_body->Add(m_sizer_switch_filament, 0, wxEXPAND | wxTOP, FromDIP(8));
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
|
||||
m_sizerl_body->Add(m_sizer_switch_filament_tip, 0, wxLEFT, 18);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, 6);
|
||||
m_sizerl_body->Add(0, 0, 0, wxTOP, FromDIP(5));
|
||||
m_sizerl_body->Add(m_panel_img, 1, wxEXPAND | wxALL, FromDIP(5));
|
||||
|
||||
m_panel_body->SetSizer(m_sizerl_body);
|
||||
|
@ -228,6 +265,17 @@ void AMSSetting::update_starting_read_mode(bool selected)
|
|||
Fit();
|
||||
}
|
||||
|
||||
void AMSSetting::update_remain_mode(bool selected)
|
||||
{
|
||||
m_checkbox_remain->SetValue(selected);
|
||||
}
|
||||
|
||||
void AMSSetting::update_switch_filament(bool selected)
|
||||
{
|
||||
m_checkbox_switch_filament->SetValue(selected);
|
||||
}
|
||||
|
||||
|
||||
void AMSSetting::on_select_ok(wxMouseEvent &event)
|
||||
{
|
||||
if (obj) {
|
||||
|
@ -253,8 +301,9 @@ void AMSSetting::on_insert_material_read(wxCommandEvent &event)
|
|||
|
||||
bool start_read_opt = m_checkbox_starting_auto_read->GetValue();
|
||||
bool tray_read_opt = m_checkbox_Insert_material_auto_read->GetValue();
|
||||
bool remain_opt = m_checkbox_remain->GetValue();
|
||||
|
||||
obj->command_ams_user_settings(ams_id, start_read_opt, tray_read_opt);
|
||||
obj->command_ams_user_settings(ams_id, start_read_opt, tray_read_opt, remain_opt);
|
||||
|
||||
m_sizer_Insert_material_tip_inline->Layout();
|
||||
Layout();
|
||||
|
@ -278,8 +327,9 @@ void AMSSetting::on_starting_read(wxCommandEvent &event)
|
|||
|
||||
bool start_read_opt = m_checkbox_starting_auto_read->GetValue();
|
||||
bool tray_read_opt = m_checkbox_Insert_material_auto_read->GetValue();
|
||||
bool remain_opt = m_checkbox_remain->GetValue();
|
||||
|
||||
obj->command_ams_user_settings(ams_id, start_read_opt, tray_read_opt);
|
||||
obj->command_ams_user_settings(ams_id, start_read_opt, tray_read_opt, remain_opt);
|
||||
|
||||
m_sizer_starting_tip_inline->Layout();
|
||||
Layout();
|
||||
|
@ -288,6 +338,22 @@ void AMSSetting::on_starting_read(wxCommandEvent &event)
|
|||
event.Skip();
|
||||
}
|
||||
|
||||
void AMSSetting::on_remain(wxCommandEvent& event)
|
||||
{
|
||||
bool start_read_opt = m_checkbox_starting_auto_read->GetValue();
|
||||
bool tray_read_opt = m_checkbox_Insert_material_auto_read->GetValue();
|
||||
bool remain_opt = m_checkbox_remain->GetValue();
|
||||
obj->command_ams_user_settings(ams_id, start_read_opt, tray_read_opt, remain_opt);
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void AMSSetting::on_switch_filament(wxCommandEvent& event)
|
||||
{
|
||||
bool switch_filament = m_checkbox_switch_filament->GetValue();
|
||||
obj->command_ams_switch_filament(switch_filament);
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
wxString AMSSetting::append_title(wxString text)
|
||||
{
|
||||
wxString lab;
|
||||
|
|
|
@ -29,9 +29,13 @@ public:
|
|||
|
||||
void update_insert_material_read_mode(bool selected);
|
||||
void update_starting_read_mode(bool selected);
|
||||
void on_select_ok(wxMouseEvent &event);
|
||||
void update_remain_mode(bool selected);
|
||||
void update_switch_filament(bool selected);
|
||||
void on_select_ok(wxMouseEvent& event);
|
||||
void on_insert_material_read(wxCommandEvent &event);
|
||||
void on_starting_read(wxCommandEvent &event);
|
||||
void on_remain(wxCommandEvent& event);
|
||||
void on_switch_filament(wxCommandEvent& event);
|
||||
wxString append_title(wxString text);
|
||||
wxStaticText *append_text(wxString text);
|
||||
MachineObject *obj{nullptr};
|
||||
|
@ -47,16 +51,27 @@ protected:
|
|||
wxStaticText *m_tip_Insert_material_line1;
|
||||
wxStaticText *m_tip_Insert_material_line2;
|
||||
wxStaticText *m_tip_Insert_material_line3;
|
||||
|
||||
CheckBox * m_checkbox_starting_auto_read;
|
||||
wxStaticText *m_title_starting_auto_read;
|
||||
wxStaticText *m_tip_starting_line1;
|
||||
wxStaticText *m_tip_starting_line2;
|
||||
wxPanel * m_panel_img;
|
||||
|
||||
CheckBox * m_checkbox_remain;
|
||||
wxStaticText *m_title_remain;
|
||||
wxStaticText *m_tip_remain_line1;
|
||||
|
||||
CheckBox* m_checkbox_switch_filament;
|
||||
wxStaticText* m_title_switch_filament;
|
||||
wxStaticText* m_tip_switch_filament_line1;
|
||||
|
||||
wxStaticText *m_tip_ams_img;
|
||||
Button * m_button_auto_demarcate;
|
||||
|
||||
wxBoxSizer *m_sizer_Insert_material_tip_inline;
|
||||
wxBoxSizer *m_sizer_starting_tip_inline;
|
||||
wxBoxSizer *m_sizer_remain_inline;
|
||||
wxBoxSizer *m_sizer_switch_filament_inline;
|
||||
};
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
|
|
@ -334,6 +334,7 @@ MachineObject::MachineObject(NetworkAgent* agent, std::string name, std::string
|
|||
ams_insert_flag = false;
|
||||
ams_power_on_flag = false;
|
||||
ams_support_use_ams = false;
|
||||
ams_calibrate_remain_flag = false;
|
||||
ams_humidity = 5;
|
||||
|
||||
/* signals */
|
||||
|
@ -1142,7 +1143,14 @@ void MachineObject::parse_status(int flag)
|
|||
|
||||
camera_recording = ((flag >> 5) & 0x1) != 0;
|
||||
ams_calibrate_remain_flag = ((flag >> 7) & 0x1) != 0;
|
||||
|
||||
if (ams_print_option_count > 0)
|
||||
ams_print_option_count--;
|
||||
else {
|
||||
ams_auto_switch_filament_flag = ((flag >> 10) & 0x1) != 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PrintingSpeedLevel MachineObject::_parse_printing_speed_lvl(int lvl)
|
||||
{
|
||||
|
@ -1496,6 +1504,20 @@ int MachineObject::command_set_printing_option(bool auto_recovery)
|
|||
return this->publish_json(j.dump());
|
||||
}
|
||||
|
||||
int MachineObject::command_ams_switch_filament(bool switch_filament)
|
||||
{
|
||||
json j;
|
||||
j["print"]["command"] = "print_option";
|
||||
j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++);
|
||||
j["print"]["auto_switch_filament"] = switch_filament;
|
||||
|
||||
ams_auto_switch_filament_flag = switch_filament;
|
||||
BOOST_LOG_TRIVIAL(trace) << "command_ams_filament_settings:" << switch_filament;
|
||||
ams_print_option_count = HOLD_COUNT_MAX;
|
||||
|
||||
return this->publish_json(j.dump());
|
||||
}
|
||||
|
||||
int MachineObject::command_axis_control(std::string axis, double unit, double value, int speed)
|
||||
{
|
||||
char cmd[256];
|
||||
|
@ -2488,6 +2510,9 @@ int MachineObject::parse_json(std::string payload)
|
|||
if (jj["ams"].contains("power_on_flag")) {
|
||||
ams_power_on_flag = jj["ams"]["power_on_flag"].get<bool>();
|
||||
}
|
||||
if (jj["ams"].contains("calibrate_remain_flag")) {
|
||||
ams_calibrate_remain_flag = jj["ams"]["calibrate_remain_flag"].get<bool>();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ams_exist_bits != last_ams_exist_bits
|
||||
|
|
|
@ -187,7 +187,7 @@ public:
|
|||
bool is_bbl;
|
||||
bool is_exists = false;
|
||||
int hold_count = 0;
|
||||
int remain; // filament remain: 0 ~ 100
|
||||
int remain = 0; // filament remain: 0 ~ 100
|
||||
|
||||
AmsRoadPosition road_position;
|
||||
AmsStep step_state;
|
||||
|
@ -395,6 +395,7 @@ public:
|
|||
bool ams_insert_flag { false };
|
||||
bool ams_power_on_flag { false };
|
||||
bool ams_calibrate_remain_flag { false };
|
||||
bool ams_auto_switch_filament_flag { false };
|
||||
bool ams_support_use_ams { false };
|
||||
int ams_humidity;
|
||||
int ams_user_setting_hold_count = 0;
|
||||
|
@ -540,6 +541,7 @@ public:
|
|||
int xcam_buildplate_marker_hold_count = 0;
|
||||
bool xcam_auto_recovery_step_loss{ false };
|
||||
int xcam_auto_recovery_hold_count = 0;
|
||||
int ams_print_option_count = 0;
|
||||
|
||||
/* HMS */
|
||||
std::vector<HMSItem> hms_list;
|
||||
|
@ -597,6 +599,7 @@ public:
|
|||
int command_ams_change_filament(int tray_id, int old_temp = 210, int new_temp = 210);
|
||||
int command_ams_user_settings(int ams_id, bool start_read_opt, bool tray_read_opt, bool remain_flag = false);
|
||||
int command_ams_user_settings(int ams_id, AmsOptionType op, bool value);
|
||||
int command_ams_switch_filament(bool switch_filament);
|
||||
int command_ams_calibrate(int ams_id);
|
||||
int command_ams_filament_settings(int ams_id, int tray_id, std::string setting_id, std::string tray_color, std::string tray_type, int nozzle_temp_min, int nozzle_temp_max);
|
||||
int command_ams_select_tray(std::string tray_id);
|
||||
|
|
|
@ -1656,6 +1656,8 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
if (obj && m_ams_setting_dlg->IsShown()) {
|
||||
m_ams_setting_dlg->update_insert_material_read_mode(obj->ams_insert_flag);
|
||||
m_ams_setting_dlg->update_starting_read_mode(obj->ams_power_on_flag);
|
||||
m_ams_setting_dlg->update_remain_mode(obj->ams_calibrate_remain_flag);
|
||||
m_ams_setting_dlg->update_switch_filament(obj->ams_auto_switch_filament_flag);
|
||||
}
|
||||
}
|
||||
if (m_filament_setting_dlg) { m_filament_setting_dlg->obj = obj; }
|
||||
|
@ -1686,7 +1688,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
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(ams->second)) ams_info.push_back(info);
|
||||
if (ams->second->is_exists && info.parse_ams_info(ams->second, obj->ams_calibrate_remain_flag)) 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) {
|
||||
|
|
|
@ -54,7 +54,7 @@ static wxColour decode_color(const std::string &color)
|
|||
return wxColour(ret[0], ret[1], ret[2]);
|
||||
}
|
||||
|
||||
bool AMSinfo::parse_ams_info(Ams *ams)
|
||||
bool AMSinfo::parse_ams_info(Ams *ams, bool remain_flag)
|
||||
{
|
||||
if (!ams) return false;
|
||||
this->ams_id = ams->id;
|
||||
|
@ -81,8 +81,14 @@ bool AMSinfo::parse_ams_info(Ams *ams)
|
|||
info.material_state = AMSCanType::AMS_CAN_TYPE_THIRDBRAND;
|
||||
}
|
||||
|
||||
info.material_remain = it->second->remain < 0 ? 100 :it->second->remain;
|
||||
info.material_remain = it->second->remain > 100 ? 100 :info.material_remain;
|
||||
if (!remain_flag) {
|
||||
info.material_remain = 100;
|
||||
}
|
||||
else {
|
||||
info.material_remain = it->second->remain < 0 ? 100 : it->second->remain;
|
||||
info.material_remain = it->second->remain > 100 ? 100 : info.material_remain;
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
info.can_id = it->second->id;
|
||||
|
|
|
@ -126,7 +126,7 @@ public:
|
|||
int curreent_filamentstep;
|
||||
int ams_humidity = 0;
|
||||
|
||||
bool parse_ams_info(Ams *ams);
|
||||
bool parse_ams_info(Ams *ams, bool remain_flag = false);
|
||||
};
|
||||
|
||||
/*************************************************
|
||||
|
|
Loading…
Reference in a new issue