ENH:compatible with AMS exist flag
jira:[none] Change-Id: I6afeafe0676eded86f83838576d67233f50ee509
This commit is contained in:
parent
c2adbe140b
commit
a182fa1aa4
|
@ -798,25 +798,28 @@ void MachineObject::_parse_tray_now(std::string tray_now)
|
|||
} else {
|
||||
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 = "";
|
||||
}
|
||||
else {
|
||||
if (tray_now_int == 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 {
|
||||
if (tray_now_int >= 0x80 && tray_now_int <= 0x87) {
|
||||
m_ams_id = std::to_string(tray_now_int);
|
||||
} else {
|
||||
m_ams_id = std::to_string(tray_now_int >> 2);
|
||||
}
|
||||
|
||||
m_tray_id = std::to_string(tray_now_int & 0x3);
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.ams_id = m_ams_id;
|
||||
m_extder_data.extders[MAIN_NOZZLE_ID].snow.slot_id = m_tray_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(...) {
|
||||
}
|
||||
}
|
||||
|
@ -3745,7 +3748,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;
|
||||
}
|
||||
|
@ -4517,21 +4520,6 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
|||
if (ams_it == amsList.end()) {
|
||||
Ams* new_ams = new Ams(ams_id, nozzle_id, type_id);
|
||||
new_ams->info = info;
|
||||
|
||||
try {
|
||||
if (!ams_id.empty()) {
|
||||
int ams_id_int = atoi(ams_id.c_str());
|
||||
|
||||
if (type_id < 4 ) {
|
||||
new_ams->is_exists = (ams_exist_bits & (1 << ams_id_int)) != 0 ? true : false;
|
||||
} else {
|
||||
new_ams->is_exists = get_flag_bits(ams_exist_bits, 4 + (ams_id_int - 128));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (...) {
|
||||
;
|
||||
}
|
||||
amsList.insert(std::make_pair(ams_id, new_ams));
|
||||
// new ams added event
|
||||
curr_ams = new_ams;
|
||||
|
@ -4545,6 +4533,25 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
|||
}
|
||||
if (!curr_ams) continue;
|
||||
|
||||
/*set ams type flag*/
|
||||
curr_ams->type = type_id;
|
||||
|
||||
|
||||
/*set ams exist flag*/
|
||||
try {
|
||||
if (!ams_id.empty()) {
|
||||
int ams_id_int = atoi(ams_id.c_str());
|
||||
|
||||
if (type_id < 4) {
|
||||
curr_ams->is_exists = (ams_exist_bits & (1 << ams_id_int)) != 0 ? true : false;
|
||||
} else {
|
||||
curr_ams->is_exists = get_flag_bits(ams_exist_bits, 4 + (ams_id_int - 128));
|
||||
}
|
||||
}
|
||||
} catch (...) {
|
||||
;
|
||||
}
|
||||
|
||||
if (it->contains("dry_time") && (*it)["dry_time"].is_number())
|
||||
{
|
||||
curr_ams->left_dry_time = (*it)["dry_time"].get<int>();
|
||||
|
|
|
@ -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
|
||||
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
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue