FIX: FIX cali protocol

add extruder_id for start_cali and add protection for setting_id
jira:none

Change-Id: Idd8eeaa38c618c0ef8db10064d3e4d9793487aa6
This commit is contained in:
zhimin.zeng 2024-10-12 16:47:39 +08:00 committed by lane.wei
parent a35d9b3138
commit 9097efd869
2 changed files with 17 additions and 29 deletions

View File

@ -2262,6 +2262,7 @@ int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, in
std::string filament_ids;
for (int i = 0; i < pa_data.calib_datas.size(); ++i) {
j["print"]["filaments"][i]["tray_id"] = pa_data.calib_datas[i].tray_id;
j["print"]["filaments"][i]["extruder_id"] = pa_data.calib_datas[i].extruder_id;
j["print"]["filaments"][i]["bed_temp"] = pa_data.calib_datas[i].bed_temp;
j["print"]["filaments"][i]["filament_id"] = pa_data.calib_datas[i].filament_id;
j["print"]["filaments"][i]["setting_id"] = pa_data.calib_datas[i].setting_id;
@ -4657,38 +4658,26 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
has_get_pa_calib_tab = true;
}
if (jj.contains("nozzle_diameter")) {
if (jj["nozzle_diameter"].is_number_float()) {
pa_calib_tab_info.pa_calib_tab_nozzle_dia = jj["nozzle_diameter"].get<float>();
}
else if (jj["nozzle_diameter"].is_string()) {
pa_calib_tab_info.pa_calib_tab_nozzle_dia = string_to_float(jj["nozzle_diameter"].get<std::string>());
}
else {
assert(false);
}
}
else {
assert(false);
}
if (jj.contains("extruder_id")) {
pa_calib_tab_info.extruder_id = jj["extruder_id"].get<int>();
}
if (jj.contains("nozzle_id")) {
pa_calib_tab_info.nozzle_volume_type = convert_to_nozzle_type(jj["nozzle_id"].get<std::string>());
}
if (jj.contains("filaments") && jj["filaments"].is_array()) {
try {
for (auto it = jj["filaments"].begin(); it != jj["filaments"].end(); it++) {
PACalibResult pa_calib_result;
pa_calib_result.filament_id = (*it)["filament_id"].get<std::string>();
pa_calib_result.setting_id = (*it)["setting_id"].get<std::string>();
pa_calib_result.name = (*it)["name"].get<std::string>();
pa_calib_result.cali_idx = (*it)["cali_idx"].get<int>();
if ((*it).contains("setting_id")) {
pa_calib_result.setting_id = (*it)["setting_id"].get<std::string>();
}
if ((*it).contains("extruder_id")) {
pa_calib_result.extruder_id = (*it)["extruder_id"].get<int>();
}
if ((*it).contains("nozzle_id")) {
pa_calib_result.nozzle_volume_type = convert_to_nozzle_type((*it)["nozzle_id"].get<std::string>());
}
if (jj["nozzle_diameter"].is_number_float()) {
pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get<float>();
} else if (jj["nozzle_diameter"].is_string()) {
@ -4742,7 +4731,10 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
PACalibResult pa_calib_result;
pa_calib_result.tray_id = (*it)["tray_id"].get<int>();
pa_calib_result.filament_id = (*it)["filament_id"].get<std::string>();
pa_calib_result.setting_id = (*it)["setting_id"].get<std::string>();
if ((*it).contains("setting_id")) {
pa_calib_result.setting_id = (*it)["setting_id"].get<std::string>();
}
if (jj["nozzle_diameter"].is_number_float()) {
pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get<float>();

View File

@ -693,16 +693,12 @@ public:
ManualPaCaliMethod manual_pa_cali_method = ManualPaCaliMethod::PA_LINE;
bool has_get_pa_calib_tab{ false };
std::vector<PACalibResult> pa_calib_tab;
PACalibTabInfo pa_calib_tab_info;
bool get_pa_calib_result { false };
std::vector<PACalibResult> pa_calib_results;
bool get_flow_calib_result { false };
std::vector<FlowRatioCalibResult> flow_ratio_results;
void reset_pa_cali_history_result()
{
pa_calib_tab_info.pa_calib_tab_nozzle_dia = 0.4f;
pa_calib_tab_info.extruder_id = -1;
pa_calib_tab_info.nozzle_volume_type = NozzleVolumeType::nvtNormal;
has_get_pa_calib_tab = false;
pa_calib_tab.clear();
}