From f50aac689fc83983c15cb0a4f1a8a9bc2a3a4953 Mon Sep 17 00:00:00 2001 From: meggert Date: Mon, 6 Feb 2023 17:15:15 +0100 Subject: [PATCH] changed calibration method to use processed data --- eive_tmtc/tmtc/acs/acs_ctrl.py | 39 +++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index 151accf..379aa11 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -514,8 +514,6 @@ def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes): for entry in zip(print_str_list, formatted_list): pw.dlog(f"{entry[0].ljust(28)}: {entry[1]}") current_idx += 1 - if PERFORM_MGM_CALIBRATION: - perform_mgm_calibration(pw, mgm_0_lis3_floats_ut) assert current_idx == 61 pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=6) @@ -528,31 +526,48 @@ def handle_mgm_data_processed(pw: PrintWrapper, hk_data: bytes): pw.dlog("Recieved HK set too small") return current_idx = 0 - for i in range(5): - fmt_str = "!fff" - inc_len = struct.calcsize(fmt_str) - mgm_vec = struct.unpack(fmt_str, hk_data[current_idx : current_idx + inc_len]) - mgm_vec = [f"{val:8.3f}" for val in mgm_vec] - pw.dlog(f"MGM {i}: {mgm_vec}") - current_idx += inc_len + fmt_str = "!fff" + inc_len = struct.calcsize(fmt_str) + mgm_0 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len]) + mgm_0_str = [f"{val:8.3f}" for val in mgm_0] + pw.dlog(f"MGM 0 Vec: {mgm_0_str}") + current_idx += inc_len + mgm_1 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len]) + mgm_1_str = [f"{val:8.3f}" for val in mgm_1] + pw.dlog(f"MGM 1 Vec: {mgm_1_str}") + current_idx += inc_len + mgm_2 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len]) + mgm_2_str = [f"{val:8.3f}" for val in mgm_2] + pw.dlog(f"MGM 2 Vec: {mgm_2_str}") + current_idx += inc_len + mgm_3 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len]) + mgm_3_str = [f"{val:8.3f}" for val in mgm_3] + pw.dlog(f"MGM 3 Vec: {mgm_3_str}") + current_idx += inc_len + mgm_4 = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len]) + mgm_4_str = [f"{val:8.3f}" for val in mgm_4] + pw.dlog(f"MGM 4 Vec: {mgm_4_str}") + current_idx += inc_len fmt_str = "!ddd" inc_len = struct.calcsize(fmt_str) - mgm_vec_tot = struct.unpack(fmt_str, hk_data[current_idx : current_idx + inc_len]) + mgm_vec_tot = struct.unpack(fmt_str, hk_data[current_idx: current_idx + inc_len]) mgm_vec_tot = [f"{val:8.3f}" for val in mgm_vec_tot] current_idx += inc_len pw.dlog(f"MGM Total Vec: {mgm_vec_tot}") mgm_vec_tot_deriv = struct.unpack( - fmt_str, hk_data[current_idx : current_idx + inc_len] + fmt_str, hk_data[current_idx: current_idx + inc_len] ) mgm_vec_tot_deriv = [f"{val:8.3f}" for val in mgm_vec_tot_deriv] pw.dlog(f"MGM Total Vec Deriv: {mgm_vec_tot_deriv}") current_idx += inc_len mag_igrf_model = struct.unpack( - fmt_str, hk_data[current_idx : current_idx + inc_len] + fmt_str, hk_data[current_idx: current_idx + inc_len] ) mag_igrf_model = [f"{val:8.3f}" for val in mag_igrf_model] pw.dlog(f"MAG IGRF Model: {mag_igrf_model}") current_idx += inc_len + if PERFORM_MGM_CALIBRATION: + perform_mgm_calibration(pw, mgm_3) pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=8) -- 2.43.0