From fcabaa5b09d78afe9c09ebf305a8605ff3b67d1b Mon Sep 17 00:00:00 2001 From: meggert Date: Fri, 4 Aug 2023 14:51:55 +0200 Subject: [PATCH] rework gps data handling --- eive_tmtc/tmtc/acs/gps.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/eive_tmtc/tmtc/acs/gps.py b/eive_tmtc/tmtc/acs/gps.py index 9eaba95..4bb0a66 100644 --- a/eive_tmtc/tmtc/acs/gps.py +++ b/eive_tmtc/tmtc/acs/gps.py @@ -97,8 +97,27 @@ def pack_gps_command(object_id: bytes, q: DefaultPusQueueHelper, op_code: str): q.add_pus_tc(create_mode_command(object_id, Mode.OFF, 0)) -def handle_gps_data(pw: PrintWrapper, hk_data: bytes): - pw.dlog(f"Received GPS data, HK data length {len(hk_data)}") +def handle_gps_data( + pw: PrintWrapper, + set_id: int, + hk_data: bytes, + packet_time: datetime.datetime, +): + pw.ilog(_LOGGER, f"Received GPS CTRL HK with packet time {packet_time}") + match set_id: + case SetId.CORE_HK: + handle_core_data(pw, hk_data) + case SetId.SKYVIEW_HK: + handle_mgm_data_processed(pw, hk_data) + + +def handle_core_data(pw: PrintWrapper, hk_data: bytes): + if len(hk_data) < 4*8+4+2+8: + pw.dlog( + f"GPS Core dataset with size {len(hk_data)} does not have expected size" + f" of {4*8+4+2+8} bytes" + ) + return current_idx = 0 fmt_str = "!ddddBBBHBBBBBI" inc_len = struct.calcsize(fmt_str)