From 5821c60eb4743b014eb4641104bc35213f0b465b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 27 Oct 2023 11:24:39 +0200 Subject: [PATCH] add contrast set --- eive_tmtc/tmtc/acs/star_tracker.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/eive_tmtc/tmtc/acs/star_tracker.py b/eive_tmtc/tmtc/acs/star_tracker.py index 5aeae2c..ae1790c 100644 --- a/eive_tmtc/tmtc/acs/star_tracker.py +++ b/eive_tmtc/tmtc/acs/star_tracker.py @@ -142,6 +142,7 @@ class SetId(enum.IntEnum): TEMPERATURE = 25 SOLUTION = 24 HISTOGRAM = 28 + CONTRAST = 29 CHECKSUM = 50 CAMERA = 67 LIMITS = 68 @@ -801,6 +802,8 @@ def handle_str_hk_data(set_id: int, hk_data: bytes, pw: PrintWrapper): handle_centroid_set(hk_data, pw) elif set_id == SetId.CENTROIDS: handle_centroids_set(hk_data, pw) + elif set_id == SetId.CONTRAST: + handle_contrast_set(hk_data, pw) else: _LOGGER.warning(f"HK parsing for Star Tracker set ID {set_id} unimplemented") @@ -1050,13 +1053,14 @@ def handle_auto_blob_set(hk_data: bytes, pw: PrintWrapper): threshold = struct.unpack( fmt_threshold, hk_data[current_idx : current_idx + inc_len] )[0] - pw.dlog(f"Threshold {threshold}") + current_idx += inc_len assert current_idx == len(hk_data) - 1 + pw.dlog(f"Threshold {threshold}") FsfwTmTcPrinter.get_validity_buffer(hk_data[current_idx:], num_vars=3) -def handle_histogram_set(hk_data: bytes, pw: PrintWrapper): - pw.dlog("Received Histogram Set") +def handle_histo_or_contrast_set(name: str, hk_data: bytes, pw: PrintWrapper): + pw.dlog(f"Received {name} Set") current_idx = unpack_time_hk(hk_data, 0, pw) fmt_str = "!IIIIIIIII" bins_list = [] @@ -1073,9 +1077,9 @@ def handle_histogram_set(hk_data: bytes, pw: PrintWrapper): d_bins = struct.unpack(fmt_str, hk_data[current_idx : current_idx + inc_len]) bins_list.append(d_bins) pw.dlog( - "Histogram Sections: A Upper Left | B Upper Right | C Lower Left | D Lower Right" + f"{name} Sections: A Upper Left | B Upper Right | C Lower Left | D Lower Right" ) - pw.dlog("{:<12} {:<8} {:<8} {:<8} {:<8}".format("Range", "A", "B", "C", "D")) + pw.dlog("{:<12} {:<10} {:<10} {:<10} {:<10}".format("Range", "A", "B", "C", "D")) for idx in range(9): if idx == 0: val_range = "0 (0-0)" @@ -1084,7 +1088,7 @@ def handle_histogram_set(hk_data: bytes, pw: PrintWrapper): else: val_range = f"{idx} ({pow(2, idx - 1)}-{pow(2, idx) - 1})" pw.dlog( - "{:<12} {:<8} {:<8} {:<8} {:<8}".format( + "{:<12} {:<10} {:<10} {:<10} {:<10}".format( val_range, bins_list[0][idx], bins_list[1][idx], @@ -1092,7 +1096,14 @@ def handle_histogram_set(hk_data: bytes, pw: PrintWrapper): bins_list[3][idx], ) ) - pass + + +def handle_histogram_set(hk_data: bytes, pw: PrintWrapper): + handle_histo_or_contrast_set("Histogram", hk_data, pw) + + +def handle_contrast_set(hk_data: bytes, pw: PrintWrapper): + handle_histo_or_contrast_set("Contrast", hk_data, pw) def handle_star_tracker_action_replies(