ENH:auto switch use ams option
jira:[none] Change-Id: Ia1d5231284515226277b16d771342141e654a23d
This commit is contained in:
parent
1b0e8cdb31
commit
956f1b9a59
|
@ -905,11 +905,6 @@ bool MachineObject::can_unload_filament()
|
|||
return result;
|
||||
}
|
||||
|
||||
bool MachineObject::is_support_ams_mapping()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MachineObject::is_support_amx_ext_mix_mapping() {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -765,7 +765,6 @@ public:
|
|||
void _parse_ams_status(int ams_status);
|
||||
bool has_ams() { return ams_exist_bits != 0; }
|
||||
bool can_unload_filament();
|
||||
bool is_support_ams_mapping();
|
||||
bool is_support_amx_ext_mix_mapping();
|
||||
|
||||
void get_ams_colors(std::vector<wxColour>& ams_colors);
|
||||
|
|
|
@ -2610,15 +2610,9 @@ void SelectMachineDialog::on_send_print()
|
|||
}
|
||||
}
|
||||
|
||||
if (obj_->is_support_ams_mapping()) {
|
||||
m_print_job->task_ams_mapping = ams_mapping_array;
|
||||
m_print_job->task_ams_mapping2 = ams_mapping_array2;
|
||||
m_print_job->task_ams_mapping_info = ams_mapping_info;
|
||||
} else {
|
||||
m_print_job->task_ams_mapping = "";
|
||||
m_print_job->task_ams_mapping2 = "";
|
||||
m_print_job->task_ams_mapping_info = "";
|
||||
}
|
||||
m_print_job->task_ams_mapping = ams_mapping_array;
|
||||
m_print_job->task_ams_mapping2 = ams_mapping_array2;
|
||||
m_print_job->task_ams_mapping_info = ams_mapping_info;
|
||||
|
||||
/* build nozzles info for multi extruders printers */
|
||||
if (build_nozzles_info(m_print_job->task_nozzles_info)) {
|
||||
|
@ -2745,6 +2739,9 @@ void SelectMachineDialog::on_set_finish_mapping(wxCommandEvent &evt)
|
|||
}
|
||||
}
|
||||
|
||||
int use_ext_count = 0;
|
||||
int use_ams_count = 0;
|
||||
|
||||
for (auto i = 0; i < m_ams_mapping_result.size(); i++) {
|
||||
if (m_ams_mapping_result[i].id == wxAtoi(selection_data_arr[5])) {
|
||||
m_ams_mapping_result[i].tray_id = evt.GetInt();
|
||||
|
@ -2756,10 +2753,24 @@ void SelectMachineDialog::on_set_finish_mapping(wxCommandEvent &evt)
|
|||
|
||||
m_ams_mapping_result[i].ams_id = selection_data_arr[6].ToStdString();
|
||||
m_ams_mapping_result[i].slot_id = selection_data_arr[7].ToStdString();
|
||||
|
||||
if (m_ams_mapping_result[i].ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID) || m_ams_mapping_result[i].ams_id == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
use_ext_count++;
|
||||
} else if (m_ams_mapping_result[i].ams_id >= std::to_string(0)) {
|
||||
use_ams_count++;
|
||||
}
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(trace) << "The ams mapping result: id is " << m_ams_mapping_result[i].id << "tray_id is " << m_ams_mapping_result[i].tray_id;
|
||||
}
|
||||
|
||||
/*check use ams options*/
|
||||
if (m_checkbox_list["use_ams"]->IsShown() && use_ext_count == m_ams_mapping_result.size()) {
|
||||
m_checkbox_list["use_ams"]->setValue("off");
|
||||
}
|
||||
else if (use_ams_count > 0) {
|
||||
m_checkbox_list["use_ams"]->setValue("on");
|
||||
}
|
||||
|
||||
MaterialHash::iterator iter = m_materialList.begin();
|
||||
while (iter != m_materialList.end()) {
|
||||
Material* item = iter->second;
|
||||
|
@ -4455,7 +4466,7 @@ void SelectMachineDialog::set_default_from_sdcard()
|
|||
auto mouse_pos = ClientToScreen(e.GetPosition());
|
||||
wxPoint rect = item->ClientToScreen(wxPoint(0, 0));
|
||||
|
||||
if (obj_ && obj_->is_support_ams_mapping()) {
|
||||
if (obj_) {
|
||||
if (m_mapping_popup.IsShown()) return;
|
||||
wxPoint pos = item->ClientToScreen(wxPoint(0, 0));
|
||||
pos.y += item->GetRect().height;
|
||||
|
|
|
@ -2600,39 +2600,6 @@ void SyncAmsInfoDialog::update_show_status()
|
|||
}
|
||||
}
|
||||
|
||||
if (!obj_->is_support_ams_mapping()) {
|
||||
int exceed_index = -1;
|
||||
if (obj_->is_mapping_exceed_filament(m_ams_mapping_result, exceed_index)) {
|
||||
std::vector<wxString> params;
|
||||
params.push_back(wxString::Format("%02d", exceed_index + 1));
|
||||
show_status(PrintDialogStatus::PrintStatusNeedUpgradingAms, params);
|
||||
} else {
|
||||
if (obj_->is_valid_mapping_result(m_ams_mapping_result)) {
|
||||
if (has_timelapse_warning()) {
|
||||
show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
|
||||
} else {
|
||||
show_status(PrintDialogStatus::PrintStatusAmsMappingByOrder);
|
||||
}
|
||||
|
||||
} else {
|
||||
int mismatch_index = -1;
|
||||
for (int i = 0; i < m_ams_mapping_result.size(); i++) {
|
||||
if (m_ams_mapping_result[i].mapping_result == MappingResult::MAPPING_RESULT_TYPE_MISMATCH) {
|
||||
mismatch_index = m_ams_mapping_result[i].id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
std::vector<wxString> params;
|
||||
if (mismatch_index >= 0) {
|
||||
params.push_back(wxString::Format("%02d", mismatch_index + 1));
|
||||
params.push_back(wxString::Format("%02d", mismatch_index + 1));
|
||||
}
|
||||
show_status(PrintDialogStatus::PrintStatusAmsMappingU0Invalid, params);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_ams_mapping_res) {
|
||||
if (has_timelapse_warning()) {
|
||||
show_status(PrintDialogStatus::PrintStatusTimelapseWarning);
|
||||
|
@ -2961,7 +2928,7 @@ void SyncAmsInfoDialog::reset_and_sync_ams_list()
|
|||
m_mapping_popup.set_show_type(ShowType::LEFT_AND_RIGHT);//special
|
||||
}
|
||||
// m_mapping_popup.set_show_type(ShowType::RIGHT);
|
||||
if (obj_ && obj_->is_support_ams_mapping()) {
|
||||
if (obj_) {
|
||||
if (m_mapping_popup.IsShown())
|
||||
return;
|
||||
wxPoint pos = item->ClientToScreen(wxPoint(0, 0));
|
||||
|
|
Loading…
Reference in New Issue