FIX: fix crash

jira: NONE

Change-Id: I95ef9a8aefbbb8de7caa9c9b46de7cb3f60e0989
This commit is contained in:
hang.xu 2024-07-23 12:42:28 +08:00 committed by lane.wei
parent fe1d241a16
commit 93a9b16494
2 changed files with 22 additions and 10 deletions

View File

@ -3825,6 +3825,15 @@ void AMSControl::UpdateAms(std::vector<AMSinfo> ams_info, std::vector<AMSinfo>ex
}
}
for (auto ams_prv : m_ams_preview_list) {
std::string id = ams_prv.second->m_amsinfo.ams_id;
auto item = m_ams_item_list.find(id);
if (item != m_ams_item_list.end())
{
ams_prv.second->Update(item->second->m_info);
}
}
/*if (m_current_show_ams.empty() && !is_reset) {
if (ext_info.size() > 0) {
SwitchAms(ext_info[0].ams_id);

View File

@ -111,7 +111,8 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, Ams *ams, bool remain_flag, boo
info.n = it->second->n;
}
} else {
info.can_id = i;
//info.can_id = i;
info.can_id = std::to_string(i);
info.material_state = AMSCanType::AMS_CAN_TYPE_EMPTY;
}
cans.push_back(info);
@ -1997,7 +1998,7 @@ void AMSRoadUpPart::doRender(wxDC& dc)
dc.SetPen(wxPen(AMS_CONTROL_GRAY500, 2, wxSOLID));
dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH));
if (m_ams_model == SINGLE_AMS || m_ams_model == NO_AMS){
if ((m_ams_model == SINGLE_AMS || m_ams_model == NO_AMS) && m_amsinfo.cans.size() != 4){
dc.DrawLine(FromDIP(size.x / 2), FromDIP(0), FromDIP(size.x / 2), FromDIP(size.y));
if (m_load_step == AMSPassRoadSTEP::AMS_ROAD_STEP_2 || m_load_step == AMSPassRoadSTEP::AMS_ROAD_STEP_3){
dc.SetPen(wxPen(m_amsinfo.cans[m_load_slot_index].material_colour, 4, wxSOLID));
@ -2868,8 +2869,9 @@ void AmsItem::Update(AMSinfo info)
m_info = info;
m_can_count = info.cans.size();
int i = 0;
for (auto refresh_it : m_can_refresh_list) {
int i = 0;
AMSrefresh *refresh = refresh_it.second;
if (i < m_can_count) {
refresh->Update(info.ams_id, info.cans[i]);
@ -2882,14 +2884,15 @@ void AmsItem::Update(AMSinfo info)
for (int i = 0; i < m_can_lib_list.size(); i++) {
AMSLib* lib = m_can_lib_list[std::to_string(i)];
if (i < m_can_count && lib != nullptr) {
lib->Update(info.cans[i], info.ams_id);
lib->Show();
if (lib != nullptr){
if (i < m_can_count){
lib->Update(info.cans[i], info.ams_id);
lib->Show();
}
else{
lib->Hide();
}
}
else {
lib->Hide();
}
i++;
}
if (true || m_ams_model == AMSModel::GENERIC_AMS) {