mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +00:00
FIX:fixed the display issue of multiple AMS
jira:[for ams] Change-Id: Icb8ce708b0e65870d627dfbe8932e012fc36c6f9 (cherry picked from commit 2cdfc21b93e37b92deabb3ab8e7b39de2578f0b2) (cherry picked from commit afbf3cf1976623c9a443f3471ec7ddcfb737d031)
This commit is contained in:
@@ -2256,6 +2256,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co
|
||||
Bind(EVT_AMS_EXTRUSION_CALI, &StatusPanel::on_filament_extrusion_cali, this);
|
||||
Bind(EVT_AMS_LOAD, &StatusPanel::on_ams_load, this);
|
||||
Bind(EVT_AMS_UNLOAD, &StatusPanel::on_ams_unload, this);
|
||||
Bind(EVT_AMS_SWITCH, &StatusPanel::on_ams_switch, this);
|
||||
Bind(EVT_AMS_FILAMENT_BACKUP, &StatusPanel::on_ams_filament_backup, this);
|
||||
Bind(EVT_AMS_SETTINGS, &StatusPanel::on_ams_setting_click, this);
|
||||
Bind(EVT_AMS_REFRESH_RFID, &StatusPanel::on_ams_refresh_rfid, this);
|
||||
@@ -3025,23 +3026,6 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
|
||||
void StatusPanel::update_extruder_status(MachineObject* obj)
|
||||
{
|
||||
if (!obj) return;
|
||||
//wait add
|
||||
|
||||
/*if (obj->is_filament_at_extruder()) {
|
||||
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD) {
|
||||
tmp = m_bitmap_extruder_filled_load;
|
||||
}
|
||||
else {
|
||||
tmp = m_bitmap_extruder_filled_unload;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (obj->extruder_axis_status == MachineObject::ExtruderAxisStatus::LOAD) {
|
||||
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_empty_load);
|
||||
} else {
|
||||
m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_empty_unload);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
void StatusPanel::update_ams(MachineObject *obj)
|
||||
@@ -3125,14 +3109,14 @@ void StatusPanel::update_ams(MachineObject *obj)
|
||||
for (auto slot : obj->vt_slot) {
|
||||
AMSinfo info;
|
||||
info.parse_ext_info(obj, slot);
|
||||
//if (ams_mode == AMSModel::AMS_LITE) info.ext_type = AMSModelOriginType::LITE_EXT; TODO: Orca hack
|
||||
if (ams_mode == AMSModel::AMS_LITE) info.ext_type = AMSModelOriginType::LITE_EXT;
|
||||
ext_info.push_back(info);
|
||||
}
|
||||
std::string dev_id = obj->dev_id;
|
||||
ExtderData data = obj->m_extder_data;
|
||||
|
||||
// must select a current can
|
||||
m_ams_control->UpdateAms(ams_info, false);
|
||||
m_ams_control->UpdateAms(ams_info, ext_info, data, dev_id, false);
|
||||
|
||||
last_tray_exist_bits = obj->tray_exist_bits;
|
||||
last_ams_exist_bits = obj->ams_exist_bits;
|
||||
@@ -3147,57 +3131,57 @@ void StatusPanel::update_ams(MachineObject *obj)
|
||||
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_MAIN_ID)) is_vt_tray = true;
|
||||
|
||||
// set segment 1, 2
|
||||
if (!obj->is_enable_np) {
|
||||
if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
|
||||
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
} else {
|
||||
if (obj->m_tray_now != "255" && obj->is_filament_at_extruder() && !obj->m_tray_id.empty()) {
|
||||
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
} else if (obj->m_tray_now != "255") {
|
||||
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1);
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
}
|
||||
//if (!obj->is_enable_np) {
|
||||
// if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
|
||||
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
// } else {
|
||||
// /*if (obj->m_tray_now != "255" && obj->is_filament_at_extruder() && !obj->m_tray_id.empty()) {
|
||||
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
|
||||
// AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
// } else if (obj->m_tray_now != "255") {
|
||||
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
|
||||
// AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1);
|
||||
// } else {
|
||||
// m_ams_control->SetAmsStep(obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id,
|
||||
// AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
// }*/
|
||||
// if () {
|
||||
|
||||
if (obj->m_tray_now == std::to_string(255) || obj->m_tray_now == std::to_string(254)) {
|
||||
m_ams_control->SetExtruder(obj->is_filament_at_extruder(), true, obj->m_ams_id, obj->vt_slot[0].get_color());
|
||||
} else {
|
||||
m_ams_control->SetExtruder(obj->is_filament_at_extruder(), false, obj->m_ams_id, m_ams_control->GetCanColour(obj->m_ams_id, obj->m_tray_id));
|
||||
}
|
||||
} else {
|
||||
// }
|
||||
// }
|
||||
|
||||
// m_ams_control->SetExtruder(obj->is_filament_at_extruder(), obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id, obj->m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id);
|
||||
//} else {
|
||||
/*right*/
|
||||
if (obj->m_extder_data.extders.size() > 0) {
|
||||
auto ext = obj->m_extder_data.extders[MAIN_NOZZLE_ID];
|
||||
if (ext.ext_has_filament) {
|
||||
if (ext.snow.slot_id == std::to_string(MAIN_NOZZLE_ID) || ext.snow.slot_id == std::to_string(MAIN_NOZZLE_ID)) {
|
||||
m_ams_control->SetAmsStep(ext.star.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
}
|
||||
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
|
||||
}
|
||||
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
|
||||
}
|
||||
|
||||
/*left*/
|
||||
if (obj->m_extder_data.extders.size() > 1) {
|
||||
auto ext = obj->m_extder_data.extders[DEPUTY_NOZZLE_ID];
|
||||
if (ext.ext_has_filament) {
|
||||
if (ext.snow.slot_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.slot_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
}
|
||||
m_ams_control->SetExtruder(true, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
m_ams_control->SetExtruder(false, true, ext.snow.ams_id, m_ams_control->GetCanColour(ext.snow.ams_id, ext.snow.slot_id));
|
||||
}
|
||||
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
|
||||
}
|
||||
}
|
||||
//}
|
||||
|
||||
bool ams_loading_state = false;
|
||||
auto ams_status_sub = obj->ams_status_sub;
|
||||
@@ -4180,6 +4164,40 @@ void StatusPanel::on_ams_load_vams(wxCommandEvent& event) {
|
||||
}
|
||||
}
|
||||
|
||||
void StatusPanel::on_ams_switch(SimpleEvent &event)
|
||||
{
|
||||
if(obj){
|
||||
if (obj->m_extder_data.extders.size() > 0) {
|
||||
auto ext = obj->m_extder_data.extders[MAIN_NOZZLE_ID];
|
||||
if (ext.ext_has_filament) {
|
||||
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
}
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
|
||||
}
|
||||
|
||||
/*left*/
|
||||
if (obj->m_extder_data.extders.size() > 1) {
|
||||
auto ext = obj->m_extder_data.extders[DEPUTY_NOZZLE_ID];
|
||||
if (ext.ext_has_filament) {
|
||||
if (ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || ext.snow.ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, "0", AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
}
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StatusPanel::on_ams_unload(SimpleEvent &event)
|
||||
{
|
||||
if (obj) {
|
||||
|
||||
@@ -636,6 +636,7 @@ protected:
|
||||
void update_filament_step();
|
||||
void on_ams_load_curr();
|
||||
void on_ams_load_vams(wxCommandEvent& event);
|
||||
void on_ams_switch(SimpleEvent &event);
|
||||
void on_ams_unload(SimpleEvent &event);
|
||||
void on_ams_filament_backup(SimpleEvent& event);
|
||||
void on_ams_setting_click(SimpleEvent& event);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -17,99 +17,124 @@
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
//Previous definitions
|
||||
class uiAmsPercentHumidityDryPopup;
|
||||
|
||||
class AMSControl : public wxSimplebook
|
||||
{
|
||||
public:
|
||||
AMSControl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
|
||||
~AMSControl();
|
||||
|
||||
void on_retry();
|
||||
void init_scaled_buttons();
|
||||
|
||||
protected:
|
||||
std::string m_current_ams;
|
||||
std::string m_current_show_ams;
|
||||
std::string m_current_slot_left;
|
||||
std::string m_current_slot_right;
|
||||
std::string m_current_show_ams_left;
|
||||
std::string m_current_show_ams_right;
|
||||
std::map<std::string, int> m_ams_selection;
|
||||
|
||||
std::map<std::string, AMSPreview*> m_ams_preview_list;
|
||||
|
||||
std::vector<AMSinfo> m_ams_info;
|
||||
std::map<std::string, AmsItem*> m_ams_item_list;
|
||||
std::map<std::string, AmsItem*> m_ams_generic_item_list;
|
||||
std::map<std::string, AmsItem*> m_ams_extra_item_list;
|
||||
std::vector<AMSinfo> m_ext_info;
|
||||
std::map<std::string, AmsItem*> m_ams_item_list;
|
||||
std::map<std::string, AMSExtImage*> m_ext_image_list;
|
||||
|
||||
ExtderData m_extder_data;
|
||||
std::string m_dev_id;
|
||||
std::vector<std::vector<std::string>> m_item_ids{ {}, {} };
|
||||
std::vector<std::pair<string, string>> pair_id;
|
||||
|
||||
AMSextruder *m_extruder{nullptr};
|
||||
AMSRoadDownPart* m_down_road{ nullptr };
|
||||
|
||||
/*items*/
|
||||
wxBoxSizer* m_sizer_ams_items{nullptr};
|
||||
wxWindow* m_panel_prv_left {nullptr};
|
||||
wxWindow* m_panel_prv_right{nullptr};
|
||||
wxBoxSizer* m_sizer_prv_left{nullptr};
|
||||
wxBoxSizer* m_sizer_prv_right{nullptr};
|
||||
|
||||
/*ams */
|
||||
wxBoxSizer *m_sizer_ams_body{nullptr};
|
||||
wxBoxSizer* m_sizer_ams_area_left{nullptr};
|
||||
wxBoxSizer* m_sizer_ams_area_right{nullptr};
|
||||
wxBoxSizer* m_sizer_down_road{ nullptr };
|
||||
|
||||
/*option*/
|
||||
wxBoxSizer *m_sizer_ams_option{nullptr};
|
||||
wxBoxSizer* m_sizer_option_left{nullptr};
|
||||
wxBoxSizer* m_sizer_option_mid{nullptr};
|
||||
wxBoxSizer* m_sizer_option_right{nullptr};
|
||||
|
||||
|
||||
AmsIntroducePopup m_ams_introduce_popup;
|
||||
|
||||
wxSimplebook *m_simplebook_right = {nullptr};
|
||||
wxSimplebook *m_simplebook_calibration = {nullptr};
|
||||
wxSimplebook *m_simplebook_amsprvs = {nullptr};
|
||||
wxSimplebook *m_simplebook_ams = {nullptr};
|
||||
wxSimplebook* m_simplebook_generic_ams = {nullptr};
|
||||
wxSimplebook* m_simplebook_extra_ams = {nullptr};
|
||||
//wxSimplebook *m_simplebook_right{nullptr};
|
||||
wxSimplebook *m_simplebook_ams_left{nullptr};
|
||||
wxSimplebook *m_simplebook_ams_right{ nullptr };
|
||||
wxSimplebook *m_simplebook_bottom{nullptr};
|
||||
wxPanel *m_panel_down_road{ nullptr };
|
||||
int m_left_page_index = 0;
|
||||
int m_right_page_index = 0;
|
||||
|
||||
wxSimplebook *m_simplebook_bottom = {nullptr};
|
||||
|
||||
wxStaticText *m_tip_right_top = {nullptr};
|
||||
Label *m_tip_load_info = {nullptr};
|
||||
wxStaticText *m_text_calibration_percent = {nullptr};
|
||||
wxWindow * m_none_ams_panel = {nullptr};
|
||||
wxWindow* m_panel_prv = {nullptr};
|
||||
wxWindow * m_amswin = {nullptr};
|
||||
wxBoxSizer* m_vams_sizer = {nullptr};
|
||||
wxBoxSizer* m_sizer_vams_tips = {nullptr};
|
||||
wxStaticText *m_tip_right_top{nullptr};
|
||||
Label *m_tip_load_info{nullptr};
|
||||
wxWindow * m_amswin{nullptr};
|
||||
wxBoxSizer* m_vams_sizer{nullptr};
|
||||
wxBoxSizer* m_sizer_vams_tips{nullptr};
|
||||
|
||||
Label* m_ams_backup_tip = {nullptr};
|
||||
Label* m_ams_tip = {nullptr};
|
||||
Label* m_ams_tip {nullptr};
|
||||
|
||||
Caninfo m_vams_info;
|
||||
StaticBox* m_panel_virtual = {nullptr};
|
||||
AMSLib* m_vams_lib = {nullptr};
|
||||
AMSRoad* m_vams_road = {nullptr};
|
||||
AMSVirtualRoad* m_vams_extra_road = {nullptr};
|
||||
StaticBox* m_panel_virtual {nullptr};
|
||||
AMSLib* m_vams_lib {nullptr};
|
||||
AMSRoad* m_vams_road {nullptr};
|
||||
AMSVirtualRoad* m_vams_extra_road {nullptr};
|
||||
|
||||
StaticBox * m_panel_can = {nullptr};
|
||||
wxBoxSizer* m_sizer_prv = {nullptr};
|
||||
wxBoxSizer *m_sizer_cans = {nullptr};
|
||||
wxBoxSizer *m_sizer_right_tip = {nullptr};
|
||||
wxBoxSizer* m_sizer_ams_tips = {nullptr};
|
||||
|
||||
::StepIndicator *m_filament_load_step = {nullptr};
|
||||
::StepIndicator *m_filament_unload_step = {nullptr};
|
||||
::StepIndicator *m_filament_vt_load_step = {nullptr};
|
||||
|
||||
Button *m_button_extruder_feed = {nullptr};
|
||||
Button *m_button_extruder_back = {nullptr};
|
||||
wxStaticBitmap* m_button_ams_setting = {nullptr};
|
||||
wxStaticBitmap* m_img_ams_backup = {nullptr};
|
||||
wxStaticBitmap* m_img_amsmapping_tip = {nullptr};
|
||||
wxStaticBitmap* m_img_vams_tip = {nullptr};
|
||||
|
||||
wxBoxSizer *m_sizer_right_tip {nullptr};
|
||||
wxBoxSizer* m_sizer_ams_tips {nullptr};
|
||||
|
||||
::StepIndicator *m_filament_load_step {nullptr};
|
||||
::StepIndicator *m_filament_unload_step {nullptr};
|
||||
::StepIndicator *m_filament_vt_load_step {nullptr};
|
||||
|
||||
Button *m_button_extruder_feed {nullptr};
|
||||
Button *m_button_extruder_back {nullptr};
|
||||
Button *m_button_auto_refill{ nullptr };
|
||||
wxStaticBitmap* m_button_ams_setting {nullptr};
|
||||
wxStaticBitmap* m_img_ams_backup {nullptr};
|
||||
wxStaticBitmap* m_img_amsmapping_tip {nullptr};
|
||||
wxStaticBitmap* m_img_vams_tip {nullptr};
|
||||
ScalableBitmap m_button_ams_setting_normal;
|
||||
ScalableBitmap m_button_ams_setting_hover;
|
||||
ScalableBitmap m_button_ams_setting_press;
|
||||
Button *m_button_guide = {nullptr};
|
||||
Button *m_button_retry = {nullptr};
|
||||
wxWindow* m_button_area = {nullptr};
|
||||
Button *m_button_guide {nullptr};
|
||||
Button *m_button_retry {nullptr};
|
||||
|
||||
wxHyperlinkCtrl *m_hyperlink = {nullptr};
|
||||
AmsHumidityTipPopup m_Humidity_tip_popup;
|
||||
uiAmsPercentHumidityDryPopup* m_percent_humidity_dry_popup;
|
||||
|
||||
std::string m_last_ams_id;
|
||||
std::string m_last_tray_id;
|
||||
std::string m_last_ams_id = "";
|
||||
std::string m_last_tray_id = "";
|
||||
|
||||
public:
|
||||
std::string GetCurentAms();
|
||||
std::string GetCurentShowAms();
|
||||
std::string GetCurentShowAms(AMSPanelPos pos = AMSPanelPos::RIGHT_PANEL);
|
||||
std::string GetCurrentCan(std::string amsid);
|
||||
bool IsAmsInRightPanel(std::string ams_id);
|
||||
wxColour GetCanColour(std::string amsid, std::string canid);
|
||||
void createAms(wxSimplebook* parent, int& idx, AMSinfo info, AMSPanelPos pos);
|
||||
void createAmsPanel(wxSimplebook* parent, int& idx, std::vector<AMSinfo>infos, AMSPanelPos pos);
|
||||
AMSRoadShowMode findFirstMode(AMSPanelPos pos);
|
||||
|
||||
AMSModel m_ams_model{AMSModel::EXT_AMS};
|
||||
AMSModel m_ext_model{AMSModel::EXT_AMS};
|
||||
AMSModel m_is_none_ams_mode{AMSModel::EXT_AMS};
|
||||
bool m_single_nozzle_no_ams = { true };
|
||||
|
||||
void SetAmsModel(AMSModel mode, AMSModel ext_mode) {m_ams_model = mode; m_ext_model = ext_mode;};
|
||||
void AmsSelectedSwitch(wxCommandEvent& event);
|
||||
@@ -119,33 +144,36 @@ public:
|
||||
void EnterGenericAMSMode();
|
||||
void EnterExtraAMSMode();
|
||||
|
||||
void EnterCalibrationMode(bool read_to_calibration);
|
||||
void ExitcClibrationMode();
|
||||
|
||||
void SetClibrationpercent(int percent);
|
||||
void SetClibrationLink(wxString link);
|
||||
|
||||
void PlayRridLoading(wxString amsid, wxString canid);
|
||||
void StopRridLoading(wxString amsid, wxString canid);
|
||||
|
||||
void SetFilamentStep(int item_idx, FilamentStepType f_type);
|
||||
void ShowFilamentTip(bool hasams = true);
|
||||
|
||||
void UpdateStepCtrl(bool is_extrusion_exist);
|
||||
void UpdatePassRoad(string ams_id, AMSPassRoadType type, AMSPassRoadSTEP step);
|
||||
void CreateAms();
|
||||
void CreateAmsDoubleNozzle();
|
||||
void CreateAmsSingleNozzle();
|
||||
void ClearAms();
|
||||
void UpdateAms(std::vector<AMSinfo> info, bool is_reset = true);
|
||||
void AddAms(AMSinfo info);
|
||||
void AddAmsPreview(AMSinfo info);
|
||||
void AddExtraAms(AMSinfo info);
|
||||
void SetExtruder(bool on_off, bool is_vams, std::string ams_now, wxColour col);
|
||||
void UpdateAms(std::vector<AMSinfo> ams_info, std::vector<AMSinfo> ext_info, ExtderData data, std::string dev_id, bool is_reset = true, bool test = false);
|
||||
std::vector<AMSinfo> GenerateSimulateData();
|
||||
|
||||
void AddAms(AMSinfo info, AMSPanelPos pos = AMSPanelPos::LEFT_PANEL);
|
||||
//void AddExtAms(int ams_id);
|
||||
void AddAmsPreview(AMSinfo info, AMSModel type);
|
||||
//void AddExtraAms(AMSinfo info);
|
||||
|
||||
void AddAms(std::vector<AMSinfo>single_info, AMSPanelPos pos = AMSPanelPos::LEFT_PANEL);
|
||||
void AddAmsPreview(std::vector<AMSinfo>single_info, AMSPanelPos pos);
|
||||
//void AddExtraAms(std::vector<AMSinfo>single_info);
|
||||
void SetExtruder(bool on_off, std::string ams_id, std::string slot_id);
|
||||
void SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadType type, AMSPassRoadSTEP step);
|
||||
void SwitchAms(std::string ams_id);
|
||||
|
||||
void msw_rescale();
|
||||
void on_filament_load(wxCommandEvent &event);
|
||||
void on_filament_unload(wxCommandEvent &event);
|
||||
void auto_refill(wxCommandEvent& event);
|
||||
void on_ams_setting_click(wxMouseEvent &event);
|
||||
void on_extrusion_cali(wxCommandEvent &event);
|
||||
void on_ams_setting_click(wxCommandEvent &event);
|
||||
@@ -164,6 +192,7 @@ public:
|
||||
void post_event(wxEvent&& event);
|
||||
|
||||
virtual bool Enable(bool enable = true);
|
||||
void parse_object(MachineObject* obj);
|
||||
|
||||
public:
|
||||
std::string m_current_select;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@
|
||||
#include <wx/dynarray.h>
|
||||
|
||||
|
||||
#define AMS_CONTROL_BRAND_COLOUR wxColour(0, 150, 136)
|
||||
#define AMS_CONTROL_BRAND_COLOUR wxColour(0, 174, 66)
|
||||
#define AMS_CONTROL_GRAY700 wxColour(107, 107, 107)
|
||||
#define AMS_CONTROL_GRAY800 wxColour(50, 58, 61)
|
||||
#define AMS_CONTROL_GRAY500 wxColour(172, 172, 172)
|
||||
@@ -27,6 +27,7 @@
|
||||
#define AMS_EXTRUDER_DEF_COLOUR wxColour(234, 234, 234)
|
||||
#define AMS_CONTROL_MAX_COUNT 4
|
||||
#define AMS_CONTRO_CALIBRATION_BUTTON_SIZE wxSize(FromDIP(150), FromDIP(28))
|
||||
#define AMS_CONTROL_DEF_HUMIDITY_BK_COLOUR wxColour(238, 238, 238)
|
||||
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
@@ -39,6 +40,11 @@ enum AMSModel {
|
||||
N3S_AMS = 4 //n3s single_ams
|
||||
};
|
||||
|
||||
enum AMSModelOriginType {
|
||||
GENERIC_EXT,
|
||||
LITE_EXT
|
||||
};
|
||||
|
||||
enum ActionButton {
|
||||
ACTION_BTN_CALI = 0,
|
||||
ACTION_BTN_LOAD = 1,
|
||||
@@ -56,6 +62,20 @@ enum class AMSRoadMode : int {
|
||||
AMS_ROAD_MODE_VIRTUAL_TRAY
|
||||
};
|
||||
|
||||
enum class AMSPanelPos : int {
|
||||
SINGLE_PANEL,
|
||||
LEFT_PANEL,
|
||||
RIGHT_PANEL,
|
||||
};
|
||||
|
||||
enum class AMSRoadShowMode : int {
|
||||
AMS_ROAD_MODE_FOUR,
|
||||
AMS_ROAD_MODE_DOUBLE,
|
||||
AMS_ROAD_MODE_SINGLE,
|
||||
AMS_ROAD_MODE_AMS_LITE,
|
||||
AMS_ROAD_MODE_NONE
|
||||
};
|
||||
|
||||
enum class AMSPassRoadMode : int {
|
||||
AMS_ROAD_MODE_NONE,
|
||||
AMS_ROAD_MODE_LEFT,
|
||||
@@ -76,10 +96,10 @@ enum class AMSAction : int {
|
||||
};
|
||||
|
||||
enum class AMSPassRoadSTEP : int {
|
||||
AMS_ROAD_STEP_NONE,
|
||||
AMS_ROAD_STEP_1, // lib -> extrusion
|
||||
AMS_ROAD_STEP_2, // extrusion->buffer
|
||||
AMS_ROAD_STEP_3, // extrusion
|
||||
AMS_ROAD_STEP_NONE = 0,
|
||||
AMS_ROAD_STEP_1 = 1, // lib -> extrusion
|
||||
AMS_ROAD_STEP_2 = 2, // extrusion->buffer
|
||||
AMS_ROAD_STEP_3 = 4, // extrusion
|
||||
|
||||
AMS_ROAD_STEP_COMBO_LOAD_STEP1,
|
||||
AMS_ROAD_STEP_COMBO_LOAD_STEP2,
|
||||
@@ -120,24 +140,30 @@ enum FilamentStepType {
|
||||
STEP_TYPE_VT_LOAD = 2,
|
||||
};
|
||||
|
||||
#define AMS_ITEM_CUBE_SIZE wxSize(FromDIP(14), FromDIP(14))
|
||||
#define AMS_ITEM_SIZE wxSize(FromDIP(82), FromDIP(27))
|
||||
#define AMS_ITEM_CUBE_SIZE wxSize(FromDIP(8), FromDIP(14))
|
||||
#define AMS_PREVIEW_SIZE wxSize(FromDIP(82), FromDIP(27))
|
||||
#define AMS_ITEM_SIZE wxSize(FromDIP(78), FromDIP(184))
|
||||
#define AMS_PREV_FOUR_SIZE wxSize(FromDIP(52), FromDIP(32))
|
||||
#define AMS_PREV_SINGLE_SIZE wxSize(FromDIP(28), FromDIP(32))
|
||||
#define AMS_ITEM_HUMIDITY_SIZE wxSize(FromDIP(120), FromDIP(27))
|
||||
#define AMS_CAN_LIB_SIZE wxSize(FromDIP(58), FromDIP(80))
|
||||
#define AMS_CAN_ROAD_SIZE wxSize(FromDIP(66), FromDIP(70))
|
||||
#define AMS_CAN_ITEM_HEIGHT_SIZE FromDIP(27)
|
||||
//#define AMS_CANS_SIZE wxSize(FromDIP(284), FromDIP(196))
|
||||
#define AMS_CAN_LIB_SIZE wxSize(FromDIP(52), FromDIP(80))
|
||||
#define AMS_LITE_CAN_LIB_SIZE wxSize(FromDIP(49), FromDIP(72))
|
||||
#define AMS_CAN_ROAD_SIZE wxSize(FromDIP(264), FromDIP(50))
|
||||
#define AMS_ITEMS_PANEL_SIZE wxSize(FromDIP(264), FromDIP(44))
|
||||
//#define AMS_CANS_SIZE wxSize(FromDIP(284), FromDIP(184))
|
||||
//#define AMS_CANS_WINDOW_SIZE wxSize(FromDIP(264), FromDIP(196))
|
||||
#define AMS_STEP_SIZE wxSize(FromDIP(172), FromDIP(196))
|
||||
#define AMS_REFRESH_SIZE wxSize(FromDIP(30), FromDIP(30))
|
||||
#define AMS_EXTRUDER_SIZE wxSize(FromDIP(86), FromDIP(72))
|
||||
#define AMS_EXTRUDER_BITMAP_SIZE wxSize(FromDIP(36), FromDIP(55))
|
||||
|
||||
#define AMS_REFRESH_SIZE wxSize(FromDIP(28), FromDIP(28))
|
||||
#define AMS_EXTRUDER_SIZE wxSize(FromDIP(29), FromDIP(37))
|
||||
#define AMS_EXTRUDER_DOUBLE_NOZZLE_BITMAP_SIZE wxSize(FromDIP(13), FromDIP(36))
|
||||
#define AMS_EXTRUDER_SINGLE_NOZZLE_BITMAP_SIZE wxSize(FromDIP(18), FromDIP(36))
|
||||
#define AMS_BODY_SIZE wxSize(FromDIP(36), FromDIP(55))
|
||||
#define AMS_DOWN_ROAD_SIZE wxSize(FromDIP(568), FromDIP(10))
|
||||
#define AMS_HUMIDITY_SIZE wxSize(FromDIP(93), FromDIP(26))
|
||||
#define AMS_HUMIDITY_NO_PERCENT_SIZE wxSize(FromDIP(60), FromDIP(26))
|
||||
#define AMS_HUMIDITY_DRY_WIDTH FromDIP(35)
|
||||
#define AMS_PANEL_SIZE wxSize(FromDIP(264), FromDIP(150))
|
||||
|
||||
#define GENERIC_AMS_SLOT_NUM 4
|
||||
#define MAX_AMS_NUM_IN_PANEL 2
|
||||
|
||||
struct Caninfo
|
||||
{
|
||||
@@ -152,25 +178,6 @@ struct Caninfo
|
||||
float k = 0.0f;
|
||||
float n = 0.0f;
|
||||
std::vector<wxColour> material_cols;
|
||||
|
||||
public:
|
||||
bool operator==(const Caninfo& other) const
|
||||
{
|
||||
if (can_id == other.can_id &&
|
||||
material_name == other.material_name &&
|
||||
material_colour == other.material_colour &&
|
||||
material_state == other.material_state &&
|
||||
ctype == other.ctype &&
|
||||
material_remain == other.material_remain &&
|
||||
k == other.k &&
|
||||
n == other.n &&
|
||||
material_cols == other.material_cols)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
};
|
||||
|
||||
struct AMSinfo
|
||||
@@ -180,51 +187,34 @@ public:
|
||||
std::vector<Caninfo> cans;
|
||||
int nozzle_id = 0;
|
||||
std::string current_can_id;
|
||||
AMSPassRoadSTEP current_step;
|
||||
AMSPassRoadSTEP current_step = AMSPassRoadSTEP::AMS_ROAD_STEP_NONE;
|
||||
AMSAction current_action;
|
||||
int curreent_filamentstep;
|
||||
int ams_humidity = 0;
|
||||
int humidity_raw = -1;
|
||||
int left_dray_time = 0;
|
||||
float current_temperature = INVALID_AMS_TEMPERATURE;
|
||||
AMSModel ams_type = AMSModel::GENERIC_AMS;
|
||||
|
||||
public:
|
||||
bool operator== (const AMSinfo& other) const
|
||||
{
|
||||
if (ams_id == other.ams_id &&
|
||||
cans == other.cans &&
|
||||
nozzle_id == other.nozzle_id &&
|
||||
current_can_id == other.current_can_id &&
|
||||
current_step == other.current_step &&
|
||||
current_action == other.current_action &&
|
||||
curreent_filamentstep == other.curreent_filamentstep &&
|
||||
ams_humidity == other.ams_humidity &&
|
||||
left_dray_time == other.left_dray_time &&
|
||||
current_temperature == other.current_temperature &&
|
||||
ams_type == other.ams_type)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
bool operator!=(const AMSinfo &other) const
|
||||
{
|
||||
if (operator==(other))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
AMSModelOriginType ext_type = AMSModelOriginType::GENERIC_EXT;
|
||||
|
||||
bool parse_ams_info(MachineObject* obj, Ams *ams, bool remain_flag = false, bool humidity_flag = false);
|
||||
void parse_ext_info(MachineObject* obj, AmsTray tray);
|
||||
bool support_drying() const { return (ams_type == AMSModel::N3S_AMS) || (ams_type == AMSModel::N3F_AMS); };
|
||||
};
|
||||
|
||||
/*************************************************
|
||||
Description:AMSExtText
|
||||
**************************************************/
|
||||
|
||||
class AMSExtText : public wxWindow
|
||||
{
|
||||
public:
|
||||
void msw_rescale();
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
|
||||
void render(wxDC& dc);
|
||||
void doRender(wxDC& dc);
|
||||
AMSExtText(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
~AMSExtText();
|
||||
};
|
||||
|
||||
|
||||
/*************************************************
|
||||
Description:AMSrefresh
|
||||
**************************************************/
|
||||
@@ -236,26 +226,20 @@ public:
|
||||
AMSrefresh(wxWindow *parent, wxString number, Caninfo info, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
|
||||
AMSrefresh(wxWindow *parent, int number, Caninfo info, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
|
||||
~AMSrefresh();
|
||||
|
||||
public:
|
||||
void Update(std::string ams_id, Caninfo info);
|
||||
|
||||
std::string GetCanId() const { return m_info.can_id; };
|
||||
|
||||
void PlayLoading();
|
||||
void StopLoading();
|
||||
|
||||
void create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size);
|
||||
void on_timer(wxTimerEvent &event);
|
||||
void OnEnterWindow(wxMouseEvent &evt);
|
||||
void OnLeaveWindow(wxMouseEvent &evt);
|
||||
void OnClick(wxMouseEvent &evt);
|
||||
void post_event(wxCommandEvent &&event);
|
||||
void paintEvent(wxPaintEvent &evt);
|
||||
void Update(std::string ams_id, Caninfo info);
|
||||
void msw_rescale();
|
||||
void set_disable_mode(bool disable) { m_disable_mode = disable; }
|
||||
Caninfo m_info;
|
||||
|
||||
protected:
|
||||
void create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size);
|
||||
|
||||
void on_timer(wxTimerEvent &event);
|
||||
void OnEnterWindow(wxMouseEvent &evt);
|
||||
void OnLeaveWindow(wxMouseEvent &evt);
|
||||
void OnClick(wxMouseEvent &evt);
|
||||
void post_event(wxCommandEvent &&event);
|
||||
void paintEvent(wxPaintEvent &evt);
|
||||
|
||||
protected:
|
||||
wxTimer *m_playing_timer= {nullptr};
|
||||
@@ -265,7 +249,6 @@ protected:
|
||||
|
||||
std::string m_ams_id;
|
||||
std::string m_can_id;
|
||||
Caninfo m_info;
|
||||
|
||||
ScalableBitmap m_bitmap_normal;
|
||||
ScalableBitmap m_bitmap_selected;
|
||||
@@ -292,47 +275,78 @@ Description:AMSextruder
|
||||
class AMSextruderImage: public wxWindow
|
||||
{
|
||||
public:
|
||||
void TurnOn(wxColour col);
|
||||
void OnAmsLoading(bool load, wxColour col);
|
||||
void TurnOff();
|
||||
void setShowState(bool show_state) { m_show_state = show_state; };
|
||||
void msw_rescale();
|
||||
void paintEvent(wxPaintEvent &evt);
|
||||
|
||||
void render(wxDC &dc);
|
||||
bool m_turn_on = {false};
|
||||
bool m_show_state = {false};
|
||||
wxColour m_colour;
|
||||
ScalableBitmap m_ams_extruder;
|
||||
string m_file_name;
|
||||
bool m_ams_loading{ false };
|
||||
void doRender(wxDC &dc);
|
||||
AMSextruderImage(wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
|
||||
AMSextruderImage(wxWindow *parent, wxWindowID id, string file_name, const wxSize& size, const wxPoint &pos = wxDefaultPosition);
|
||||
~AMSextruderImage();
|
||||
};
|
||||
|
||||
//AMSExtImage upon ext lib
|
||||
class AMSExtImage : public wxWindow
|
||||
{
|
||||
private:
|
||||
bool m_ext_show = true;
|
||||
ExtderData* m_extder_data = nullptr;
|
||||
AMSPanelPos m_ext_pos;
|
||||
public:
|
||||
void msw_rescale();
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
void setShowState(bool show) { m_ext_show = show; };
|
||||
|
||||
void render(wxDC& dc);
|
||||
ScalableBitmap m_ams_ext;
|
||||
ScalableBitmap m_ams_ext_left;
|
||||
ScalableBitmap m_ams_ext_right;
|
||||
ScalableBitmap m_ams_ext_single_nozzle;
|
||||
void doRender(wxDC& dc);
|
||||
AMSExtImage(wxWindow* parent, AMSPanelPos ext_pos = AMSPanelPos::RIGHT_PANEL, ExtderData *data = nullptr,
|
||||
wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition);
|
||||
~AMSExtImage();
|
||||
};
|
||||
|
||||
|
||||
class AMSextruder : public wxWindow
|
||||
{
|
||||
private:
|
||||
int m_nozzle_num{ 1 };
|
||||
public:
|
||||
void TurnOn(wxColour col);
|
||||
void TurnOff();
|
||||
void create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size);
|
||||
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void OnAmsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void OnAmsLoading(bool load, int nozzle_id = 0, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
void render(wxDC& dc);
|
||||
void doRender(wxDC& dc);
|
||||
void msw_rescale();
|
||||
void has_ams(bool hams) {m_has_vams = hams; Refresh();};
|
||||
void no_ams_mode(bool mode) {m_none_ams_mode = mode; Refresh();};
|
||||
void updateNozzleNum(int nozzle_num);
|
||||
|
||||
bool m_none_ams_mode{true};
|
||||
bool m_has_vams{false};
|
||||
bool m_vams_loading{false};
|
||||
bool m_ams_loading{false};
|
||||
wxColour m_current_colur;
|
||||
wxColour m_current_colur_deputy;
|
||||
|
||||
wxBoxSizer * m_bitmap_sizer{nullptr};
|
||||
wxPanel * m_bitmap_panel{nullptr};
|
||||
AMSextruderImage *m_amsSextruder{nullptr};
|
||||
ScalableBitmap monitor_ams_extruder;
|
||||
AMSextruder(wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
|
||||
//AMSextruderImage *m_amsSextruder{nullptr};
|
||||
AMSextruderImage* m_left_extruder = nullptr;
|
||||
AMSextruderImage* m_right_extruder = nullptr;
|
||||
AMSextruder(wxWindow *parent, wxWindowID id, int nozzle_num, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
|
||||
~AMSextruder();
|
||||
};
|
||||
|
||||
@@ -363,7 +377,7 @@ Description:AMSLib
|
||||
class AMSLib : public wxWindow
|
||||
{
|
||||
public:
|
||||
AMSLib(wxWindow *parent, std::string ams_idx, Caninfo info);
|
||||
AMSLib(wxWindow *parent, std::string ams_idx, Caninfo info, AMSModelOriginType ext_type = AMSModelOriginType::GENERIC_EXT);
|
||||
~AMSLib();
|
||||
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
public:
|
||||
@@ -375,7 +389,9 @@ public:
|
||||
std::string m_slot_id;
|
||||
|
||||
int m_can_index = 0;
|
||||
bool transparent_changed = { false };
|
||||
AMSModel m_ams_model;
|
||||
AMSModelOriginType m_ext_type = { AMSModelOriginType::GENERIC_EXT };
|
||||
|
||||
void Update(Caninfo info, std::string ams_idx, bool refresh = true);
|
||||
void UnableSelected() { m_unable_selected = true; };
|
||||
@@ -399,15 +415,19 @@ protected:
|
||||
ScalableBitmap m_bitmap_readonly;
|
||||
ScalableBitmap m_bitmap_readonly_light;
|
||||
ScalableBitmap m_bitmap_transparent;
|
||||
ScalableBitmap m_bitmap_transparent_def;
|
||||
|
||||
ScalableBitmap m_bitmap_extra_tray_left;
|
||||
ScalableBitmap m_bitmap_extra_tray_right;
|
||||
ScalableBitmap m_bitmap_extra_tray_mid;
|
||||
|
||||
ScalableBitmap m_bitmap_extra_tray_left_hover;
|
||||
ScalableBitmap m_bitmap_extra_tray_right_hover;
|
||||
ScalableBitmap m_bitmap_extra_tray_mid_hover;
|
||||
|
||||
ScalableBitmap m_bitmap_extra_tray_left_selected;
|
||||
ScalableBitmap m_bitmap_extra_tray_right_selected;
|
||||
ScalableBitmap m_bitmap_extra_tray_mid_selected;
|
||||
|
||||
bool m_unable_selected = {false};
|
||||
bool m_enable = {false};
|
||||
@@ -415,7 +435,7 @@ protected:
|
||||
bool m_hover = {false};
|
||||
bool m_show_kn = {false};
|
||||
bool m_support_cali = {false};
|
||||
bool transparent_changed = {false};
|
||||
|
||||
|
||||
double m_radius = {4};
|
||||
wxColour m_border_color;
|
||||
@@ -459,6 +479,11 @@ public:
|
||||
wxColour m_road_color;
|
||||
void Update(AMSinfo amsinfo, Caninfo info, int canindex, int maxcan);
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_img;
|
||||
|
||||
|
||||
int m_humidity = { 0 };
|
||||
bool m_show_humidity = { false };
|
||||
bool m_vams_loading{false};
|
||||
AMSModel m_ams_model;
|
||||
|
||||
@@ -470,12 +495,110 @@ public:
|
||||
|
||||
void paintEvent(wxPaintEvent &evt);
|
||||
void render(wxDC &dc);
|
||||
void doRender(wxDC &dc);
|
||||
};
|
||||
|
||||
|
||||
/*************************************************
|
||||
Description:AMSRoadUpPart
|
||||
**************************************************/
|
||||
class AMSRoadUpPart : public wxWindow
|
||||
{
|
||||
public:
|
||||
AMSRoadUpPart();
|
||||
AMSRoadUpPart(wxWindow* parent, wxWindowID id, AMSinfo info, AMSModel mode, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
|
||||
public:
|
||||
AMSinfo m_amsinfo;
|
||||
//Caninfo m_info;
|
||||
int m_load_slot_index = { 0 };
|
||||
int m_load_ams_index = { 0 };
|
||||
//AMSRoadMode m_rode_mode = { AMSRoadMode::AMS_ROAD_MODE_LEFT_RIGHT };
|
||||
std::vector<AMSPassRoadMode> m_pass_rode_mode = { AMSPassRoadMode::AMS_ROAD_MODE_NONE };
|
||||
AMSRoadShowMode m_road_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
AMSPassRoadSTEP m_load_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
|
||||
|
||||
bool m_selected = { false };
|
||||
int m_passroad_width = { 6 };
|
||||
double m_radius = { 4 };
|
||||
wxColour m_road_def_color;
|
||||
wxColour m_road_color;
|
||||
void Update(AMSinfo amsinfo);
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_img;
|
||||
|
||||
|
||||
int m_humidity = { 0 };
|
||||
bool m_show_humidity = { false };
|
||||
bool m_vams_loading{ false };
|
||||
AMSModel m_ams_model;
|
||||
|
||||
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void SetPassRoadColour(wxColour col);
|
||||
void SetMode(AMSRoadShowMode mode);
|
||||
void OnPassRoad(std::vector<AMSPassRoadMode> prord_list);
|
||||
void UpdatePassRoad(std::string ams_index, std::string slot_index, AMSPassRoadType type, AMSPassRoadSTEP step);
|
||||
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
void render(wxDC& dc);
|
||||
void doRender(wxDC& dc);
|
||||
|
||||
void msw_rescale();
|
||||
};
|
||||
|
||||
|
||||
/*************************************************
|
||||
Description:AMSRoadDownPart
|
||||
**************************************************/
|
||||
class AMSRoadDownPart : public wxWindow
|
||||
{
|
||||
public:
|
||||
AMSRoadDownPart();
|
||||
AMSRoadDownPart(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
|
||||
public:
|
||||
int m_nozzle_num = { 1 };
|
||||
AMSRoadShowMode m_single_ext_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
AMSRoadShowMode m_left_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
AMSRoadShowMode m_right_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
bool m_selected = { false };
|
||||
|
||||
int m_left_road_length = { -1 };
|
||||
int m_right_road_length = { -1 };
|
||||
int m_passroad_width = { 6 };
|
||||
double m_radius = { 4 };
|
||||
AMSPassRoadType m_pass_road_type = { AMSPassRoadType::AMS_ROAD_TYPE_NONE };
|
||||
AMSPassRoadSTEP m_pass_road_left_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
|
||||
AMSPassRoadSTEP m_pass_road_right_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
|
||||
|
||||
std::map<int, wxColour> m_road_color;
|
||||
|
||||
//void Update(AMSRoadDownPartMode nozzle, AMSRoadShowMode left_mode, AMSRoadShowMode right_mode, int left_len, int right_len);
|
||||
void UpdateLeft(int nozzle_num, AMSRoadShowMode mode);
|
||||
void UpdateRight(int nozzle_num, AMSRoadShowMode mode);
|
||||
|
||||
bool m_vams_loading{ false };
|
||||
|
||||
AMSModel m_ams_model;
|
||||
|
||||
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void SetPassRoadColour(bool left, wxColour col);
|
||||
void SetShowMode(AMSRoadShowMode left_mode, AMSRoadShowMode right_mode);
|
||||
void UpdatePassRoad(AMSPanelPos pos, int len, AMSPassRoadSTEP step);
|
||||
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
void render(wxDC& dc);
|
||||
void doRender(wxDC& dc);
|
||||
|
||||
void msw_rescale();
|
||||
};
|
||||
|
||||
/*************************************************
|
||||
Description:AMSPreview
|
||||
**************************************************/
|
||||
|
||||
class AMSPreview : public wxWindow
|
||||
{
|
||||
public:
|
||||
@@ -493,22 +616,27 @@ public:
|
||||
void OnSelected();
|
||||
void UnSelected();
|
||||
virtual bool Enable(bool enable = true);
|
||||
void msw_rescale();
|
||||
|
||||
|
||||
std::string get_ams_id() const { return m_amsinfo.ams_id; };
|
||||
int get_nozzle_id() const { return m_amsinfo.nozzle_id; };
|
||||
|
||||
protected:
|
||||
AMSinfo m_amsinfo;
|
||||
|
||||
wxSize m_cube_size;
|
||||
wxColour m_background_colour = {AMS_CONTROL_DEF_LIB_BK_COLOUR};
|
||||
int m_padding = {7};
|
||||
int m_space = {5};
|
||||
wxColour m_background_colour = { AMS_CONTROL_DEF_LIB_BK_COLOUR };
|
||||
float m_padding;
|
||||
float m_space;
|
||||
bool m_hover = {false};
|
||||
bool m_selected = {false};
|
||||
AMSModel m_ams_item_type = AMSModel::GENERIC_AMS;
|
||||
|
||||
ScalableBitmap* m_ts_bitmap_cube;
|
||||
ScalableBitmap m_ts_bitmap_cube;
|
||||
ScalableBitmap m_four_slot_bitmap;
|
||||
ScalableBitmap m_single_slot_bitmap;
|
||||
ScalableBitmap m_ext_bitmap;
|
||||
|
||||
void paintEvent(wxPaintEvent &evt);
|
||||
void render(wxDC &dc);
|
||||
@@ -529,28 +657,24 @@ public:
|
||||
|
||||
public:
|
||||
AMSinfo m_amsinfo;
|
||||
int m_canindex = { 0 };
|
||||
bool m_selected = { false };
|
||||
double m_radius = { 12 };
|
||||
void Update(AMSinfo amsinfo);
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_imgs;
|
||||
std::vector<ScalableBitmap> ams_humidity_dark_imgs;
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_no_num_imgs;
|
||||
std::vector<ScalableBitmap> ams_humidity_no_num_dark_imgs;
|
||||
|
||||
ScalableBitmap ams_sun_img;
|
||||
ScalableBitmap ams_drying_img;
|
||||
std::vector<ScalableBitmap> ams_humidity_img;
|
||||
ScalableBitmap ams_sun_img;
|
||||
|
||||
|
||||
int m_humidity = { 0 };
|
||||
bool m_show_humidity = { false };
|
||||
bool m_vams_loading{ false };
|
||||
AMSModel m_ams_model;
|
||||
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
void render(wxDC& dc);
|
||||
void doRender(wxDC& dc);
|
||||
void msw_rescale();
|
||||
|
||||
private:
|
||||
void update_size();
|
||||
};
|
||||
|
||||
|
||||
@@ -561,11 +685,13 @@ class AmsItem : public wxWindow
|
||||
{
|
||||
public:
|
||||
AmsItem();
|
||||
AmsItem(wxWindow *parent, AMSinfo info, AMSModel model);
|
||||
AmsItem(wxWindow *parent, AMSinfo info, AMSModel model, AMSPanelPos pos);
|
||||
~AmsItem();
|
||||
|
||||
void Update(AMSinfo info);
|
||||
void create(wxWindow *parent);
|
||||
void AddCan(Caninfo caninfo, int canindex, int maxcan, wxBoxSizer* sizer);
|
||||
void AddLiteCan(Caninfo caninfo, int canindex, wxGridSizer* sizer);
|
||||
void SetDefSelectCan();
|
||||
void SelectCan(std::string canid);
|
||||
void PlayRridLoading(wxString canid);
|
||||
@@ -573,7 +699,7 @@ public:
|
||||
void msw_rescale();
|
||||
void show_sn_value(bool show);
|
||||
void SetAmsStepExtra(wxString canid, AMSPassRoadType type, AMSPassRoadSTEP step);
|
||||
void SetAmsStep(wxString canid, AMSPassRoadType type, AMSPassRoadSTEP step);
|
||||
void SetAmsStep(std::string amsid, std::string canid, AMSPassRoadType type, AMSPassRoadSTEP step);
|
||||
void SetAmsStep(std::string can_id);
|
||||
void paintEvent(wxPaintEvent& evt);
|
||||
void render(wxDC& dc);
|
||||
@@ -586,35 +712,49 @@ public:
|
||||
AMSinfo get_ams_info() const { return m_info; };
|
||||
|
||||
std::string get_ams_id() const { return m_info.ams_id; };
|
||||
AMSModel get_ams_model() const { return m_info.ams_type; };
|
||||
|
||||
AMSModelOriginType get_ext_type() const { return m_info.ext_type; };
|
||||
AMSExtImage *get_ext_image() const { return m_ext_image; };
|
||||
|
||||
size_t get_can_count() const { return m_info.cans.size(); };
|
||||
std::map<std::string, AMSLib*> get_can_lib_list() const { return m_can_lib_list; };
|
||||
|
||||
int get_selection() const { return m_selection; };
|
||||
void set_selection(int selection) { m_selection = selection; };
|
||||
|
||||
AMSPanelPos get_panel_pos() const { return m_panel_pos; };
|
||||
int get_nozzle_id() const { return m_info.nozzle_id; };
|
||||
|
||||
private:
|
||||
ScalableBitmap m_bitmap_extra_framework;
|
||||
int m_canlib_selection = { -1 };
|
||||
int m_selection = { 0 };
|
||||
int m_can_count = { 0 };
|
||||
|
||||
AMSModel m_ams_model;
|
||||
AMSPanelPos m_panel_pos;
|
||||
std::string m_canlib_id;
|
||||
|
||||
std::string m_road_canid;
|
||||
wxColour m_road_colour;
|
||||
|
||||
std::map<std::string, AMSLib*> m_can_lib_list;
|
||||
std::map<std::string, AMSRoad*> m_can_road_list;
|
||||
std::map<std::string, AMSrefresh*> m_can_refresh_list;
|
||||
AMSHumidity* m_humidity = { nullptr };
|
||||
std::map<std::string, AMSLib*> m_can_lib_list;
|
||||
//std::map<std::string, AMSRoad*> m_can_road_list;
|
||||
AMSRoadUpPart* m_panel_road = { nullptr };
|
||||
std::map<std::string, AMSrefresh*> m_can_refresh_list;
|
||||
AMSHumidity* m_humidity = { nullptr };
|
||||
|
||||
AMSinfo m_info;
|
||||
wxBoxSizer * sizer_can = {nullptr};
|
||||
wxGridSizer* sizer_can_extra = { nullptr };
|
||||
wxBoxSizer * sizer_humidity = { nullptr };
|
||||
wxBoxSizer * sizer_item = { nullptr };
|
||||
wxBoxSizer * sizer_can_middle = {nullptr};
|
||||
wxBoxSizer * sizer_can_left = {nullptr};
|
||||
wxBoxSizer * sizer_can_right = {nullptr};
|
||||
AMSPassRoadSTEP m_step = {AMSPassRoadSTEP ::AMS_ROAD_STEP_NONE};
|
||||
AMSExtImage* m_ext_image = { nullptr }; //the ext image upon the ext ams
|
||||
AMSExtText* m_ext_text = { nullptr }; //the ext text upon the ext ams
|
||||
};
|
||||
|
||||
wxDECLARE_EVENT(EVT_AMS_EXTRUSION_CALI, wxCommandEvent);
|
||||
@@ -625,14 +765,16 @@ wxDECLARE_EVENT(EVT_AMS_FILAMENT_BACKUP, SimpleEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_REFRESH_RFID, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_ON_SELECTED, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_ON_FILAMENT_EDIT, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_VAMS_ON_FILAMENT_EDIT, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_CLIBRATION_AGAIN, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_CLIBRATION_CANCEL, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_GUIDE_WIKI, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_RETRY, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_SHOW_HUMIDITY_TIPS, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_UNSELETED_VAMS, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_UNSELETED_AMS, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_CLEAR_SPEED_CONTROL, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_VAMS_ON_FILAMENT_EDIT, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_AMS_SWITCH, SimpleEvent);
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user