FIX: safe the ams_id traverse
jira: [none] Change-Id: I58b7769f843f3dbef8b51a15768711257f590dba
This commit is contained in:
parent
b9ec612416
commit
f0efb9af0d
|
@ -54,6 +54,20 @@ struct FilamentInfo
|
|||
/*for new ams mapping*/
|
||||
std::string ams_id;
|
||||
std::string slot_id;
|
||||
|
||||
public:
|
||||
int get_amd_id() const
|
||||
{
|
||||
if (ams_id.empty()) { return -1; };
|
||||
|
||||
try
|
||||
{
|
||||
return stoi(ams_id);
|
||||
}
|
||||
catch (...) {};
|
||||
|
||||
return -1;
|
||||
};
|
||||
};
|
||||
|
||||
class BBLSliceInfo {
|
||||
|
|
|
@ -1243,7 +1243,7 @@ bool MachineObject::need_SD_card() const
|
|||
|
||||
int MachineObject::get_extruder_id_by_ams_id(const std::string &ams_id)
|
||||
{
|
||||
if (ams_id.empty())
|
||||
if (ams_id.empty() || (ams_id == "-1"))
|
||||
return 0;
|
||||
|
||||
auto it = amsList.find(ams_id);
|
||||
|
|
|
@ -2105,7 +2105,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||
//check blacklist
|
||||
for (auto i = 0; i < m_ams_mapping_result.size(); i++) {
|
||||
|
||||
const auto& ams_id = m_ams_mapping_result[i].ams_id;
|
||||
const auto& ams_id = m_ams_mapping_result[i].get_amd_id();
|
||||
auto tid = m_ams_mapping_result[i].tray_id;
|
||||
|
||||
std::string filament_type = boost::to_upper_copy(m_ams_mapping_result[i].type);
|
||||
|
@ -2121,7 +2121,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||
std::string action;
|
||||
std::string info;
|
||||
|
||||
DeviceManager::check_filaments_in_blacklist(filament_brand, filament_type, stoi(ams_id), in_blacklist, action, info);
|
||||
DeviceManager::check_filaments_in_blacklist(filament_brand, filament_type, ams_id, in_blacklist, action, info);
|
||||
|
||||
if (in_blacklist && action == "warning") {
|
||||
wxString prohibited_error = wxString::FromUTF8(info);
|
||||
|
@ -2172,7 +2172,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||
|
||||
for (auto i = 0; i < m_ams_mapping_result.size(); i++) {
|
||||
|
||||
const auto& ams_id = m_ams_mapping_result[i].ams_id;
|
||||
const auto& ams_id = m_ams_mapping_result[i].get_amd_id();
|
||||
auto tid = m_ams_mapping_result[i].tray_id;
|
||||
|
||||
std::string filament_type = boost::to_upper_copy(m_ams_mapping_result[i].type);
|
||||
|
@ -2187,7 +2187,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event)
|
|||
bool in_blacklist = false;
|
||||
std::string action;
|
||||
std::string info;
|
||||
DeviceManager::check_filaments_in_blacklist(filament_brand, filament_type, stoi(ams_id), in_blacklist, action, info);
|
||||
DeviceManager::check_filaments_in_blacklist(filament_brand, filament_type, ams_id, in_blacklist, action, info);
|
||||
|
||||
if (in_blacklist && action == "prohibition") {
|
||||
has_prohibited_filament = true;
|
||||
|
|
Loading…
Reference in New Issue