mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-17 10:32:20 +00:00
ENH:compatible with AMS exist flag
jira:[none] Change-Id: I6afeafe0676eded86f83838576d67233f50ee509 (cherry picked from commit a182fa1aa4a3bdd32c4ccfa26adcd92a9f1cca37)
This commit is contained in:
@@ -798,19 +798,19 @@ void MachineObject::_parse_tray_now(std::string tray_now)
|
||||
try {
|
||||
int tray_now_int = atoi(tray_now.c_str());
|
||||
|
||||
if (tray_now_int == 255) {
|
||||
if (tray_now_int == VIRTUAL_TRAY_MAIN_ID) {
|
||||
m_ams_id = "0";
|
||||
m_tray_id = "0";
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id = "";
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id = "";
|
||||
|
||||
if (m_tray_now == std::to_string(255)) {
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id = std::to_string(255);
|
||||
if (m_tray_now == std::to_string(VIRTUAL_TRAY_DEPUTY_ID)) {
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id = std::to_string(VIRTUAL_TRAY_MAIN_ID);
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id = "0";
|
||||
}
|
||||
}
|
||||
else if (tray_now_int == 254) {
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id = std::to_string(254);
|
||||
else if (tray_now_int == VIRTUAL_TRAY_DEPUTY_ID) {
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id = std::to_string(VIRTUAL_TRAY_MAIN_ID);
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id = "0";
|
||||
}
|
||||
else {
|
||||
@@ -3669,7 +3669,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
||||
}
|
||||
|
||||
/*the param is invalid in np for Yeshu*/
|
||||
if (!check_enable_np(jj) && jj.contains("hw_switch_state")) {
|
||||
if (jj.contains("hw_switch_state")) {
|
||||
hw_switch_state = jj["hw_switch_state"].get<int>();
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].ext_has_filament = hw_switch_state;
|
||||
}
|
||||
|
||||
@@ -1130,6 +1130,7 @@ AMSRoadShowMode AMSControl::findFirstMode(AMSPanelPos pos) {
|
||||
}
|
||||
}
|
||||
if (item->second->get_ams_model() == AMSModel::EXT_AMS && item->second->get_ext_type() == AMSModelOriginType::LITE_EXT) return AMSRoadShowMode::AMS_ROAD_MODE_AMS_LITE;
|
||||
if (item->second->get_ams_model() == AMSModel::N3S_AMS) return AMSRoadShowMode::AMS_ROAD_MODE_SINGLE_N3S;
|
||||
return AMSRoadShowMode::AMS_ROAD_MODE_SINGLE;
|
||||
}
|
||||
}
|
||||
@@ -1400,6 +1401,10 @@ void AMSControl::SwitchAms(std::string ams_id)
|
||||
}
|
||||
else {
|
||||
AMSRoadShowMode mode = AMSRoadShowMode::AMS_ROAD_MODE_SINGLE;
|
||||
|
||||
if (item->get_ams_model() == AMSModel::N3S_AMS)
|
||||
mode = AMSRoadShowMode::AMS_ROAD_MODE_SINGLE_N3S;
|
||||
|
||||
for (auto it : pair_id) {
|
||||
if (it.first == ams_id || it.second == ams_id) {
|
||||
mode = AMSRoadShowMode::AMS_ROAD_MODE_DOUBLE;
|
||||
@@ -1521,9 +1526,10 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
|
||||
}
|
||||
|
||||
//Set path length in different case
|
||||
if (ams->get_can_count() == GENERIC_AMS_SLOT_NUM){
|
||||
model = ams->get_ams_model();
|
||||
|
||||
if (ams->get_can_count() == GENERIC_AMS_SLOT_NUM) {
|
||||
length = left ? 129 : 145;
|
||||
model = ams->get_ams_model();
|
||||
} else if (ams->get_can_count() == 1) {
|
||||
for (auto it : pair_id){
|
||||
if (it.first == ams_id){
|
||||
@@ -1537,8 +1543,12 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
|
||||
break;
|
||||
}
|
||||
}
|
||||
model = ams->get_ams_model();
|
||||
|
||||
if (!in_pair && model == N3S_AMS) {
|
||||
length = left ? 129 : 232;
|
||||
}
|
||||
}
|
||||
|
||||
if (model == AMSModel::AMS_LITE){
|
||||
length = left ? 145 : 45;
|
||||
}
|
||||
|
||||
@@ -2328,6 +2328,10 @@ void AMSRoadDownPart::doRender(wxDC& dc)
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP(218), 0, left_nozzle_pos.x - FromDIP(218), (size.y / 2));
|
||||
break;
|
||||
case AMSRoadShowMode::AMS_ROAD_MODE_SINGLE:
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP(192), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP(192), 0, left_nozzle_pos.x - FromDIP(192), (size.y / 2));
|
||||
break;
|
||||
case AMSRoadShowMode::AMS_ROAD_MODE_SINGLE_N3S:
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), 0, left_nozzle_pos.x - FromDIP((129)), (size.y / 2));
|
||||
break;
|
||||
@@ -2353,6 +2357,10 @@ void AMSRoadDownPart::doRender(wxDC& dc)
|
||||
dc.DrawLine(right_nozzle_pos.x, (size.y / 2), right_nozzle_pos.x + FromDIP(68), (size.y / 2));
|
||||
dc.DrawLine(right_nozzle_pos.x + FromDIP(68), 0, right_nozzle_pos.x + FromDIP(68), (size.y / 2));
|
||||
break;
|
||||
case AMSRoadShowMode::AMS_ROAD_MODE_SINGLE_N3S:
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), (size.y / 2), left_nozzle_pos.x, (size.y / 2));
|
||||
dc.DrawLine(left_nozzle_pos.x - FromDIP((129)), 0, left_nozzle_pos.x - FromDIP((129)), (size.y / 2));
|
||||
break;
|
||||
case AMSRoadShowMode::AMS_ROAD_MODE_AMS_LITE:
|
||||
dc.DrawLine(left_nozzle_pos.x, (size.y / 2), left_nozzle_pos.x + FromDIP(145), (size.y / 2));
|
||||
dc.DrawLine(left_nozzle_pos.x + FromDIP(145), 0, left_nozzle_pos.x + FromDIP(145), (size.y / 2));
|
||||
|
||||
@@ -72,6 +72,7 @@ enum class AMSRoadShowMode : int {
|
||||
AMS_ROAD_MODE_FOUR,
|
||||
AMS_ROAD_MODE_DOUBLE,
|
||||
AMS_ROAD_MODE_SINGLE,
|
||||
AMS_ROAD_MODE_SINGLE_N3S,
|
||||
AMS_ROAD_MODE_AMS_LITE,
|
||||
AMS_ROAD_MODE_NONE
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user