mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-01-05 22:37:41 -07:00
NEW:support new ext slot mapping
jira:[support new mapping] Change-Id: Iaf88f7bd57177df772a926ad162bd3b5a141327a (cherry picked from commit 3b93bd2dd305026457e9f63ca3faeb153b59c9a5)
This commit is contained in:
parent
bba00b2e7a
commit
b46b69ebad
13 changed files with 416 additions and 224 deletions
|
|
@ -2630,7 +2630,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
}
|
||||
|
||||
|
||||
if (is_support_virtual_tray) m_ams_control->update_vams_kn_value(obj->vt_tray, obj);
|
||||
if (is_support_virtual_tray) m_ams_control->update_vams_kn_value(obj->vt_slot[0], obj);
|
||||
if (m_filament_setting_dlg) m_filament_setting_dlg->update();
|
||||
|
||||
std::vector<AMSinfo> ams_info;
|
||||
|
|
@ -2670,11 +2670,11 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
std::string curr_ams_id = m_ams_control->GetCurentAms();
|
||||
std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id);
|
||||
bool is_vt_tray = false;
|
||||
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_ID))
|
||||
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_MAIN_ID))
|
||||
is_vt_tray = true;
|
||||
|
||||
// set segment 1, 2
|
||||
if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_ID) ) {
|
||||
if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID) ) {
|
||||
m_ams_control->SetAmsStep(obj->m_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
else {
|
||||
|
|
@ -2690,8 +2690,8 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
}
|
||||
|
||||
// set segment 3
|
||||
if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_ID)) {
|
||||
m_ams_control->SetExtruder(obj->is_filament_at_extruder(), true, obj->m_ams_id, obj->vt_tray.get_color());
|
||||
if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID)) {
|
||||
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));
|
||||
|
||||
|
|
@ -2700,7 +2700,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
if (obj->ams_status_main == AMS_STATUS_MAIN_FILAMENT_CHANGE) {
|
||||
update_filament_step();
|
||||
|
||||
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_ID) && (obj->m_tray_now != std::to_string(VIRTUAL_TRAY_ID) || obj->m_tray_now != "255")) {
|
||||
if (obj->m_tray_tar == std::to_string(VIRTUAL_TRAY_MAIN_ID) && (obj->m_tray_now != std::to_string(VIRTUAL_TRAY_MAIN_ID) || obj->m_tray_now != "255")) {
|
||||
// wait to heat hotend
|
||||
if (obj->ams_status_sub == 0x02) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, FilamentStepType::STEP_TYPE_VT_LOAD);
|
||||
|
|
@ -2807,7 +2807,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
}
|
||||
|
||||
bool is_curr_tray_selected = false;
|
||||
if (!curr_ams_id.empty() && !curr_can_id.empty() && (curr_ams_id != std::to_string(VIRTUAL_TRAY_ID)) ) {
|
||||
if (!curr_ams_id.empty() && !curr_can_id.empty() && (curr_ams_id != std::to_string(VIRTUAL_TRAY_MAIN_ID)) ) {
|
||||
if (curr_can_id == obj->m_tray_now) {
|
||||
is_curr_tray_selected = true;
|
||||
}
|
||||
|
|
@ -2827,7 +2827,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
is_curr_tray_selected = true;
|
||||
}
|
||||
}
|
||||
}else if (curr_ams_id == std::to_string(VIRTUAL_TRAY_ID)) {
|
||||
}else if (curr_ams_id == std::to_string(VIRTUAL_TRAY_MAIN_ID)) {
|
||||
if (curr_ams_id == obj->m_tray_now) {
|
||||
is_curr_tray_selected = true;
|
||||
}
|
||||
|
|
@ -2902,7 +2902,7 @@ void StatusPanel::update_ams_control_state(bool is_curr_tray_selected)
|
|||
enable[ACTION_BTN_LOAD] = true;
|
||||
enable[ACTION_BTN_UNLOAD] = false;
|
||||
}
|
||||
else if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_ID)) {
|
||||
else if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID)) {
|
||||
enable[ACTION_BTN_LOAD] = false;
|
||||
enable[ACTION_BTN_UNLOAD] = true;
|
||||
}
|
||||
|
|
@ -2911,7 +2911,7 @@ void StatusPanel::update_ams_control_state(bool is_curr_tray_selected)
|
|||
|
||||
}
|
||||
else {
|
||||
if (obj->is_in_printing() /*&& obj->can_resume() && obj->m_tray_now != std::to_string(VIRTUAL_TRAY_ID) */) {
|
||||
if (obj->is_in_printing() /*&& obj->can_resume() && obj->m_tray_now != std::to_string(VIRTUAL_TRAY_MAIN_ID) */) {
|
||||
|
||||
if (!obj->can_resume()) {
|
||||
enable[ACTION_BTN_LOAD] = false;
|
||||
|
|
@ -2920,7 +2920,7 @@ void StatusPanel::update_ams_control_state(bool is_curr_tray_selected)
|
|||
else {
|
||||
if (obj->m_tray_now == "255") {
|
||||
|
||||
if ( m_ams_control->GetCurentAms() == std::to_string(VIRTUAL_TRAY_ID) ) {
|
||||
if ( m_ams_control->GetCurentAms() == std::to_string(VIRTUAL_TRAY_MAIN_ID) ) {
|
||||
enable[ACTION_BTN_LOAD] = true;
|
||||
enable[ACTION_BTN_UNLOAD] = false;
|
||||
}
|
||||
|
|
@ -2929,8 +2929,8 @@ void StatusPanel::update_ams_control_state(bool is_curr_tray_selected)
|
|||
enable[ACTION_BTN_UNLOAD] = false;
|
||||
}
|
||||
}
|
||||
else if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_ID)) {
|
||||
if (m_ams_control->GetCurentAms() == std::to_string(VIRTUAL_TRAY_ID)) {
|
||||
else if (obj->m_tray_now == std::to_string(VIRTUAL_TRAY_MAIN_ID)) {
|
||||
if (m_ams_control->GetCurentAms() == std::to_string(VIRTUAL_TRAY_MAIN_ID)) {
|
||||
enable[ACTION_BTN_LOAD] = false;
|
||||
enable[ACTION_BTN_UNLOAD] = true;
|
||||
}
|
||||
|
|
@ -3527,11 +3527,18 @@ void StatusPanel::on_ams_load_curr()
|
|||
|
||||
update_filament_step();
|
||||
//virtual tray
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_ID)) == 0)
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0 ||
|
||||
curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) == 0)
|
||||
{
|
||||
int vt_slot_idx = 0;
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) == 0)
|
||||
{
|
||||
vt_slot_idx = 1;
|
||||
}
|
||||
|
||||
int old_temp = -1;
|
||||
int new_temp = -1;
|
||||
AmsTray* curr_tray = &obj->vt_tray;
|
||||
AmsTray* curr_tray = &obj->vt_slot[vt_slot_idx];
|
||||
|
||||
if (!curr_tray) return;
|
||||
|
||||
|
|
@ -3601,7 +3608,7 @@ void StatusPanel::on_ams_load_curr()
|
|||
void StatusPanel::on_ams_load_vams(wxCommandEvent& event) {
|
||||
BOOST_LOG_TRIVIAL(info) << "on_ams_load_vams_tray";
|
||||
|
||||
m_ams_control->SwitchAms(std::to_string(VIRTUAL_TRAY_ID));
|
||||
m_ams_control->SwitchAms(std::to_string(VIRTUAL_TRAY_MAIN_ID));
|
||||
on_ams_load_curr();
|
||||
if (m_print_error_dlg) {
|
||||
m_print_error_dlg->on_hide();
|
||||
|
|
@ -3671,8 +3678,8 @@ void StatusPanel::on_filament_extrusion_cali(wxCommandEvent &event)
|
|||
m_extrusion_cali_dlg->obj = obj;
|
||||
std::string ams_id = m_ams_control->GetCurentAms();
|
||||
std::string tray_id = m_ams_control->GetCurrentCan(ams_id);
|
||||
if (tray_id.empty() && ams_id.compare(std::to_string(VIRTUAL_TRAY_ID)) != 0) {
|
||||
wxString txt = _L("Please select an AMS slot before calibration.");
|
||||
if (tray_id.empty() && ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) != 0) {
|
||||
wxString txt = _L("Please select an AMS slot before calibration");
|
||||
MessageDialog msg_dlg(nullptr, txt, wxEmptyString, wxICON_WARNING | wxOK);
|
||||
msg_dlg.ShowModal();
|
||||
return;
|
||||
|
|
@ -3683,8 +3690,8 @@ void StatusPanel::on_filament_extrusion_cali(wxCommandEvent &event)
|
|||
|
||||
|
||||
// set ams_filament id is is bbl filament
|
||||
if (ams_id.compare(std::to_string(VIRTUAL_TRAY_ID)) == 0) {
|
||||
tray_id_int = VIRTUAL_TRAY_ID;
|
||||
if (ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
|
||||
tray_id_int = VIRTUAL_TRAY_MAIN_ID;
|
||||
m_extrusion_cali_dlg->ams_filament_id = "";
|
||||
}
|
||||
else {
|
||||
|
|
@ -3797,6 +3804,7 @@ void StatusPanel::on_ext_spool_edit(wxCommandEvent &event)
|
|||
|
||||
m_filament_setting_dlg->ams_id = ams_id;
|
||||
m_filament_setting_dlg->slot_id = slot_id;
|
||||
int nozzle_index = ams_id == VIRTUAL_TRAY_MAIN_ID ? 0 : 1;
|
||||
|
||||
try {
|
||||
std::string sn_number;
|
||||
|
|
@ -3805,16 +3813,16 @@ void StatusPanel::on_ext_spool_edit(wxCommandEvent &event)
|
|||
std::string temp_min;
|
||||
wxString k_val;
|
||||
wxString n_val;
|
||||
k_val = wxString::Format("%.3f", obj->vt_tray.k);
|
||||
n_val = wxString::Format("%.3f", obj->vt_tray.n);
|
||||
wxColor color = AmsTray::decode_color(obj->vt_tray.color);
|
||||
m_filament_setting_dlg->ams_filament_id = obj->vt_tray.setting_id;
|
||||
k_val = wxString::Format("%.3f", obj->vt_slot[nozzle_index].k);
|
||||
n_val = wxString::Format("%.3f", obj->vt_slot[nozzle_index].n);
|
||||
wxColor color = AmsTray::decode_color(obj->vt_slot[nozzle_index].color);
|
||||
m_filament_setting_dlg->ams_filament_id = obj->vt_slot[nozzle_index].setting_id;
|
||||
|
||||
std::vector<wxColour> cols;
|
||||
for (auto col : obj->vt_tray.cols) {
|
||||
for (auto col : obj->vt_slot[nozzle_index].cols) {
|
||||
cols.push_back(AmsTray::decode_color(col));
|
||||
}
|
||||
m_filament_setting_dlg->set_ctype(obj->vt_tray.ctype);
|
||||
m_filament_setting_dlg->set_ctype(obj->vt_slot[nozzle_index].ctype);
|
||||
|
||||
if (m_filament_setting_dlg->ams_filament_id.empty()) {
|
||||
m_filament_setting_dlg->set_empty_color(color);
|
||||
|
|
@ -3822,15 +3830,14 @@ void StatusPanel::on_ext_spool_edit(wxCommandEvent &event)
|
|||
else {
|
||||
m_filament_setting_dlg->set_color(color);
|
||||
m_filament_setting_dlg->set_colors(cols);
|
||||
|
||||
}
|
||||
|
||||
m_filament_setting_dlg->m_is_third = !MachineObject::is_bbl_filament(obj->vt_tray.tag_uid);
|
||||
m_filament_setting_dlg->m_is_third = !MachineObject::is_bbl_filament(obj->vt_slot[nozzle_index].tag_uid);
|
||||
if (!m_filament_setting_dlg->m_is_third) {
|
||||
sn_number = obj->vt_tray.uuid;
|
||||
filament = obj->vt_tray.sub_brands;
|
||||
temp_max = obj->vt_tray.nozzle_temp_max;
|
||||
temp_min = obj->vt_tray.nozzle_temp_min;
|
||||
sn_number = obj->vt_slot[nozzle_index].uuid;
|
||||
filament = obj->vt_slot[nozzle_index].sub_brands;
|
||||
temp_max = obj->vt_slot[nozzle_index].nozzle_temp_max;
|
||||
temp_min = obj->vt_slot[nozzle_index].nozzle_temp_min;
|
||||
}
|
||||
|
||||
m_filament_setting_dlg->Move(wxPoint(current_position_x,current_position_y));
|
||||
|
|
@ -3857,8 +3864,8 @@ void StatusPanel::on_ams_refresh_rfid(wxCommandEvent &event)
|
|||
}
|
||||
|
||||
std::string curr_ams_id = m_ams_control->GetCurentAms();
|
||||
// do not support refresh rfid for VIRTUAL_TRAY_ID
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_ID)) == 0) {
|
||||
// do not support refresh rfid for VIRTUAL_TRAY_MAIN_ID
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
|
||||
return;
|
||||
}
|
||||
std::string curr_can_id = event.GetString().ToStdString();
|
||||
|
|
@ -3887,7 +3894,7 @@ void StatusPanel::on_ams_selected(wxCommandEvent &event)
|
|||
{
|
||||
if (obj) {
|
||||
std::string curr_ams_id = m_ams_control->GetCurentAms();
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_ID)) == 0) {
|
||||
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
|
||||
//update_ams_control_state(curr_ams_id, true);
|
||||
return;
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue