From 1de02aab7708fdaf769d4985cb2a66236706ac56 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 11 Jan 2023 14:16:52 +0100 Subject: [PATCH 01/34] move core module --- eive_tmtc/{pus_tc/system => tmtc}/core.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename eive_tmtc/{pus_tc/system => tmtc}/core.py (100%) diff --git a/eive_tmtc/pus_tc/system/core.py b/eive_tmtc/tmtc/core.py similarity index 100% rename from eive_tmtc/pus_tc/system/core.py rename to eive_tmtc/tmtc/core.py From d48e86f5fee4455b91ddc1bab5b3ad889abb604a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 11 Jan 2023 14:19:47 +0100 Subject: [PATCH 02/34] unify core module --- eive_tmtc/pus_tc/procedure_packer.py | 2 +- eive_tmtc/pus_tc/system/proc.py | 2 +- eive_tmtc/pus_tm/hk_handling.py | 2 +- eive_tmtc/pus_tm/system/core.py | 21 --------------------- eive_tmtc/tmtc/core.py | 21 ++++++++++++++++++++- eive_tmtc/tmtc/payload/ploc_mpsoc.py | 2 +- 6 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 eive_tmtc/pus_tm/system/core.py diff --git a/eive_tmtc/pus_tc/procedure_packer.py b/eive_tmtc/pus_tc/procedure_packer.py index bbceaa9..7195cdb 100644 --- a/eive_tmtc/pus_tc/procedure_packer.py +++ b/eive_tmtc/pus_tc/procedure_packer.py @@ -37,7 +37,7 @@ from eive_tmtc.tmtc.acs.reaction_wheels import ( from eive_tmtc.pus_tc.devs.rad_sensor import pack_rad_sensor_test_into from eive_tmtc.tmtc.payload.ploc_memory_dumper import pack_ploc_memory_dumper_cmd from eive_tmtc.pus_tc.devs.ccsds_handler import pack_ccsds_handler_test -from eive_tmtc.pus_tc.system.core import pack_core_commands +from eive_tmtc.tmtc.core import pack_core_commands from eive_tmtc.pus_tc.devs.star_tracker import pack_star_tracker_commands from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import pack_syrlinks_command from eive_tmtc.pus_tc.devs.gps import pack_gps_command diff --git a/eive_tmtc/pus_tc/system/proc.py b/eive_tmtc/pus_tc/system/proc.py index 86e4d2b..f4096c0 100644 --- a/eive_tmtc/pus_tc/system/proc.py +++ b/eive_tmtc/pus_tc/system/proc.py @@ -21,7 +21,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import * import eive_tmtc.config.object_ids as oids from eive_tmtc.pus_tc.system.tcs import OpCodes as TcsOpCodes from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetIds -from eive_tmtc.pus_tc.system.core import SetIds as CoreSetIds +from eive_tmtc.tmtc.core import SetIds as CoreSetIds from eive_tmtc.tmtc.power.common_power import SetIds as GsSetIds from eive_tmtc.pus_tc.devs.rad_sensor import SetIds as RadSetIds from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetIds as MgmLis3SetIds_0_2 diff --git a/eive_tmtc/pus_tm/hk_handling.py b/eive_tmtc/pus_tm/hk_handling.py index 11d635d..fd18ea0 100644 --- a/eive_tmtc/pus_tm/hk_handling.py +++ b/eive_tmtc/pus_tm/hk_handling.py @@ -32,7 +32,7 @@ from eive_tmtc.tmtc.acs.imtq import ( handle_raw_mtm_measurement, ) from eive_tmtc.pus_tm.defs import FsfwTmTcPrinter -from eive_tmtc.pus_tm.system.core import handle_core_hk_data +from eive_tmtc.tmtc.core import handle_core_hk_data from eive_tmtc.pus_tm.devs.mgms import handle_mgm_hk_data import eive_tmtc.config.object_ids as obj_ids diff --git a/eive_tmtc/pus_tm/system/core.py b/eive_tmtc/pus_tm/system/core.py deleted file mode 100644 index c664af7..0000000 --- a/eive_tmtc/pus_tm/system/core.py +++ /dev/null @@ -1,21 +0,0 @@ -import struct - -from eive_tmtc.pus_tm.defs import PrintWrapper -from eive_tmtc.pus_tc.system.core import SetIds -from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter - - -def handle_core_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): - if set_id == SetIds.HK: - pw = PrintWrapper(printer) - fmt_str = "!fff" - inc_len = struct.calcsize(fmt_str) - (temperature, ps_voltage, pl_voltage) = struct.unpack( - fmt_str, hk_data[0 : 0 + inc_len] - ) - printout = ( - f"Chip Temperature [°C] {temperature} | PS Voltage [mV] {ps_voltage} | " - f"PL Voltage [mV] {pl_voltage}" - ) - pw.dlog(printout) - printer.print_validity_buffer(validity_buffer=hk_data[inc_len:], num_vars=3) diff --git a/eive_tmtc/tmtc/core.py b/eive_tmtc/tmtc/core.py index 1d1813a..04fb68c 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -1,4 +1,7 @@ import enum +import struct + +from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.config.definitions import CustomServiceList from spacepackets.ecss import PusTelecommand @@ -10,7 +13,7 @@ from tmtccmd.logging import get_console_logger from tmtccmd.tc.pus_3_fsfw_hk import make_sid, generate_one_hk_command from tmtccmd.config.tmtc import OpCodeEntry, tmtc_definitions_provider from eive_tmtc.config.object_ids import CORE_CONTROLLER_ID - +from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter LOGGER = get_console_logger() @@ -333,3 +336,19 @@ def perform_reboot_cmd( user_data=tc_data, ) ) + + +def handle_core_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): + if set_id == SetIds.HK: + pw = PrintWrapper(printer) + fmt_str = "!fff" + inc_len = struct.calcsize(fmt_str) + (temperature, ps_voltage, pl_voltage) = struct.unpack( + fmt_str, hk_data[0 : 0 + inc_len] + ) + printout = ( + f"Chip Temperature [°C] {temperature} | PS Voltage [mV] {ps_voltage} | " + f"PL Voltage [mV] {pl_voltage}" + ) + pw.dlog(printout) + printer.print_validity_buffer(validity_buffer=hk_data[inc_len:], num_vars=3) diff --git a/eive_tmtc/tmtc/payload/ploc_mpsoc.py b/eive_tmtc/tmtc/payload/ploc_mpsoc.py index f7bb14c..7efeea3 100644 --- a/eive_tmtc/tmtc/payload/ploc_mpsoc.py +++ b/eive_tmtc/tmtc/payload/ploc_mpsoc.py @@ -43,7 +43,7 @@ SEQ_FILE_DICT = { MANUAL_INPUT: ["manual input", ""], "2": [f"16QRM On Carrier 200 MBd ({SEQ_FILE_NAMES[0]})", f"{SEQ_FILE_NAMES[0]}"], "3": [f"QPSK On Carrier 780 MBd ({SEQ_FILE_NAMES[1]})", f"{SEQ_FILE_NAMES[1]}"], - "4": [f"Maximum Bandwidth QPSK ({SEQ_FILE_NAMES[2]})", f"{SEQ_FILE_NAMES[2]}"] + "4": [f"Maximum Bandwidth QPSK ({SEQ_FILE_NAMES[2]})", f"{SEQ_FILE_NAMES[2]}"], } From 7d2c639f0173ca21f8e9b3f644829ff428ee5a7a Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 11 Jan 2023 14:23:03 +0100 Subject: [PATCH 03/34] small refactoring --- eive_tmtc/tmtc/core.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/eive_tmtc/tmtc/core.py b/eive_tmtc/tmtc/core.py index 04fb68c..c0cadd4 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -144,7 +144,7 @@ def add_core_controller_definitions(defs: TmtcDefinitionWrapper): def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): if op_code in OpCodes.REBOOT_XSC: reboot_self, chip_select, copy_select = determine_reboot_params() - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=reboot_self, chip=chip_select, @@ -158,24 +158,24 @@ def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): ) ) if op_code in OpCodes.XSC_REBOOT_SELF: - perform_reboot_cmd(q=q, reboot_self=True) + add_xsc_reboot_cmd(q=q, reboot_self=True) if op_code in OpCodes.XSC_REBOOT_0_0: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_0_NOM ) if op_code in OpCodes.XSC_REBOOT_0_1: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_1_GOLD, ) if op_code in OpCodes.XSC_REBOOT_1_0: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, copy=Copy.COPY_0_NOM ) if op_code in OpCodes.XSC_REBOOT_1_1: - perform_reboot_cmd( + add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, @@ -314,27 +314,33 @@ def pack_obsw_update_cmd(action_id: int) -> PusTelecommand: ) -def perform_reboot_cmd( +def add_xsc_reboot_cmd( q: DefaultPusQueueHelper, reboot_self: bool, chip: Chip = Chip.NONE, copy: Copy = Copy.NONE, ): - tc_data = bytearray() if reboot_self: q.add_log_cmd("Packing reboot command for current image") + else: + q.add_log_cmd(f"Packing reboot command for chip {chip} and copy {copy}") + q.add_pus_tc(create_xsc_reboot_cmds(reboot_self, chip, copy)) + + +def create_xsc_reboot_cmds( + reboot_self: bool, + chip: Chip = Chip.NONE, + copy: Copy = Copy.NONE, +) -> PusTelecommand: + tc_data = bytearray() + if reboot_self: tc_data.append(True) else: tc_data.append(False) tc_data.append(chip) tc_data.append(copy) - q.add_log_cmd(f"Packing reboot command for chip {chip} and copy {copy}") - q.add_pus_tc( - make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.XSC_REBOOT, - user_data=tc_data, - ) + return make_fsfw_action_cmd( + object_id=CORE_CONTROLLER_ID, action_id=ActionIds.XSC_REBOOT, user_data=tc_data ) From 87607aa68161760c7dfa8933f47ffeb203dd7bdf Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 11 Jan 2023 14:28:45 +0100 Subject: [PATCH 04/34] small refactoring --- eive_tmtc/tmtc/core.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/eive_tmtc/tmtc/core.py b/eive_tmtc/tmtc/core.py index c0cadd4..de04050 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -152,11 +152,7 @@ def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): ) if op_code in OpCodes.REBOOT_FULL: q.add_log_cmd(f"Core Command: {Info.REBOOT_FULL}") - q.add_pus_tc( - make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, action_id=ActionIds.FULL_REBOOT - ) - ) + q.add_pus_tc(create_full_reboot_cmds()) if op_code in OpCodes.XSC_REBOOT_SELF: add_xsc_reboot_cmd(q=q, reboot_self=True) if op_code in OpCodes.XSC_REBOOT_0_0: @@ -271,6 +267,12 @@ def reset_specific_boot_counter(q: DefaultPusQueueHelper, chip: int, copy: int): ) +def create_full_reboot_cmds() -> PusTelecommand: + return make_fsfw_action_cmd( + object_id=CORE_CONTROLLER_ID, action_id=ActionIds.FULL_REBOOT + ) + + def determine_reboot_params() -> (bool, Chip, Copy): chip_select = -1 copy_select = -1 From a994e87f8aa4dcdf78f39e549f36d96d1c9d8ed7 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 08:57:27 +0100 Subject: [PATCH 05/34] update changelog --- CHANGELOG.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c62b2c..d57dceb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,9 +10,11 @@ list yields a list of all related PRs for each release. # [unreleased] -- Handle ACS CTRL HK sets -- Add reboot commands for PCDU modules -- Extend MPSoC commands +- Various refactoring and tweaks to allow easier integration + into `eive-mib`. +- Handle ACS CTRL HK sets. +- Add reboot commands for PCDU modules. +- Extend MPSoC commands. # [v2.0.2] 01.12.2022 From ecae444ee3f2dd324c172d4d8085146872464d47 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 14:11:30 +0100 Subject: [PATCH 06/34] some refactoring for PCDU cmds --- eive_tmtc/tmtc/power/common_power.py | 28 ++++--- eive_tmtc/tmtc/power/pdu1.py | 117 +++++++++++++++++++++++---- 2 files changed, 117 insertions(+), 28 deletions(-) diff --git a/eive_tmtc/tmtc/power/common_power.py b/eive_tmtc/tmtc/power/common_power.py index 224b7f9..4c44fe8 100644 --- a/eive_tmtc/tmtc/power/common_power.py +++ b/eive_tmtc/tmtc/power/common_power.py @@ -273,12 +273,14 @@ def generic_on_cmd( object_id: bytes, q: DefaultPusQueueHelper, info_str: str, out_idx: int ): q.add_log_cmd(info_str + " on") - q.add_pus_tc( - pack_set_u8_param_command( - object_id, - OUT_ENABLE_LIST[out_idx].parameter_address, - Channel.on, - ) + q.add_pus_tc(create_generic_on_cmd(object_id, out_idx)) + + +def create_generic_on_cmd(object_id: bytes, out_idx: int): + return pack_set_u8_param_command( + object_id, + OUT_ENABLE_LIST[out_idx].parameter_address, + Channel.on, ) @@ -286,12 +288,14 @@ def generic_off_cmd( object_id: bytes, q: DefaultPusQueueHelper, info_str: str, out_idx: int ): q.add_log_cmd(info_str + " off") - q.add_pus_tc( - pack_set_u8_param_command( - object_id, - OUT_ENABLE_LIST[out_idx].parameter_address, - Channel.off, - ) + q.add_pus_tc(create_generic_off_cmd(object_id, out_idx)) + + +def create_generic_off_cmd(object_id: bytes, out_idx: int): + return pack_set_u8_param_command( + object_id, + OUT_ENABLE_LIST[out_idx].parameter_address, + Channel.off, ) diff --git a/eive_tmtc/tmtc/power/pdu1.py b/eive_tmtc/tmtc/power/pdu1.py index 90cd142..0b3819e 100644 --- a/eive_tmtc/tmtc/power/pdu1.py +++ b/eive_tmtc/tmtc/power/pdu1.py @@ -12,6 +12,8 @@ from eive_tmtc.tmtc.power.common_power import ( generic_on_cmd, generic_off_cmd, add_gomspace_cmd_defs, + create_generic_on_cmd, + create_generic_off_cmd, pack_common_power_cmds, GomspaceOpCodes, GsInfo, @@ -173,65 +175,148 @@ def add_pdu1_cmds(defs: TmtcDefinitionWrapper): ) +PDU1_DICT = { + Pdu1ChIndex.TCS: Pdu1InfoBase.TCS, + Pdu1ChIndex.STR: Pdu1InfoBase.STR, + Pdu1ChIndex.SYRLINKS: Pdu1InfoBase.SYRLINKS, + Pdu1ChIndex.MGT: Pdu1InfoBase.MGT, + Pdu1ChIndex.SCEX: Pdu1InfoBase.SCEX, + Pdu1ChIndex.ACS_A: Pdu1InfoBase.ACS_A, + Pdu1ChIndex.SUS_N: Pdu1InfoBase.SUS_N, +} + + +def pdu1_on_cmd(idx: Pdu1ChIndex, q: DefaultPusQueueHelper): + generic_on_cmd(PDU_1_HANDLER_ID, q, PDU1_DICT[idx], idx) + + +def pdu1_off_cmd(idx: Pdu1ChIndex, q: DefaultPusQueueHelper): + generic_off_cmd(PDU_1_HANDLER_ID, q, PDU1_DICT[idx], idx) + + def tcs_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.TCS, Pdu1ChIndex.TCS) + pdu1_on_cmd(Pdu1ChIndex.TCS, q) + + +def create_tcs_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.TCS) def tcs_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.TCS, Pdu1ChIndex.TCS) + pdu1_off_cmd(Pdu1ChIndex.TCS, q) + + +def create_tcs_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.TCS) def syrlinks_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.SYRLINKS, Pdu1ChIndex.SYRLINKS) + pdu1_on_cmd(Pdu1ChIndex.SYRLINKS, q) + + +def create_syrlinks_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.SYRLINKS) def syrlinks_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.SYRLINKS, Pdu1ChIndex.SYRLINKS) + pdu1_off_cmd(Pdu1ChIndex.SYRLINKS, q) + + +def create_syrlinks_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.SYRLINKS) def startracker_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.STR, Pdu1ChIndex.STR) + pdu1_on_cmd(Pdu1ChIndex.STR, q) + + +def create_startracker_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.STR) def startracker_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.STR, Pdu1ChIndex.STR) + pdu1_on_cmd(Pdu1ChIndex.STR, q) + + +def create_startracker_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.STR) def mgt_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.MGT, Pdu1ChIndex.MGT) + pdu1_on_cmd(Pdu1ChIndex.MGT, q) + + +def create_mgt_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.MGT) def mgt_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.MGT, Pdu1ChIndex.MGT) + pdu1_off_cmd(Pdu1ChIndex.MGT, q) + + +def create_mgt_off_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.MGT) def sun_sensor_nominal_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.SUS_N, Pdu1ChIndex.SUS_N) + pdu1_on_cmd(Pdu1ChIndex.SUS_N, q) + + +def create_sun_sensor_nominal_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.SUS_N) def sun_sensor_nominal_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.SUS_N, Pdu1ChIndex.SUS_N) + pdu1_off_cmd(Pdu1ChIndex.SUS_N, q) + + +def create_sun_sensor_nominal_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.SUS_N) def solar_cell_experiment_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.SCEX, Pdu1ChIndex.SCEX) + pdu1_on_cmd(Pdu1ChIndex.SCEX, q) + + +def create_solar_cell_experiment_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.SCEX) def solar_cell_experiment_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.SCEX, Pdu1ChIndex.SCEX) + pdu1_off_cmd(Pdu1ChIndex.SCEX, q) + + +def create_solar_cell_experiment_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.SCEX) def ploc_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.PLOC, Pdu1ChIndex.PLOC) + pdu1_on_cmd(Pdu1ChIndex.PLOC, q) + + +def create_ploc_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.PLOC) def ploc_off_cmd(q: DefaultPusQueueHelper): - generic_off_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.PLOC, Pdu1ChIndex.PLOC) + pdu1_off_cmd(Pdu1ChIndex.PLOC, q) + + +def create_ploc_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.PLOC) def acs_board_a_on_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.ACS_A, Pdu1ChIndex.ACS_A) + pdu1_on_cmd(Pdu1ChIndex.ACS_A, q) + + +def create_acs_board_a_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.ACS_A) def acs_board_a_off_cmd(q: DefaultPusQueueHelper): - generic_on_cmd(PDU_1_HANDLER_ID, q, Pdu1InfoBase.ACS_A, Pdu1ChIndex.ACS_A) + pdu1_off_cmd(Pdu1ChIndex.ACS_A, q) + + +def create_acs_board_a_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_1_HANDLER_ID, Pdu1ChIndex.ACS_A) From 7c5f21e83cbd6456e1316285b73d0b34e8eedd83 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 14:18:18 +0100 Subject: [PATCH 07/34] that should be all required API --- eive_tmtc/tmtc/power/pdu2.py | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/eive_tmtc/tmtc/power/pdu2.py b/eive_tmtc/tmtc/power/pdu2.py index 6642ca4..f609809 100644 --- a/eive_tmtc/tmtc/power/pdu2.py +++ b/eive_tmtc/tmtc/power/pdu2.py @@ -15,6 +15,8 @@ from eive_tmtc.tmtc.power.common_power import ( generic_off_cmd, add_gomspace_cmd_defs, pack_common_power_cmds, + create_generic_on_cmd, + create_generic_off_cmd, SetIds, add_common_power_defs, ) @@ -257,61 +259,117 @@ def reaction_wheel_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.RW, Pdu2ChIndex.RW) +def create_reaction_wheel_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.RW) + + def reaction_wheel_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.RW, Pdu2ChIndex.RW) +def create_reaction_wheel_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.RW) + + def heater_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.HEATER, Pdu2ChIndex.HEATER) +def create_heater_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.HEATER) + + def heater_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.HEATER, Pdu2ChIndex.HEATER) +def create_heater_off_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.HEATER) + + def sus_red_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.SUS_R, Pdu2ChIndex.SUS_R) +def create_sus_red_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.SUS_R) + + def sus_red_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.SUS_R, Pdu2ChIndex.SUS_R) +def create_sus_red_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.SUS_R) + + def solar_array_deployment_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd( PDU_2_HANDLER_ID, q, Pdu2InfoBase.SOLAR_ARRAY_DEPL, Pdu2ChIndex.SOLAR_ARRAY_DEPL ) +def create_solar_array_deployment_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.SOLAR_ARRAY_DEPL) + + def solar_array_deployment_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd( PDU_2_HANDLER_ID, q, Pdu2InfoBase.SOLAR_ARRAY_DEPL, Pdu2ChIndex.SOLAR_ARRAY_DEPL ) +def create_solar_array_deployment_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.SOLAR_ARRAY_DEPL) + + def pl_pcdu_bat_red_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd( PDU_2_HANDLER_ID, q, Pdu2InfoBase.PL_PCDU_BAT_RED, Pdu2ChIndex.PL_PCDU_BAT_RED ) +def create_pl_pcdu_bat_red_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.PL_PCDU_BAT_RED) + + def pl_pcdu_bat_red_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd( PDU_2_HANDLER_ID, q, Pdu2InfoBase.PL_PCDU_BAT_RED, Pdu2ChIndex.PL_PCDU_BAT_RED ) +def create_pl_pcdu_bat_red_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.PL_PCDU_BAT_RED) + + def acs_board_b_side_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.ACS_B, Pdu2ChIndex.ACS_B) +def create_acs_board_b_side_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.ACS_B) + + def acs_board_b_side_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.ACS_B, Pdu2ChIndex.ACS_B) +def create_acs_board_b_side_off_cmd() -> PusTelecommand: + return create_generic_off_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.ACS_B) + + def payload_camera_on_cmd(q: DefaultPusQueueHelper): generic_on_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.PL_CAM, Pdu2ChIndex.PL_CAM) +def create_payload_camera_on_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.PL_CAM) + + def payload_camera_off_cmd(q: DefaultPusQueueHelper): generic_off_cmd(PDU_2_HANDLER_ID, q, Pdu2InfoBase.PL_CAM, Pdu2ChIndex.PL_CAM) + + +def create_payload_camera_off_cmd() -> PusTelecommand: + return create_generic_on_cmd(PDU_2_HANDLER_ID, Pdu2ChIndex.PL_CAM) From b018784a116c8513adfd6db17de2dbf45503b977 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 14:19:08 +0100 Subject: [PATCH 08/34] use v4.0.0 alpha release --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 95ea4ee..1d43973 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,7 @@ classifiers = [options] install_requires = - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v3.0.0 + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a0 packages = find: python_requires = >=3.8 include_package_data = True From 5f3180dbc88cf212a291e8b901c30fe2ae0cdfec Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 15:48:49 +0100 Subject: [PATCH 09/34] bump tmtccmd --- eive_tmtc/pus_tc/system/proc.py | 2 +- eive_tmtc/tmtc/power/acu.py | 4 ++-- eive_tmtc/tmtc/power/common_power.py | 6 +++--- eive_tmtc/tmtc/power/p60dock.py | 4 ++-- eive_tmtc/tmtc/power/pdu1.py | 4 ++-- eive_tmtc/tmtc/power/pdu2.py | 4 ++-- eive_tmtc/tmtc/power/tm.py | 14 +++++++------- setup.cfg | 2 +- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eive_tmtc/pus_tc/system/proc.py b/eive_tmtc/pus_tc/system/proc.py index f4096c0..f23f0aa 100644 --- a/eive_tmtc/pus_tc/system/proc.py +++ b/eive_tmtc/pus_tc/system/proc.py @@ -22,7 +22,7 @@ import eive_tmtc.config.object_ids as oids from eive_tmtc.pus_tc.system.tcs import OpCodes as TcsOpCodes from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetIds from eive_tmtc.tmtc.core import SetIds as CoreSetIds -from eive_tmtc.tmtc.power.common_power import SetIds as GsSetIds +from eive_tmtc.tmtc.power.common_power import SetId as GsSetIds from eive_tmtc.pus_tc.devs.rad_sensor import SetIds as RadSetIds from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetIds as MgmLis3SetIds_0_2 from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetIds as MgmRm3100SetIds_1_3 diff --git a/eive_tmtc/tmtc/power/acu.py b/eive_tmtc/tmtc/power/acu.py index aee4ea0..f3fa182 100644 --- a/eive_tmtc/tmtc/power/acu.py +++ b/eive_tmtc/tmtc/power/acu.py @@ -12,7 +12,7 @@ from eive_tmtc.tmtc.power.common_power import ( add_gomspace_cmd_defs, req_hk_cmds, pack_common_power_cmds, - SetIds, + SetId, OBC_ENDIANNESS, unpack_array_in_data, ) @@ -72,7 +72,7 @@ def pack_acu_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: def acu_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("ACU", q, op_code, ACU_HANDLER_ID, [SetIds.CORE, SetIds.AUX]) + req_hk_cmds("ACU", q, op_code, ACU_HANDLER_ID, [SetId.CORE, SetId.AUX]) class ACUTestProcedure: diff --git a/eive_tmtc/tmtc/power/common_power.py b/eive_tmtc/tmtc/power/common_power.py index 4c44fe8..87da55a 100644 --- a/eive_tmtc/tmtc/power/common_power.py +++ b/eive_tmtc/tmtc/power/common_power.py @@ -113,7 +113,7 @@ class PowerOpCodes: PRINT_LATCHUPS = ["print_latchups"] -class SetIds: +class SetId: CORE = 1 AUX = 2 CONFIG = 3 @@ -127,13 +127,13 @@ def pack_common_power_cmds( interval = float(input("Specify HK interval in floating point seconds: ")) q.add_log_cmd(f"{prefix}: {PowerInfo.ENABLE_INFO_HK} with interval {interval}") cmds = enable_periodic_hk_command_with_interval( - True, make_sid(objb, SetIds.CORE), interval + True, make_sid(objb, SetId.CORE), interval ) for cmd in cmds: q.add_pus_tc(cmd) if op_code in PowerOpCodes.DISABLE_INFO_HK: q.add_log_cmd(f"{prefix}: {PowerInfo.DISABLE_INFO_HK}") - q.add_pus_tc(disable_periodic_hk_command(True, make_sid(objb, SetIds.CORE))) + q.add_pus_tc(disable_periodic_hk_command(True, make_sid(objb, SetId.CORE))) def pack_common_gomspace_cmds( diff --git a/eive_tmtc/tmtc/power/p60dock.py b/eive_tmtc/tmtc/power/p60dock.py index 34b1914..0f92baf 100644 --- a/eive_tmtc/tmtc/power/p60dock.py +++ b/eive_tmtc/tmtc/power/p60dock.py @@ -9,7 +9,7 @@ from eive_tmtc.tmtc.power.common_power import ( pack_common_gomspace_cmds, req_hk_cmds, pack_common_power_cmds, - SetIds, + SetId, ) from tmtccmd.tc import DefaultPusQueueHelper from eive_tmtc.gomspace.gomspace_common import ( @@ -238,4 +238,4 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: def p60_dock_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("P60 Dock", q, op_code, P60_DOCK_HANDLER, [SetIds.CORE, SetIds.AUX]) + req_hk_cmds("P60 Dock", q, op_code, P60_DOCK_HANDLER, [SetId.CORE, SetId.AUX]) diff --git a/eive_tmtc/tmtc/power/pdu1.py b/eive_tmtc/tmtc/power/pdu1.py index 0b3819e..5fbf0a3 100644 --- a/eive_tmtc/tmtc/power/pdu1.py +++ b/eive_tmtc/tmtc/power/pdu1.py @@ -19,7 +19,7 @@ from eive_tmtc.tmtc.power.common_power import ( GsInfo, PowerInfo, add_common_power_defs, - SetIds, + SetId, ) from eive_tmtc.gomspace.gomspace_common import * @@ -91,7 +91,7 @@ def pack_pdu1_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code def pdu1_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("PDU1", q, op_code, PDU_1_HANDLER_ID, [SetIds.CORE, SetIds.AUX]) + req_hk_cmds("PDU1", q, op_code, PDU_1_HANDLER_ID, [SetId.CORE, SetId.AUX]) def info_on_pdu1(base: str) -> str: diff --git a/eive_tmtc/tmtc/power/pdu2.py b/eive_tmtc/tmtc/power/pdu2.py index f609809..4684e97 100644 --- a/eive_tmtc/tmtc/power/pdu2.py +++ b/eive_tmtc/tmtc/power/pdu2.py @@ -17,7 +17,7 @@ from eive_tmtc.tmtc.power.common_power import ( pack_common_power_cmds, create_generic_on_cmd, create_generic_off_cmd, - SetIds, + SetId, add_common_power_defs, ) from eive_tmtc.gomspace.gomspace_common import * @@ -240,7 +240,7 @@ def add_pdu2_common_defs(oce: OpCodeEntry): def pdu2_req_hk_cmds(q: DefaultPusQueueHelper, op_code: str): - req_hk_cmds("PDU2", q, op_code, PDU_2_HANDLER_ID, [SetIds.CORE, SetIds.AUX]) + req_hk_cmds("PDU2", q, op_code, PDU_2_HANDLER_ID, [SetId.CORE, SetId.AUX]) def pl_pcdu_bat_nom_on_cmd(q: DefaultPusQueueHelper): diff --git a/eive_tmtc/tmtc/power/tm.py b/eive_tmtc/tmtc/power/tm.py index f1cf1dc..73d2a26 100644 --- a/eive_tmtc/tmtc/power/tm.py +++ b/eive_tmtc/tmtc/power/tm.py @@ -3,7 +3,7 @@ from typing import List, Tuple from eive_tmtc.tmtc.power.acu import acu_config_table_handler from eive_tmtc.tmtc.power.common_power import ( - SetIds, + SetId, unpack_array_in_data, OBC_ENDIANNESS, ) @@ -151,7 +151,7 @@ def handle_pdu_data( pw = PrintWrapper(printer=printer) current_idx = 0 priv_idx = pdu_idx - 1 - if set_id == SetIds.AUX or set_id == SetIds.AUX: + if set_id == SetId.AUX or set_id == SetId.AUX: fmt_str = "!hhBBBIIH" inc_len = struct.calcsize(fmt_str) ( @@ -188,7 +188,7 @@ def handle_pdu_data( wdt.print() pw.dlog(f"PDU Device Types: 0:FRAM|1:ADC|2:ADC|3:TempSens|4,5,6,7:Reserved") dev_parser.print(pw=pw) - if set_id == SetIds.CORE or set_id == SetIds.CORE: + if set_id == SetId.CORE or set_id == SetId.CORE: pw.dlog(f"Received PDU HK from PDU {pdu_idx}") current_list = [] for idx in range(len(PDU1_CHANNELS_NAMES)): @@ -229,7 +229,7 @@ def handle_pdu_data( def handle_p60_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): pw = PrintWrapper(printer=printer) - if set_id == SetIds.CORE: + if set_id == SetId.CORE: pw.dlog("Received P60 Core HK. Voltages in mV, currents in mA") current_idx = 0 current_list = [] @@ -276,7 +276,7 @@ def handle_p60_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): pw.dlog(temps) pw.dlog(batt_info) printer.print_validity_buffer(validity_buffer=hk_data[current_idx:], num_vars=9) - if set_id == SetIds.AUX: + if set_id == SetId.AUX: pw.dlog("Received P60 AUX HK. Voltages in mV, currents in mA") current_idx = 0 latchup_list = [] @@ -355,7 +355,7 @@ def gen_six_entry_u16_list(hk_data: bytes, current_idx: int) -> Tuple[int, List[ def handle_acu_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): pw = PrintWrapper(printer=printer) - if set_id == SetIds.CORE: + if set_id == SetId.CORE: mppt_mode = hk_data[0] current_idx = 1 current_idx, currents = gen_six_entry_u16_list( @@ -399,7 +399,7 @@ def handle_acu_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): printer.print_validity_buffer( validity_buffer=hk_data[current_idx:], num_vars=12 ) - if set_id == SetIds.AUX: + if set_id == SetId.AUX: current_idx = 0 fmt_str = "!BBB" inc_len = struct.calcsize(fmt_str) diff --git a/setup.cfg b/setup.cfg index 1d43973..64aee05 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,7 @@ classifiers = [options] install_requires = - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a0 + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main#egg=tmtccmd packages = find: python_requires = >=3.8 include_package_data = True From 1be338b27297d2db287cc2402b2df9928678382c Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 16:17:14 +0100 Subject: [PATCH 10/34] bump eive-tmtc to v2.1.0 --- eive_tmtc/__init__.py | 6 +++--- setup.cfg | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eive_tmtc/__init__.py b/eive_tmtc/__init__.py index ababc6f..379a947 100644 --- a/eive_tmtc/__init__.py +++ b/eive_tmtc/__init__.py @@ -2,10 +2,10 @@ from pathlib import Path SW_NAME = "eive-tmtc" VERSION_MAJOR = 2 -VERSION_MINOR = 0 -VERSION_REVISION = 2 +VERSION_MINOR = 1 +VERSION_REVISION = 0 -__version__ = "2.0.2" +__version__ = "2.1.0" EIVE_TMTC_ROOT = Path(__file__).parent PACKAGE_ROOT = EIVE_TMTC_ROOT.parent diff --git a/setup.cfg b/setup.cfg index 64aee05..358d63f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,7 @@ classifiers = [options] install_requires = - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@4.0.0a1 packages = find: python_requires = >=3.8 include_package_data = True From bb66d15d1f2ab1d9af7aff4e1b1c74398b7cb4ed Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 16:19:14 +0100 Subject: [PATCH 11/34] bump changelog --- CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d57dceb..a78c579 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,13 +8,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). The [milestone](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones) list yields a list of all related PRs for each release. -# [unreleased] +# [v2.1.0] 12.01.2023 -- Various refactoring and tweaks to allow easier integration - into `eive-mib`. +- Various refactoring and tweaks to allow easier integration into `eive-mib`. - Handle ACS CTRL HK sets. - Add reboot commands for PCDU modules. - Extend MPSoC commands. +- Starting from now, more regular releases, especially on breaking changes. This is because + this is now also a library with dependents. # [v2.0.2] 01.12.2022 From 0390995773cfb37a5b60ff1bb6306a6e742ca856 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 16:21:47 +0100 Subject: [PATCH 12/34] small changelog bump --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a78c579..f695dc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). The [milestone](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones) list yields a list of all related PRs for each release. +# [unreleased] + # [v2.1.0] 12.01.2023 - Various refactoring and tweaks to allow easier integration into `eive-mib`. From 677a0d70cc4fe35fa6e977cf9f37a697e5542915 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 17:11:16 +0100 Subject: [PATCH 13/34] well this is annoying --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 358d63f..071ebb7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,7 @@ classifiers = [options] install_requires = - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@4.0.0a1 + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 packages = find: python_requires = >=3.8 include_package_data = True From d652c4663b6e738345799026a16d6d2f00d7e65d Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 12 Jan 2023 17:12:16 +0100 Subject: [PATCH 14/34] and a new patch release --- CHANGELOG.md | 4 +++- eive_tmtc/__init__.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f695dc4..94615a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). The [milestone](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones) list yields a list of all related PRs for each release. -# [unreleased] +# [v2.1.1] 12.01.2023 + +- Typo in `setup.cfg`, missing version prefix `v` for `tmtccmd` # [v2.1.0] 12.01.2023 diff --git a/eive_tmtc/__init__.py b/eive_tmtc/__init__.py index 379a947..c776e3f 100644 --- a/eive_tmtc/__init__.py +++ b/eive_tmtc/__init__.py @@ -3,9 +3,9 @@ from pathlib import Path SW_NAME = "eive-tmtc" VERSION_MAJOR = 2 VERSION_MINOR = 1 -VERSION_REVISION = 0 +VERSION_REVISION = 1 -__version__ = "2.1.0" +__version__ = "2.1.1" EIVE_TMTC_ROOT = Path(__file__).parent PACKAGE_ROOT = EIVE_TMTC_ROOT.parent From d29464991652ba6bc6bf285d7182cf95c5a8369c Mon Sep 17 00:00:00 2001 From: Marius Eggert Date: Mon, 16 Jan 2023 09:46:52 +0100 Subject: [PATCH 15/34] corrected sizes and added missing validity flags --- eive_tmtc/tmtc/acs/acs_ctrl.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index e532b27..13c9988 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -403,10 +403,10 @@ def handle_acs_ctrl_sus_raw_data(pw: PrintWrapper, hk_data: bytes): def handle_acs_ctrl_sus_processed_data(pw: PrintWrapper, hk_data: bytes): - if len(hk_data) < 3 * 4 * 12: + if len(hk_data) < 3 * 4 * 12 + 3 * 8 * 3: pw.dlog( - f"SUS Raw dataset with size {len(hk_data)} does not have expected size" - f" of {3 * 4 * 12} bytes" + f"SUS Processed dataset with size {len(hk_data)} does not have expected size" + f" of {3 * 4 * 12 + 3 * 8 * 3} bytes" ) return current_idx = 0 @@ -437,7 +437,7 @@ def handle_acs_ctrl_sus_processed_data(pw: PrintWrapper, hk_data: bytes): sun_ijk_model = [f"{val:8.3f}" for val in {sun_ijk_model}] current_idx += inc_len pw.dlog(f"SUS ijk Model: {sun_ijk_model}") - pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=12) + pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=15) def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes): @@ -478,8 +478,8 @@ def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes): float_str_fmt = "[{:8.3f}, {:8.3f}, {:8.3f}]" for mgm_entry in mgm_lists[0:4]: formatted_list.append(float_str_fmt.format(*mgm_entry)) - formatted_list.append(hk_data[current_idx]) formatted_list.append(float_str_fmt.format(*mgm_lists[4])) + formatted_list.append(hk_data[current_idx]) print_str_list = [ "ACS Board MGM 0 LIS3MDL", "ACS Board MGM 1 RM3100", @@ -494,6 +494,7 @@ def handle_raw_mgm_data(pw: PrintWrapper, hk_data: bytes): 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) def handle_mgm_data_processed(pw: PrintWrapper, hk_data: bytes): @@ -588,6 +589,7 @@ def handle_gyr_data_processed(pw: PrintWrapper, hk_data: bytes): ] pw.dlog(f"GYR Vec Total: {gyr_vec_tot}") current_idx += inc_len + pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=5) def handle_gps_data_processed(pw: PrintWrapper, hk_data: bytes): @@ -623,6 +625,7 @@ def handle_gps_data_processed(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"GPS Latitude: {lat} [rad]") pw.dlog(f"GPS Longitude: {long} [rad]") pw.dlog(f"GPS Velocity: {velo} [m/s]") + pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=3) def handle_mekf_data(pw: PrintWrapper, hk_data: bytes): @@ -650,6 +653,7 @@ def handle_mekf_data(pw: PrintWrapper, hk_data: bytes): ] pw.dlog(f"MEKF Quaternion: {quat}") pw.dlog(f"MEKF Rotational Rate: {rate}") + pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=2) def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes): @@ -685,6 +689,7 @@ def handle_ctrl_val_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Control Values Target Quaternion: {tgt_quat}") pw.dlog(f"Control Values Error Quaternion: {err_quat}") pw.dlog(f"Control Values Error Angle: {err_ang} [rad]") + pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=3) def handle_act_cmd_data(pw: PrintWrapper, hk_data: bytes): @@ -722,6 +727,7 @@ def handle_act_cmd_data(pw: PrintWrapper, hk_data: bytes): pw.dlog(f"Actuator Commands RW Target Torque: {rw_tgt_torque}") pw.dlog(f"Actuator Commands RW Target Speed: {rw_tgt_speed}") pw.dlog(f"Actuator Commands MTQ Target Dipole: {mtq_tgt_dipole}") + pw.printer.print_validity_buffer(hk_data[current_idx:], num_vars=3) def perform_mgm_calibration(pw: PrintWrapper, mgm_tuple: Tuple): From 0e9f7e64446bf84accadb51f3f99ec8f7959abc5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 13:22:41 +0100 Subject: [PATCH 16/34] small renaming --- eive_tmtc/tmtc/acs/acs_ctrl.py | 84 +++++++++++++++++----------------- 1 file changed, 41 insertions(+), 43 deletions(-) diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index 13c9988..70fb8d2 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -28,7 +28,7 @@ from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter LOGGER = get_console_logger() -class SetIds(enum.IntEnum): +class SetId(enum.IntEnum): MGM_RAW_SET = 0 MGM_PROC_SET = 1 SUS_RAW_SET = 2 @@ -164,12 +164,12 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): if op_code in OpCodes.REQUEST_RAW_MGM_HK: q.add_log_cmd(Info.REQUEST_RAW_MGM_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.MGM_RAW_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.MGM_RAW_SET)) ) elif op_code in OpCodes.ENABLE_RAW_MGM_HK: q.add_log_cmd(Info.ENABLE_RAW_MGM_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.MGM_RAW_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.MGM_RAW_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -177,18 +177,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_RAW_MGM_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.MGM_RAW_SET) + False, make_sid(ACS_CONTROLLER, SetId.MGM_RAW_SET) ) ) elif op_code in OpCodes.REQUEST_PROC_MGM_HK: q.add_log_cmd(Info.REQUEST_PROC_MGM_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.MGM_PROC_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.MGM_PROC_SET)) ) elif op_code in OpCodes.ENABLE_PROC_MGM_HK: q.add_log_cmd(Info.ENABLE_PROC_MGM_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.MGM_PROC_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.MGM_PROC_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -196,18 +196,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_PROC_MGM_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.MGM_PROC_SET) + False, make_sid(ACS_CONTROLLER, SetId.MGM_PROC_SET) ) ) elif op_code in OpCodes.REQUEST_RAW_SUS_HK: q.add_log_cmd(Info.REQUEST_RAW_SUS_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.SUS_RAW_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.SUS_RAW_SET)) ) elif op_code in OpCodes.ENABLE_RAW_SUS_HK: q.add_log_cmd(Info.ENABLE_RAW_SUS_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.SUS_RAW_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.SUS_RAW_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -215,18 +215,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_RAW_SUS_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.SUS_RAW_SET) + False, make_sid(ACS_CONTROLLER, SetId.SUS_RAW_SET) ) ) elif op_code in OpCodes.REQUEST_PROC_SUS_HK: q.add_log_cmd(Info.REQUEST_PROC_SUS_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.SUS_PROC_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.SUS_PROC_SET)) ) elif op_code in OpCodes.ENABLE_PROC_SUS_HK: q.add_log_cmd(Info.ENABLE_PROC_SUS_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.SUS_PROC_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.SUS_PROC_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -234,18 +234,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_PROC_SUS_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.SUS_PROC_SET) + False, make_sid(ACS_CONTROLLER, SetId.SUS_PROC_SET) ) ) elif op_code in OpCodes.REQUEST_RAW_GYR_HK: q.add_log_cmd(Info.REQUEST_RAW_GYR_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.GYR_RAW_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.GYR_RAW_SET)) ) elif op_code in OpCodes.ENABLE_RAW_GYR_HK: q.add_log_cmd(Info.ENABLE_RAW_GYR_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.GYR_RAW_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.GYR_RAW_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -253,18 +253,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_RAW_GYR_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.GYR_RAW_SET) + False, make_sid(ACS_CONTROLLER, SetId.GYR_RAW_SET) ) ) elif op_code in OpCodes.REQUEST_PROC_GYR_HK: q.add_log_cmd(Info.REQUEST_PROC_GYR_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.GYR_PROC_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.GYR_PROC_SET)) ) elif op_code in OpCodes.ENABLE_PROC_GYR_HK: q.add_log_cmd(Info.ENABLE_PROC_GYR_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.GYR_PROC_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.GYR_PROC_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -272,18 +272,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_PROC_GYR_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.GYR_PROC_SET) + False, make_sid(ACS_CONTROLLER, SetId.GYR_PROC_SET) ) ) elif op_code in OpCodes.REQUEST_PROC_GPS_HK: q.add_log_cmd(Info.REQUEST_PROC_GPS_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.GPS_PROC_SET)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.GPS_PROC_SET)) ) elif op_code in OpCodes.ENABLE_PROC_GPS_HK: q.add_log_cmd(Info.ENABLE_PROC_GPS_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.GPS_PROC_SET), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.GPS_PROC_SET), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -291,18 +291,16 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_PROC_GPS_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.GPS_PROC_SET) + False, make_sid(ACS_CONTROLLER, SetId.GPS_PROC_SET) ) ) elif op_code in OpCodes.REQUEST_MEKF_HK: q.add_log_cmd(Info.REQUEST_MEKF_HK) - q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.MEKF_DATA)) - ) + q.add_pus_tc(generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.MEKF_DATA))) elif op_code in OpCodes.ENABLE_MEKF_HK: q.add_log_cmd(Info.ENABLE_MEKF_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.MEKF_DATA), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.MEKF_DATA), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -310,18 +308,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_MEKF_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.MEKF_DATA) + False, make_sid(ACS_CONTROLLER, SetId.MEKF_DATA) ) ) elif op_code in OpCodes.REQUEST_CTRL_VAL_HK: q.add_log_cmd(Info.REQUEST_CTRL_VAL_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.CTRL_VAL_DATA)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.CTRL_VAL_DATA)) ) elif op_code in OpCodes.ENABLE_CTRL_VAL_HK: q.add_log_cmd(Info.ENABLE_CTRL_VAL_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.CTRL_VAL_DATA), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.CTRL_VAL_DATA), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -329,18 +327,18 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_CTRL_VAL_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.CTRL_VAL_DATA) + False, make_sid(ACS_CONTROLLER, SetId.CTRL_VAL_DATA) ) ) elif op_code in OpCodes.REQUEST_ACT_CMD_HK: q.add_log_cmd(Info.REQUEST_ACT_CMD_HK) q.add_pus_tc( - generate_one_hk_command(make_sid(ACS_CONTROLLER, SetIds.ACTUATOR_CMD_DATA)) + generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.ACTUATOR_CMD_DATA)) ) elif op_code in OpCodes.ENABLE_ACT_CMD_HK: q.add_log_cmd(Info.ENABLE_ACT_CMD_HK) cmd_tuple = enable_periodic_hk_command_with_interval( - False, make_sid(ACS_CONTROLLER, SetIds.ACTUATOR_CMD_DATA), 2.0 + False, make_sid(ACS_CONTROLLER, SetId.ACTUATOR_CMD_DATA), 2.0 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) @@ -348,7 +346,7 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): q.add_log_cmd(Info.DISABLE_ACT_CMD_HK) q.add_pus_tc( disable_periodic_hk_command( - False, make_sid(ACS_CONTROLLER, SetIds.ACTUATOR_CMD_DATA) + False, make_sid(ACS_CONTROLLER, SetId.ACTUATOR_CMD_DATA) ) ) else: @@ -358,25 +356,25 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): def handle_acs_ctrl_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): pw = PrintWrapper(printer) match set_id: - case SetIds.MGM_RAW_SET: + case SetId.MGM_RAW_SET: handle_raw_mgm_data(pw, hk_data) - case SetIds.MGM_PROC_SET: + case SetId.MGM_PROC_SET: handle_mgm_data_processed(pw, hk_data) - case SetIds.SUS_RAW_SET: + case SetId.SUS_RAW_SET: handle_acs_ctrl_sus_raw_data(pw, hk_data) - case SetIds.SUS_PROC_SET: + case SetId.SUS_PROC_SET: handle_acs_ctrl_sus_processed_data(pw, hk_data) - case SetIds.GYR_RAW_SET: + case SetId.GYR_RAW_SET: handle_gyr_data_raw(pw, hk_data) - case SetIds.GYR_PROC_SET: + case SetId.GYR_PROC_SET: handle_gyr_data_processed(pw, hk_data) - case SetIds.GPS_PROC_SET: + case SetId.GPS_PROC_SET: handle_gps_data_processed(pw, hk_data) - case SetIds.MEKF_DATA: + case SetId.MEKF_DATA: handle_mekf_data(pw, hk_data) - case SetIds.CTRL_VAL_DATA: + case SetId.CTRL_VAL_DATA: handle_ctrl_val_data(pw, hk_data) - case SetIds.ACTUATOR_CMD_DATA: + case SetId.ACTUATOR_CMD_DATA: handle_act_cmd_data(pw, hk_data) From 87f5bf83d12d1be984d7b63e1391519cef786cda Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:06:07 +0100 Subject: [PATCH 17/34] bump required python version --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 071ebb7..55ce2d5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,7 @@ classifiers = install_requires = tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 packages = find: -python_requires = >=3.8 +python_requires = >=3.10 include_package_data = True [options.extras_require] From e7609f02b9df358516189299584ba9b6f6d2d685 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:13:06 +0100 Subject: [PATCH 18/34] consistency change for enum names --- eive_tmtc/pus_tc/cmd_definitions.py | 8 +- eive_tmtc/pus_tc/devs/bpx_batt.py | 46 +++--- eive_tmtc/pus_tc/devs/gps.py | 14 +- eive_tmtc/pus_tc/devs/gyros.py | 4 +- eive_tmtc/pus_tc/devs/heater.py | 22 +-- eive_tmtc/pus_tc/devs/mgms.py | 4 +- eive_tmtc/pus_tc/devs/pdec_handler.py | 6 +- eive_tmtc/pus_tc/devs/plpcdu.py | 70 ++++---- eive_tmtc/pus_tc/devs/rad_sensor.py | 38 +++-- eive_tmtc/pus_tc/devs/rtd.py | 20 +-- eive_tmtc/pus_tc/devs/scex.py | 56 ++++--- eive_tmtc/pus_tc/devs/star_tracker.py | 129 +++++++-------- eive_tmtc/pus_tc/devs/sus.py | 2 +- eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py | 80 +++++----- eive_tmtc/pus_tc/devs/tmp1075.py | 6 +- eive_tmtc/pus_tc/system/controllers.py | 6 +- eive_tmtc/pus_tc/system/proc.py | 160 +++++++++---------- eive_tmtc/pus_tc/system/tcs.py | 18 +-- eive_tmtc/pus_tc/system/time.py | 2 +- eive_tmtc/pus_tm/action_reply_handler.py | 14 +- eive_tmtc/pus_tm/devs/bpx_bat.py | 6 +- eive_tmtc/pus_tm/devs/gyros.py | 8 +- eive_tmtc/pus_tm/devs/mgms.py | 6 +- eive_tmtc/pus_tm/devs/plpcdu.py | 4 +- eive_tmtc/pus_tm/devs/rad_sensor.py | 4 +- eive_tmtc/pus_tm/devs/sus.py | 4 +- eive_tmtc/pus_tm/devs/syrlinks.py | 6 +- eive_tmtc/pus_tm/event_handler.py | 10 +- eive_tmtc/pus_tm/hk_handling.py | 12 +- eive_tmtc/pus_tm/system/tcs.py | 8 +- eive_tmtc/tmtc/acs/acs_board.py | 14 +- eive_tmtc/tmtc/acs/acs_subsystem.py | 22 +-- eive_tmtc/tmtc/acs/imtq.py | 72 ++++----- eive_tmtc/tmtc/acs/reaction_wheels.py | 72 ++++----- eive_tmtc/tmtc/acs/sus_board.py | 26 +-- eive_tmtc/tmtc/payload/pl_subsystem.py | 12 +- eive_tmtc/tmtc/payload/ploc_memory_dumper.py | 4 +- eive_tmtc/tmtc/payload/ploc_mpsoc.py | 74 ++++----- eive_tmtc/tmtc/payload/ploc_supervisor.py | 88 +++++----- eive_tmtc/tmtc/power/acu.py | 4 +- eive_tmtc/tmtc/power/common_power.py | 32 ++-- eive_tmtc/tmtc/power/p60dock.py | 10 +- eive_tmtc/tmtc/power/pdu1.py | 4 +- eive_tmtc/tmtc/power/power.py | 12 +- 44 files changed, 605 insertions(+), 614 deletions(-) diff --git a/eive_tmtc/pus_tc/cmd_definitions.py b/eive_tmtc/pus_tc/cmd_definitions.py index 9927108..dbb7d35 100644 --- a/eive_tmtc/pus_tc/cmd_definitions.py +++ b/eive_tmtc/pus_tc/cmd_definitions.py @@ -121,11 +121,11 @@ def add_str_cmds(defs: TmtcDefinitionWrapper): @tmtc_definitions_provider def add_time_cmds(defs: TmtcDefinitionWrapper): - from eive_tmtc.pus_tc.system.time import OpCodes, Info + from eive_tmtc.pus_tc.system.time import OpCode, Info oce = OpCodeEntry() oce.add( - keys=OpCodes.SET_CURRENT_TIME, + keys=OpCode.SET_CURRENT_TIME, info=Info.SET_CURRENT_TIME, ) defs.add_service( @@ -141,11 +141,11 @@ def add_system_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() oce.add( - keys=controllers.OpCodes.THERMAL_CONTROLLER, + keys=controllers.OpCode.THERMAL_CONTROLLER, info=controllers.Info.THERMAL_CONTROLLER, ) oce.add( - keys=controllers.OpCodes.CORE_CONTROLLER, + keys=controllers.OpCode.CORE_CONTROLLER, info=controllers.Info.CORE_CONTROLLER, ) defs.add_service( diff --git a/eive_tmtc/pus_tc/devs/bpx_batt.py b/eive_tmtc/pus_tc/devs/bpx_batt.py index 8599571..2258021 100644 --- a/eive_tmtc/pus_tc/devs/bpx_batt.py +++ b/eive_tmtc/pus_tc/devs/bpx_batt.py @@ -15,19 +15,19 @@ from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices -class BpxSetIds: +class BpxSetId: GET_HK_SET = 0 GET_CFG_SET = 5 -class BpxActionIds: +class BpxActionId: REBOOT = 2 RESET_COUNTERS = 3 SET_CFG = 4 GET_CFG = 5 -class BpxOpCodes: +class BpxOpCode: HK = ["0", "hk"] OFF = ["off"] ON = ["on"] @@ -40,15 +40,15 @@ class BpxOpCodes: @tmtc_definitions_provider def add_bpx_cmd_definitions(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=BpxOpCodes.ON, info="On command") - oce.add(keys=BpxOpCodes.OFF, info="Off command") - oce.add(keys=BpxOpCodes.HK, info="Request BPX HK") - oce.add(keys=BpxOpCodes.RST_BOOT_CNT, info="Reset Boot Count") - oce.add(keys=BpxOpCodes.REQUEST_CFG, info="Request Configuration Struct (Step 1)") + oce.add(keys=BpxOpCode.ON, info="On command") + oce.add(keys=BpxOpCode.OFF, info="Off command") + oce.add(keys=BpxOpCode.HK, info="Request BPX HK") + oce.add(keys=BpxOpCode.RST_BOOT_CNT, info="Reset Boot Count") + oce.add(keys=BpxOpCode.REQUEST_CFG, info="Request Configuration Struct (Step 1)") oce.add( - keys=BpxOpCodes.REQUEST_CFG_HK, info="Request Configuration Struct HK (Step 2)" + keys=BpxOpCode.REQUEST_CFG_HK, info="Request Configuration Struct HK (Step 2)" ) - oce.add(keys=BpxOpCodes.REBOOT, info="Reboot Command") + oce.add(keys=BpxOpCode.REBOOT, info="Reboot Command") defs.add_service( name=CustomServiceList.BPX_BATTERY.value, info="BPX Battery Handler", @@ -60,11 +60,11 @@ def add_bpx_cmd_definitions(defs: TmtcDefinitionWrapper): def pack_bpx_commands(p: ServiceProviderParams): op_code = p.op_code q = p.queue_helper - if op_code in BpxOpCodes.HK: + if op_code in BpxOpCode.HK: q.add_log_cmd("Requesting BPX battery HK set") - sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetIds.GET_HK_SET) + sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetId.GET_HK_SET) q.add_pus_tc(generate_one_hk_command(sid=sid)) - if op_code in BpxOpCodes.OFF: + if op_code in BpxOpCode.OFF: q.add_log_cmd("Off mode") mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.OFF, 0) q.add_pus_tc( @@ -74,7 +74,7 @@ def pack_bpx_commands(p: ServiceProviderParams): app_data=mode_cmd, ) ) - if op_code in BpxOpCodes.ON: + if op_code in BpxOpCode.ON: q.add_log_cmd("On mode") mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.ON, 0) q.add_pus_tc( @@ -84,28 +84,26 @@ def pack_bpx_commands(p: ServiceProviderParams): app_data=mode_cmd, ) ) - if op_code in BpxOpCodes.RST_BOOT_CNT: + if op_code in BpxOpCode.RST_BOOT_CNT: q.add_log_cmd("Resetting reboot counters") q.add_pus_tc( make_fsfw_action_cmd( - object_id=BPX_HANDLER_ID, action_id=BpxActionIds.RESET_COUNTERS + object_id=BPX_HANDLER_ID, action_id=BpxActionId.RESET_COUNTERS ) ) - if op_code in BpxOpCodes.REQUEST_CFG: + if op_code in BpxOpCode.REQUEST_CFG: q.add_log_cmd("Requesting configuration struct") q.add_pus_tc( make_fsfw_action_cmd( - object_id=BPX_HANDLER_ID, action_id=BpxActionIds.GET_CFG + object_id=BPX_HANDLER_ID, action_id=BpxActionId.GET_CFG ) ) - if op_code in BpxOpCodes.REQUEST_CFG_HK: + if op_code in BpxOpCode.REQUEST_CFG_HK: q.add_log_cmd("Requesting configuration struct HK") - sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetIds.GET_CFG_SET) + sid = make_sid(object_id=BPX_HANDLER_ID, set_id=BpxSetId.GET_CFG_SET) q.add_pus_tc(generate_one_hk_command(sid=sid)) - if op_code in BpxOpCodes.REBOOT: + if op_code in BpxOpCode.REBOOT: q.add_log_cmd("Rebooting BPX battery") q.add_pus_tc( - make_fsfw_action_cmd( - object_id=BPX_HANDLER_ID, action_id=BpxActionIds.REBOOT - ) + make_fsfw_action_cmd(object_id=BPX_HANDLER_ID, action_id=BpxActionId.REBOOT) ) diff --git a/eive_tmtc/pus_tc/devs/gps.py b/eive_tmtc/pus_tc/devs/gps.py index 87f373f..61e63f3 100644 --- a/eive_tmtc/pus_tc/devs/gps.py +++ b/eive_tmtc/pus_tc/devs/gps.py @@ -11,7 +11,7 @@ from tmtccmd.logging import get_console_logger LOGGER = get_console_logger() -class OpCodes: +class OpCode: REQ_OS_HK = ["0", "hk-os"] RESET_GNSS = ["5", "reset"] @@ -21,15 +21,15 @@ class Info: RESET_GNSS = "Reset GNSS using reset pin" -class SetIds: +class SetId: HK = 0 @tmtc_definitions_provider def add_gps_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.RESET_GNSS, info=Info.RESET_GNSS) - oce.add(keys=OpCodes.REQ_OS_HK, info=Info.REQ_OS_HK) + oce.add(keys=OpCode.RESET_GNSS, info=Info.RESET_GNSS) + oce.add(keys=OpCode.REQ_OS_HK, info=Info.REQ_OS_HK) defs.add_service( name=CustomServiceList.GPS_CTRL.value, info="GPS/GNSS Controller", @@ -38,11 +38,11 @@ def add_gps_cmds(defs: TmtcDefinitionWrapper): def pack_gps_command(object_id: bytes, q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCodes.RESET_GNSS: + if op_code in OpCode.RESET_GNSS: # TODO: This needs to be re-implemented LOGGER.warning("Reset pin handling needs to be re-implemented") - if op_code in OpCodes.REQ_OS_HK: + if op_code in OpCode.REQ_OS_HK: q.add_log_cmd(f"GMSS: {Info.REQ_OS_HK}") q.add_pus_tc( - generate_one_hk_command(sid=make_sid(object_id=object_id, set_id=SetIds.HK)) + generate_one_hk_command(sid=make_sid(object_id=object_id, set_id=SetId.HK)) ) diff --git a/eive_tmtc/pus_tc/devs/gyros.py b/eive_tmtc/pus_tc/devs/gyros.py index 6cdc775..461a15b 100644 --- a/eive_tmtc/pus_tc/devs/gyros.py +++ b/eive_tmtc/pus_tc/devs/gyros.py @@ -1,10 +1,10 @@ import enum -class AdisGyroSetIds(enum.IntEnum): +class AdisGyroSetId(enum.IntEnum): CORE_HK = 0 CFG_HK = 1 -class L3gGyroSetIds(enum.IntEnum): +class L3gGyroSetId(enum.IntEnum): CORE_HK = 0 diff --git a/eive_tmtc/pus_tc/devs/heater.py b/eive_tmtc/pus_tc/devs/heater.py index ae7dd37..821df2a 100644 --- a/eive_tmtc/pus_tc/devs/heater.py +++ b/eive_tmtc/pus_tc/devs/heater.py @@ -20,7 +20,7 @@ from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from spacepackets.ecss.tc import PusTelecommand -class SwitchNumbers: +class SwitchNumber(enum.IntEnum): HEATER_0_OBC_BRD = 0 HEATER_1_PLOC_PROC_BRD = 1 HEATER_2_ACS_BRD = 2 @@ -32,7 +32,7 @@ class SwitchNumbers: NUMBER_OF_SWITCHES = 8 -class OpCodes: +class OpCode: HEATER_CMD = ["0", "switch-cmd"] HEATER_EXT_CTRL = ["1", "set-ext-ctrl"] HEATER_FAULTY_CMD = ["2", "set-faulty"] @@ -57,10 +57,10 @@ class ActionIds(enum.IntEnum): @tmtc_definitions_provider def add_heater_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.HEATER_CMD, info=Info.HEATER_CMD) - oce.add(keys=OpCodes.HEATER_HEALTHY_CMD, info=Info.HEATER_HEALTHY_CMD) - oce.add(keys=OpCodes.HEATER_EXT_CTRL, info=Info.HEATER_EXT_CTRL) - oce.add(keys=OpCodes.HEATER_FAULTY_CMD, info=Info.HEATER_FAULTY_CMD) + oce.add(keys=OpCode.HEATER_CMD, info=Info.HEATER_CMD) + oce.add(keys=OpCode.HEATER_HEALTHY_CMD, info=Info.HEATER_HEALTHY_CMD) + oce.add(keys=OpCode.HEATER_EXT_CTRL, info=Info.HEATER_EXT_CTRL) + oce.add(keys=OpCode.HEATER_FAULTY_CMD, info=Info.HEATER_FAULTY_CMD) defs.add_service( name=CustomServiceList.HEATER.value, info="Heater Device", @@ -69,7 +69,7 @@ def add_heater_cmds(defs: TmtcDefinitionWrapper): def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelper): - if op_code in OpCodes.HEATER_CMD: + if op_code in OpCode.HEATER_CMD: q.add_log_cmd("Heater Switching") heater_number = prompt_heater() while True: @@ -89,7 +89,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe debug_string = f"Switching heater {heater_number} {act_str}" q.add_log_cmd(debug_string) q.add_pus_tc(pack_switch_heater_command(object_id, heater_number, action)) - if op_code in OpCodes.HEATER_EXT_CTRL: + if op_code in OpCode.HEATER_EXT_CTRL: heater_number = prompt_heater() obj_id = heater_idx_to_obj(heater_number) health_cmd( @@ -99,7 +99,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe health_str="External Control", heater_idx=heater_number, ) - if op_code in OpCodes.HEATER_FAULTY_CMD: + if op_code in OpCode.HEATER_FAULTY_CMD: heater_number = prompt_heater() obj_id = heater_idx_to_obj(heater_number) health_cmd( @@ -109,7 +109,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe health_str="Faulty", heater_idx=heater_number, ) - if op_code in OpCodes.HEATER_HEALTHY_CMD: + if op_code in OpCode.HEATER_HEALTHY_CMD: heater_number = prompt_heater() obj_id = heater_idx_to_obj(heater_number) health_cmd( @@ -165,7 +165,7 @@ def prompt_heater() -> int: print("Heater number not a digit") continue heater_number = int(heater_number) - if heater_number >= SwitchNumbers.NUMBER_OF_SWITCHES or heater_number < 0: + if heater_number >= SwitchNumber.NUMBER_OF_SWITCHES or heater_number < 0: print("Invalid heater switch number") continue break diff --git a/eive_tmtc/pus_tc/devs/mgms.py b/eive_tmtc/pus_tc/devs/mgms.py index 9bd6199..fb91e54 100644 --- a/eive_tmtc/pus_tc/devs/mgms.py +++ b/eive_tmtc/pus_tc/devs/mgms.py @@ -1,9 +1,9 @@ import enum -class MgmLis3SetIds(enum.IntEnum): +class MgmLis3SetId(enum.IntEnum): CORE_HK = 0 -class MgmRm3100SetIds(enum.IntEnum): +class MgmRm3100SetId(enum.IntEnum): CORE_HK = 0 diff --git a/eive_tmtc/pus_tc/devs/pdec_handler.py b/eive_tmtc/pus_tc/devs/pdec_handler.py index 4c58762..ec60190 100644 --- a/eive_tmtc/pus_tc/devs/pdec_handler.py +++ b/eive_tmtc/pus_tc/devs/pdec_handler.py @@ -9,7 +9,7 @@ from spacepackets.ecss.tc import PusTelecommand from tmtccmd.tc import DefaultPusQueueHelper -class CommandIds: +class CommandId: # prints the clcw to the console. Useful for debugging PRINT_CLCW = bytearray([0x0, 0x0, 0x0, 0x0]) # Print PDEC monitor register @@ -22,9 +22,9 @@ def pack_pdec_handler_test( q.add_log_cmd(f"Testing PDEC handler with object id: {object_id.hex()}") if op_code == "0": q.add_log_cmd("PDEC Handler: Print CLCW") - command = object_id + CommandIds.PRINT_CLCW + command = object_id + CommandId.PRINT_CLCW q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "1": q.add_log_cmd("PDEC Handler: Print PDEC monitor register") - command = object_id + CommandIds.PRINT_PDEC_MON + command = object_id + CommandId.PRINT_PDEC_MON q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/pus_tc/devs/plpcdu.py b/eive_tmtc/pus_tc/devs/plpcdu.py index b2c8008..ee13348 100644 --- a/eive_tmtc/pus_tc/devs/plpcdu.py +++ b/eive_tmtc/pus_tc/devs/plpcdu.py @@ -31,7 +31,7 @@ from eive_tmtc.config.object_ids import PL_PCDU_ID LOGGER = get_console_logger() -class OpCodes: +class OpCode: SWITCH_HPA_ON_PROC = ["0", "proc_hpa"] SWITCH_ON = ["2", "on"] SWITCH_OFF = ["3", "off"] @@ -70,7 +70,7 @@ class Info: DISABLE_HK = "Disable HK" -class SetIds(enum.IntEnum): +class SetId(enum.IntEnum): ADC = 0 @@ -124,63 +124,63 @@ class ParamIds(enum.IntEnum): @tmtc_definitions_provider def add_pl_pcdu_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.SWITCH_HPA_ON_PROC, info=Info.SWITCH_HPA_ON_PROC) - oce.add(keys=OpCodes.SWITCH_ON, info=Info.SWITCH_ON) - oce.add(keys=OpCodes.SWITCH_OFF, info=Info.SWITCH_OFF) - oce.add(keys=OpCodes.NORMAL_SSR, info=Info.NORMAL_SSR) - oce.add(keys=OpCodes.NORMAL_DRO, info=Info.NORMAL_DRO) - oce.add(keys=OpCodes.NORMAL_X8, info=Info.NORMAL_X8) - oce.add(keys=OpCodes.NORMAL_TX, info=Info.NORMAL_TX) - oce.add(keys=OpCodes.NORMAL_MPA, info=Info.NORMAL_MPA) - oce.add(keys=OpCodes.NORMAL_HPA, info=Info.NORMAL_HPA) - oce.add(keys=OpCodes.REQ_OS_HK, info=Info.REQ_OS_HK) - oce.add(keys=OpCodes.ENABLE_HK, info=Info.ENABLE_HK) + oce.add(keys=OpCode.SWITCH_HPA_ON_PROC, info=Info.SWITCH_HPA_ON_PROC) + oce.add(keys=OpCode.SWITCH_ON, info=Info.SWITCH_ON) + oce.add(keys=OpCode.SWITCH_OFF, info=Info.SWITCH_OFF) + oce.add(keys=OpCode.NORMAL_SSR, info=Info.NORMAL_SSR) + oce.add(keys=OpCode.NORMAL_DRO, info=Info.NORMAL_DRO) + oce.add(keys=OpCode.NORMAL_X8, info=Info.NORMAL_X8) + oce.add(keys=OpCode.NORMAL_TX, info=Info.NORMAL_TX) + oce.add(keys=OpCode.NORMAL_MPA, info=Info.NORMAL_MPA) + oce.add(keys=OpCode.NORMAL_HPA, info=Info.NORMAL_HPA) + oce.add(keys=OpCode.REQ_OS_HK, info=Info.REQ_OS_HK) + oce.add(keys=OpCode.ENABLE_HK, info=Info.ENABLE_HK) oce.add( - keys=OpCodes.INJECT_SSR_TO_DRO_FAILURE, + keys=OpCode.INJECT_SSR_TO_DRO_FAILURE, info="Inject failure SSR to DRO transition", ) oce.add( - keys=OpCodes.INJECT_DRO_TO_X8_FAILURE, + keys=OpCode.INJECT_DRO_TO_X8_FAILURE, info="Inject failure in DRO to X8 transition", ) oce.add( - keys=OpCodes.INJECT_X8_TO_TX_FAILURE, + keys=OpCode.INJECT_X8_TO_TX_FAILURE, info="Inject failure in X8 to TX transition", ) oce.add( - keys=OpCodes.INJECT_TX_TO_MPA_FAILURE, + keys=OpCode.INJECT_TX_TO_MPA_FAILURE, info="Inject failure in TX to MPA transition", ) oce.add( - keys=OpCodes.INJECT_MPA_TO_HPA_FAILURE, + keys=OpCode.INJECT_MPA_TO_HPA_FAILURE, info="Inject failure in MPA to HPA transition", ) - oce.add(keys=OpCodes.INJECT_ALL_ON_FAILURE, info="Inject failure in all on mode") + oce.add(keys=OpCode.INJECT_ALL_ON_FAILURE, info="Inject failure in all on mode") defs.add_service(CustomServiceList.PL_PCDU.value, "PL PCDU", oce) def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCodes.SWITCH_ON: + if op_code in OpCode.SWITCH_ON: pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_ON, mode=Modes.ON, submode=0) - if op_code in OpCodes.SWITCH_OFF: + if op_code in OpCode.SWITCH_OFF: pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_OFF, mode=Modes.OFF, submode=0) - if op_code in OpCodes.ENABLE_HK: + if op_code in OpCode.ENABLE_HK: interval = float( input("Please enter HK collection interval in floating point seconds: ") ) cmds = enable_periodic_hk_command_with_interval( - diag=True, sid=make_sid(PL_PCDU_ID, SetIds.ADC), interval_seconds=interval + diag=True, sid=make_sid(PL_PCDU_ID, SetId.ADC), interval_seconds=interval ) q.add_log_cmd(f"Enable PL PCDU HK with interval of {interval} seconds") for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCodes.DISABLE_HK: + if op_code in OpCode.DISABLE_HK: cmd = disable_periodic_hk_command( - diag=True, sid=make_sid(PL_PCDU_ID, SetIds.ADC) + diag=True, sid=make_sid(PL_PCDU_ID, SetId.ADC) ) q.add_log_cmd("Disabling PL PCDU HK") q.add_pus_tc(cmd) - if op_code in OpCodes.NORMAL_SSR: + if op_code in OpCode.NORMAL_SSR: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_SSR, @@ -189,51 +189,51 @@ def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str): NormalSubmodesMask.SOLID_STATE_RELAYS_ADC_ON ), ) - if op_code in OpCodes.NORMAL_DRO: + if op_code in OpCode.NORMAL_DRO: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_DRO, mode=Modes.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.DRO_ON), ) - if op_code in OpCodes.NORMAL_X8: + if op_code in OpCode.NORMAL_X8: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_X8, mode=Modes.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.X8_ON), ) - if op_code in OpCodes.NORMAL_TX: + if op_code in OpCode.NORMAL_TX: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_TX, mode=Modes.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.TX_ON), ) - if op_code in OpCodes.NORMAL_MPA: + if op_code in OpCode.NORMAL_MPA: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_MPA, mode=Modes.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.MPA_ON), ) - if op_code in OpCodes.NORMAL_HPA: + if op_code in OpCode.NORMAL_HPA: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_HPA, mode=Modes.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.HPA_ON), ) - if op_code in OpCodes.REQ_OS_HK: + if op_code in OpCode.REQ_OS_HK: q.add_log_cmd(f"PL PCDU: {Info.REQ_OS_HK}") q.add_pus_tc( generate_one_diag_command( - sid=make_sid(object_id=PL_PCDU_ID, set_id=SetIds.ADC) + sid=make_sid(object_id=PL_PCDU_ID, set_id=SetId.ADC) ) ) - if op_code in OpCodes.SWITCH_HPA_ON_PROC: + if op_code in OpCode.SWITCH_HPA_ON_PROC: hpa_on_procedure(q) - if op_code in OpCodes.INJECT_ALL_ON_FAILURE: + if op_code in OpCode.INJECT_ALL_ON_FAILURE: pack_failure_injection_cmd( q=q, param_id=ParamIds.INJECT_ALL_ON_FAILURE, diff --git a/eive_tmtc/pus_tc/devs/rad_sensor.py b/eive_tmtc/pus_tc/devs/rad_sensor.py index 9383901..d42c10e 100644 --- a/eive_tmtc/pus_tc/devs/rad_sensor.py +++ b/eive_tmtc/pus_tc/devs/rad_sensor.py @@ -18,11 +18,11 @@ from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid from tmtccmd.util import ObjectIdU32 -class SetIds: +class SetId: HK = 3 -class OpCodes: +class OpCode: ON = ["0", "on"] NORMAL = ["1", "normal"] OFF = ["2", "off"] @@ -40,7 +40,7 @@ class Info: DEBUG_OFF = "Switch debug output off" -class CommandIds: +class CommandId: START_CONVERSIONS = 2 READ_CONVERSIONS = 3 ENABLE_DEBUG_OUTPUT = 4 @@ -50,12 +50,12 @@ class CommandIds: @tmtc_definitions_provider def add_rad_sens_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(info=Info.ON, keys=OpCodes.ON) - oce.add(info=Info.OFF, keys=OpCodes.OFF) - oce.add(info=Info.NORMAL, keys=OpCodes.NORMAL) - oce.add(info=Info.REQ_OS_HK, keys=OpCodes.REQ_HK_ONCE) - oce.add(info=Info.DEBUG_ON, keys=OpCodes.DEBUG_ON) - oce.add(info=Info.DEBUG_OFF, keys=OpCodes.DEBUG_OFF) + oce.add(info=Info.ON, keys=OpCode.ON) + oce.add(info=Info.OFF, keys=OpCode.OFF) + oce.add(info=Info.NORMAL, keys=OpCode.NORMAL) + oce.add(info=Info.REQ_OS_HK, keys=OpCode.REQ_HK_ONCE) + oce.add(info=Info.DEBUG_ON, keys=OpCode.DEBUG_ON) + oce.add(info=Info.DEBUG_OFF, keys=OpCode.DEBUG_OFF) defs.add_service( name=CustomServiceList.RAD_SENSOR.value, info="Radiation Sensor", @@ -68,26 +68,24 @@ def pack_rad_sensor_test_into( ): q.add_log_cmd(f"Commanding Radiation sensor handler {object_id}") - if op_code in OpCodes.ON: + if op_code in OpCode.ON: rad_sensor_mode_cmd(object_id, Modes.ON, Info.ON, q) - if op_code in OpCodes.NORMAL: + if op_code in OpCode.NORMAL: rad_sensor_mode_cmd(object_id, Modes.NORMAL, Info.NORMAL, q) - if op_code in OpCodes.OFF: + if op_code in OpCode.OFF: rad_sensor_mode_cmd(object_id, Modes.OFF, Info.OFF, q) - if op_code in OpCodes.REQ_HK_ONCE: + if op_code in OpCode.REQ_HK_ONCE: q.add_log_cmd(f"Rad sensor: {Info.REQ_OS_HK}") q.add_pus_tc( - generate_one_hk_command(sid=make_sid(object_id.as_bytes, set_id=SetIds.HK)) + generate_one_hk_command(sid=make_sid(object_id.as_bytes, set_id=SetId.HK)) ) - if op_code in OpCodes.DEBUG_ON: + if op_code in OpCode.DEBUG_ON: q.add_log_cmd(f"Rad sensor: {Info.DEBUG_ON}") - command = object_id.as_bytes + struct.pack("!I", CommandIds.ENABLE_DEBUG_OUTPUT) + command = object_id.as_bytes + struct.pack("!I", CommandId.ENABLE_DEBUG_OUTPUT) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code in OpCodes.DEBUG_OFF: + if op_code in OpCode.DEBUG_OFF: q.add_log_cmd(f"Rad sensor: {Info.DEBUG_OFF}") - command = object_id.as_bytes + struct.pack( - "!I", CommandIds.DISABLE_DEBUG_OUTPUT - ) + command = object_id.as_bytes + struct.pack("!I", CommandId.DISABLE_DEBUG_OUTPUT) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/pus_tc/devs/rtd.py b/eive_tmtc/pus_tc/devs/rtd.py index 9f2173e..e62869f 100644 --- a/eive_tmtc/pus_tc/devs/rtd.py +++ b/eive_tmtc/pus_tc/devs/rtd.py @@ -1,7 +1,7 @@ from typing import Optional from eive_tmtc.config.definitions import CustomServiceList -from eive_tmtc.pus_tc.devs.pdec_handler import CommandIds +from eive_tmtc.pus_tc.devs.pdec_handler import CommandId from spacepackets.ecss import PusTelecommand from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry from tmtccmd.config.tmtc import tmtc_definitions_provider @@ -32,7 +32,7 @@ RTD_IDS = [ ] -class OpCodes: +class OpCode: ON = ["0", "on"] OFF = ["1", "off"] NORMAL = ["2", "normal"] @@ -49,9 +49,9 @@ class Info: @tmtc_definitions_provider def specify_rtd_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.ON, info=Info.ON) - oce.add(keys=OpCodes.NORMAL, info=Info.NORMAL) - oce.add(keys=OpCodes.OFF, info=Info.OFF) + oce.add(keys=OpCode.ON, info=Info.ON) + oce.add(keys=OpCode.NORMAL, info=Info.NORMAL) + oce.add(keys=OpCode.OFF, info=Info.OFF) defs.add_service( name=CustomServiceList.RTD.value, info="RTD commands", op_code_entry=oce ) @@ -67,7 +67,7 @@ def pack_rtd_commands( tgt_rtd_idx = prompt_rtd_idx() object_id_dict = get_object_ids() object_id = object_id_dict.get(RTD_IDS[tgt_rtd_idx]) - if op_code in OpCodes.ON: + if op_code in OpCode.ON: app_data = pack_mode_data( object_id=object_id.as_bytes, mode=Modes.ON, submode=0 ) @@ -76,7 +76,7 @@ def pack_rtd_commands( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data ) ) - if op_code in OpCodes.NORMAL: + if op_code in OpCode.NORMAL: app_data = pack_mode_data( object_id=object_id.as_bytes, mode=Modes.NORMAL, submode=0 ) @@ -85,7 +85,7 @@ def pack_rtd_commands( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data ) ) - if op_code in OpCodes.OFF: + if op_code in OpCode.OFF: app_data = pack_mode_data( object_id=object_id.as_bytes, mode=Modes.OFF, submode=0 ) @@ -94,8 +94,8 @@ def pack_rtd_commands( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data ) ) - if op_code in OpCodes.CONFIG_CMD: - command = object_id.as_bytes + CommandIds.PRINT_CLCW + if op_code in OpCode.CONFIG_CMD: + command = object_id.as_bytes + CommandId.PRINT_CLCW q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/pus_tc/devs/scex.py b/eive_tmtc/pus_tc/devs/scex.py index 2612c5e..871b5b7 100644 --- a/eive_tmtc/pus_tc/devs/scex.py +++ b/eive_tmtc/pus_tc/devs/scex.py @@ -16,7 +16,7 @@ from eive_tmtc.config.object_ids import SCEX_HANDLER_ID USE_SCEX_CONF_FILE = True -class OpCodes: +class OpCode: PING = ["0", "ping"] ION_CMD = ["1", "ion"] TEMP_CMD = ["2", "temp"] @@ -30,7 +30,7 @@ class OpCodes: SWITCH_OFF = ["8", "off"] -class ActionIds(enum.IntEnum): +class ActionId(enum.IntEnum): PING = 7 ION_CMD = 4 TEMP_CMD = 3 @@ -58,16 +58,16 @@ class Info: @tmtc_definitions_provider def add_scex_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.PING, info=Info.PING) - oce.add(keys=OpCodes.ION_CMD, info=Info.ION_CMD) - oce.add(keys=OpCodes.TEMP_CMD, info=Info.TEMP_CMD) - oce.add(keys=OpCodes.EXP_STATUS_CMD, info=Info.EXP_STATUS_CMD) - oce.add(keys=OpCodes.ONE_CELLS_CMD, info=Info.ONE_CELLS_CMD) + oce.add(keys=OpCode.PING, info=Info.PING) + oce.add(keys=OpCode.ION_CMD, info=Info.ION_CMD) + oce.add(keys=OpCode.TEMP_CMD, info=Info.TEMP_CMD) + oce.add(keys=OpCode.EXP_STATUS_CMD, info=Info.EXP_STATUS_CMD) + oce.add(keys=OpCode.ONE_CELLS_CMD, info=Info.ONE_CELLS_CMD) - oce.add(keys=OpCodes.ALL_CELLS_CMD, info=Info.ALL_CELLS_CMD) - oce.add(keys=OpCodes.FRAM, info=Info.FRAM) - oce.add(keys=OpCodes.SWITCH_ON, info=Info.SWITCH_ON) - oce.add(keys=OpCodes.SWITCH_OFF, info=Info.SWITCH_OFF) + oce.add(keys=OpCode.ALL_CELLS_CMD, info=Info.ALL_CELLS_CMD) + oce.add(keys=OpCode.FRAM, info=Info.FRAM) + oce.add(keys=OpCode.SWITCH_ON, info=Info.SWITCH_ON) + oce.add(keys=OpCode.SWITCH_OFF, info=Info.SWITCH_OFF) defs.add_service( name=CustomServiceList.SCEX.value, info="SCEX Device", op_code_entry=oce @@ -78,7 +78,7 @@ def add_scex_cmds(defs: TmtcDefinitionWrapper): def pack_scex_cmds(p: ServiceProviderParams): op_code = p.op_code q = p.queue_helper - if op_code in OpCodes.SWITCH_ON: + if op_code in OpCode.SWITCH_ON: q.add_log_cmd(Info.SWITCH_ON) q.add_pus_tc( PusTelecommand( @@ -87,7 +87,7 @@ def pack_scex_cmds(p: ServiceProviderParams): app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.ON, 0), ) ) - if op_code in OpCodes.SWITCH_OFF: + if op_code in OpCode.SWITCH_OFF: q.add_log_cmd(Info.SWITCH_OFF) q.add_pus_tc( PusTelecommand( @@ -96,30 +96,28 @@ def pack_scex_cmds(p: ServiceProviderParams): app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.OFF, 0), ) ) - if op_code in OpCodes.PING: + if op_code in OpCode.PING: q.add_log_cmd(Info.PING) app_data = bytes([0]) - q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.PING, app_data)) - if op_code in OpCodes.ION_CMD: + q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.PING, app_data)) + if op_code in OpCode.ION_CMD: q.add_log_cmd(Info.ION_CMD) app_data = bytes([0]) - q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.ION_CMD, app_data)) - if op_code in OpCodes.TEMP_CMD: + q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.ION_CMD, app_data)) + if op_code in OpCode.TEMP_CMD: q.add_log_cmd(Info.TEMP_CMD) app_data = bytes([0]) - q.add_pus_tc( - make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.TEMP_CMD, app_data) - ) + q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.TEMP_CMD, app_data)) - if op_code in OpCodes.EXP_STATUS_CMD: + if op_code in OpCode.EXP_STATUS_CMD: q.add_log_cmd(Info.EXP_STATUS_CMD) app_data = bytes([0]) q.add_pus_tc( - make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.EXP_STATUS_CMD, app_data) + make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.EXP_STATUS_CMD, app_data) ) # one cell - if op_code in OpCodes.ONE_CELLS_CMD: + if op_code in OpCode.ONE_CELLS_CMD: q.add_log_cmd(Info.ONE_CELLS_CMD) app_data = bytearray([0]) @@ -164,10 +162,10 @@ def pack_scex_cmds(p: ServiceProviderParams): app_data.append(dac_weight3[cn]) q.add_pus_tc( - make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.ONE_CELLS_CMD, app_data) + make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.ONE_CELLS_CMD, app_data) ) - if op_code in OpCodes.ALL_CELLS_CMD: + if op_code in OpCode.ALL_CELLS_CMD: q.add_log_cmd(Info.ALL_CELLS_CMD) app_data = bytearray([0]) @@ -196,13 +194,13 @@ def pack_scex_cmds(p: ServiceProviderParams): app_data.append(dac_weight3[cn]) q.add_pus_tc( - make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.ALL_CELLS_CMD, app_data) + make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.ALL_CELLS_CMD, app_data) ) - if op_code in OpCodes.FRAM: + if op_code in OpCode.FRAM: q.add_log_cmd(Info.FRAM) app_data = bytes([0]) - q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionIds.FRAM, app_data)) + q.add_pus_tc(make_fsfw_action_cmd(SCEX_HANDLER_ID, ActionId.FRAM, app_data)) def append_16_bit_val(packet: bytearray, val: int): diff --git a/eive_tmtc/pus_tc/devs/star_tracker.py b/eive_tmtc/pus_tc/devs/star_tracker.py index b7519ff..cf86ad1 100644 --- a/eive_tmtc/pus_tc/devs/star_tracker.py +++ b/eive_tmtc/pus_tc/devs/star_tracker.py @@ -5,6 +5,7 @@ @author J. Meier @date 14.08.2021 """ +import enum import struct from spacepackets.ecss.tc import PusTelecommand @@ -19,7 +20,7 @@ from eive_tmtc.utility.input_helper import InputHelper LOGGER = get_console_logger() -class StarTrackerActionIds: +class StarTrackerActionId(enum.IntEnum): PING = 0 BOOT = 1 REQ_VERSION = 2 @@ -183,57 +184,57 @@ def pack_star_tracker_commands( q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "5": q.add_log_cmd("Star tracker: Ping") - data = obyt + struct.pack("!I", StarTrackerActionIds.PING) + data = obyt + struct.pack("!I", StarTrackerActionId.PING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "6": q.add_log_cmd("Star tracker: Switch to bootloader program") data = obyt + struct.pack( - "!I", StarTrackerActionIds.SWITCH_TO_BOOTLOADER_PROGRAM + "!I", StarTrackerActionId.SWITCH_TO_BOOTLOADER_PROGRAM ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "7": q.add_log_cmd("Star tracker: Temperature request") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_TEMPERATURE) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TEMPERATURE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "8": q.add_log_cmd("Star tracker: Request version") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_VERSION) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_VERSION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "9": q.add_log_cmd("Star tracker: Request interface") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_INTERFACE) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_INTERFACE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "10": q.add_log_cmd("Star tracker: Request power") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_POWER) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_POWER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "11": q.add_log_cmd("Star tracker: Set subscription parameters") json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.SUBSCRIPTION) + + struct.pack("!I", StarTrackerActionId.SUBSCRIPTION) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "12": q.add_log_cmd("Star tracker: Boot") - data = obyt + struct.pack("!I", StarTrackerActionIds.BOOT) + data = obyt + struct.pack("!I", StarTrackerActionId.BOOT) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "13": q.add_log_cmd("Star tracker: Request time") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_TIME) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TIME) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "14": q.add_log_cmd("Star tracker: Request solution") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_SOLUTION) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_SOLUTION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "15": q.add_log_cmd("Star tracker: Upload image") image = get_upload_image() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.UPLOAD_IMAGE) + + struct.pack("!I", StarTrackerActionId.UPLOAD_IMAGE) + bytearray(image, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -244,7 +245,7 @@ def pack_star_tracker_commands( path = FileDefs.download_path data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_IMAGE) + + struct.pack("!I", StarTrackerActionId.DOWNLOAD_IMAGE) + bytearray(path, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -253,7 +254,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.LIMITS) + + struct.pack("!I", StarTrackerActionId.LIMITS) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -262,7 +263,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.TRACKING) + + struct.pack("!I", StarTrackerActionId.TRACKING) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -271,7 +272,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.MOUNTING) + + struct.pack("!I", StarTrackerActionId.MOUNTING) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -280,7 +281,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.CAMERA) + + struct.pack("!I", StarTrackerActionId.CAMERA) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -289,7 +290,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.CENTROIDING) + + struct.pack("!I", StarTrackerActionId.CENTROIDING) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -298,7 +299,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.LISA) + + struct.pack("!I", StarTrackerActionId.LISA) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -307,7 +308,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.MATCHING) + + struct.pack("!I", StarTrackerActionId.MATCHING) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -316,7 +317,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.VALIDATION) + + struct.pack("!I", StarTrackerActionId.VALIDATION) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -325,7 +326,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.ALGO) + + struct.pack("!I", StarTrackerActionId.ALGO) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -334,37 +335,37 @@ def pack_star_tracker_commands( actionid = int(input("Specify parameter ID (take image - 4): ")) data = ( obyt - + struct.pack("!I", StarTrackerActionIds.TAKE_IMAGE) + + struct.pack("!I", StarTrackerActionId.TAKE_IMAGE) + struct.pack("!B", actionid) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "28": q.add_log_cmd("Star tracker: Stop str helper") - data = obyt + struct.pack("!I", StarTrackerActionIds.STOP_STR_HELPER) + data = obyt + struct.pack("!I", StarTrackerActionId.STOP_STR_HELPER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "30": q.add_log_cmd("Star tracker: Set name of download image") filename = input("Specify download image name: ") data = ( obyt - + struct.pack("!I", StarTrackerActionIds.CHANGE_DOWNLOAD_IMAGE) + + struct.pack("!I", StarTrackerActionId.CHANGE_DOWNLOAD_IMAGE) + bytearray(filename, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "31": q.add_log_cmd("Star tracker: Request histogram") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_HISTOGRAM) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_HISTOGRAM) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "32": q.add_log_cmd("Star tracker: Request contrast") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_CONTRAST) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CONTRAST) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "33": q.add_log_cmd("Star tracker: Set json filename") json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.SET_JSON_FILE_NAME) + + struct.pack("!I", StarTrackerActionId.SET_JSON_FILE_NAME) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -377,7 +378,7 @@ def pack_star_tracker_commands( filename = input("Specify filename: ") data = ( obyt - + struct.pack("!I", StarTrackerActionIds.SET_FLASH_READ_FILENAME) + + struct.pack("!I", StarTrackerActionId.SET_FLASH_READ_FILENAME) + bytearray(filename, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -390,7 +391,7 @@ def pack_star_tracker_commands( unix_time = 1640783543 data = ( obyt - + struct.pack("!I", StarTrackerActionIds.SET_TIME) + + struct.pack("!I", StarTrackerActionId.SET_TIME) + struct.pack("!Q", unix_time) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -399,7 +400,7 @@ def pack_star_tracker_commands( id = 0 data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_CENTROID) + + struct.pack("!I", StarTrackerActionId.DOWNLOAD_CENTROID) + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -408,7 +409,7 @@ def pack_star_tracker_commands( id = 0 data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_MATCHED_STAR) + + struct.pack("!I", StarTrackerActionId.DOWNLOAD_MATCHED_STAR) + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -417,7 +418,7 @@ def pack_star_tracker_commands( id = 0 data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_DBIMAGE) + + struct.pack("!I", StarTrackerActionId.DOWNLOAD_DBIMAGE) + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -427,7 +428,7 @@ def pack_star_tracker_commands( type = 1 # 0 - normal, 1 - fast data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_BLOBPIXEL) + + struct.pack("!I", StarTrackerActionId.DOWNLOAD_BLOBPIXEL) + struct.pack("!B", id) + struct.pack("!B", type) ) @@ -438,7 +439,7 @@ def pack_star_tracker_commands( length = int(input("Size to download: ")) data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_FPGA_IMAGE) + + struct.pack("!I", StarTrackerActionId.DOWNLOAD_FPGA_IMAGE) + struct.pack("!I", position) + struct.pack("!I", length) + bytearray(FileDefs.downloadFpgaImagePath, "utf-8") @@ -448,7 +449,7 @@ def pack_star_tracker_commands( q.add_log_cmd("Star tracker: Change donwload FPGA image file name") data = ( obyt - + struct.pack("!I", StarTrackerActionIds.CHANGE_FPGA_DOWNLOAD_FILE) + + struct.pack("!I", StarTrackerActionId.CHANGE_FPGA_DOWNLOAD_FILE) + bytearray(FileDefs.downloadFpgaImageName, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -456,7 +457,7 @@ def pack_star_tracker_commands( q.add_log_cmd("Star tracker: Upload FPGA image") data = ( obyt - + struct.pack("!I", StarTrackerActionIds.UPLOAD_FPGA_IMAGE) + + struct.pack("!I", StarTrackerActionId.UPLOAD_FPGA_IMAGE) + bytearray(FileDefs.uploadFpgaImageName, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -465,28 +466,28 @@ def pack_star_tracker_commands( id = 3 data = ( obyt - + struct.pack("!I", StarTrackerActionIds.FPGA_ACTION) + + struct.pack("!I", StarTrackerActionId.FPGA_ACTION) + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "48": q.add_log_cmd("Star tracker: Unlock") - data = obyt + struct.pack("!I", StarTrackerActionIds.UNLOCK) + data = obyt + struct.pack("!I", StarTrackerActionId.UNLOCK) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "49": q.add_log_cmd("Star tracker: Request camera parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_CAMERA_PARAMS) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CAMERA_PARAMS) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "50": q.add_log_cmd("Star tracker: Request limits") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LIMITS) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LIMITS) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "51": q.add_log_cmd("Star tracker: Set image processor parameters") json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.IMAGE_PROCESSOR) + + struct.pack("!I", StarTrackerActionId.IMAGE_PROCESSOR) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -494,7 +495,7 @@ def pack_star_tracker_commands( q.add_log_cmd("Star tracker: EGSE load ground config camera parameters") data = ( obyt - + struct.pack("!I", StarTrackerActionIds.CAMERA) + + struct.pack("!I", StarTrackerActionId.CAMERA) + bytearray(FileDefs.egse_ground_config, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -502,64 +503,64 @@ def pack_star_tracker_commands( q.add_log_cmd("Star tracker: EGSE load flight config camera parameters") data = ( obyt - + struct.pack("!I", StarTrackerActionIds.CAMERA) + + struct.pack("!I", StarTrackerActionId.CAMERA) + bytearray(FileDefs.egse_flight_config, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "54": q.add_log_cmd("Star tracker: Request log level parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LOG_LEVEL) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LOG_LEVEL) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "55": q.add_log_cmd("Star tracker: Request mounting parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_MOUNTING) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_MOUNTING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "56": q.add_log_cmd("Star tracker: Request image processor parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_IMAGE_PROCESSOR) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_IMAGE_PROCESSOR) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "57": q.add_log_cmd("Star tracker: Request centroiding parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_CENTROIDING) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CENTROIDING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "58": q.add_log_cmd("Star tracker: Request lisa parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LISA) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LISA) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "59": q.add_log_cmd("Star tracker: Request matching parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_MATCHING) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_MATCHING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "60": q.add_log_cmd("Star tracker: Request tracking parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_TRACKING) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TRACKING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "61": q.add_log_cmd("Star tracker: Request validation parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_VALIDATION) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_VALIDATION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "62": q.add_log_cmd("Star tracker: Request algo parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_ALGO) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_ALGO) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "63": q.add_log_cmd("Star tracker: Request subscription parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_SUBSCRIPTION) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_SUBSCRIPTION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "64": q.add_log_cmd("Star tracker: Request log subscription parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_LOG_SUBSCRIPTION) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LOG_SUBSCRIPTION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "65": q.add_log_cmd("Star tracker: Request debug camera parameters") - data = obyt + struct.pack("!I", StarTrackerActionIds.REQ_DEBUG_CAMERA) + data = obyt + struct.pack("!I", StarTrackerActionId.REQ_DEBUG_CAMERA) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "66": q.add_log_cmd("Star tracker: Set log level parameters") json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.LOGLEVEL) + + struct.pack("!I", StarTrackerActionId.LOGLEVEL) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -569,7 +570,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.LOG_SUBSCRIPTION) + + struct.pack("!I", StarTrackerActionId.LOG_SUBSCRIPTION) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -578,7 +579,7 @@ def pack_star_tracker_commands( json_file = get_config_file() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.DEBUG_CAMERA) + + struct.pack("!I", StarTrackerActionId.DEBUG_CAMERA) + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -587,20 +588,20 @@ def pack_star_tracker_commands( firmware = get_firmware() data = ( obyt - + struct.pack("!I", StarTrackerActionIds.FIRMWARE_UPDATE) + + struct.pack("!I", StarTrackerActionId.FIRMWARE_UPDATE) + bytearray(firmware, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "70": q.add_log_cmd("Star tracker: Disable timestamp generation") command = obyt + struct.pack( - "!I", StarTrackerActionIds.DISBALE_TIMESTAMP_GENERATION + "!I", StarTrackerActionId.DISBALE_TIMESTAMP_GENERATION ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "71": q.add_log_cmd("Star tracker: Enable timestamp generation") command = obyt + struct.pack( - "!I", StarTrackerActionIds.ENABLE_TIMESTAMP_GENERATION + "!I", StarTrackerActionId.ENABLE_TIMESTAMP_GENERATION ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -613,7 +614,7 @@ def pack_read_command(object_id: bytes) -> bytearray: path = FileDefs.download_path data = ( object_id - + struct.pack("!I", StarTrackerActionIds.FLASH_READ) + + struct.pack("!I", StarTrackerActionId.FLASH_READ) + struct.pack("!B", start_region) + struct.pack("!I", size) + bytearray(path, "utf-8") @@ -627,7 +628,7 @@ def pack_checksum_command(object_id: bytes) -> bytearray: size = PartitionSize.STAR_TRACKER_FIRMWARE data = ( object_id - + struct.pack("!I", StarTrackerActionIds.CHECKSUM) + + struct.pack("!I", StarTrackerActionId.CHECKSUM) + struct.pack("!B", start_region) + struct.pack("!I", address) + struct.pack("!I", size) diff --git a/eive_tmtc/pus_tc/devs/sus.py b/eive_tmtc/pus_tc/devs/sus.py index be99fc1..d75e654 100644 --- a/eive_tmtc/pus_tc/devs/sus.py +++ b/eive_tmtc/pus_tc/devs/sus.py @@ -1,2 +1,2 @@ -class SetIds: +class SetId: HK = 3 diff --git a/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py b/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py index 2bf4bd0..bf9d03f 100644 --- a/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py +++ b/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py @@ -5,6 +5,8 @@ @author J. Meier @date 13.12.2020 """ +import enum + from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.config.tmtc import ( tmtc_definitions_provider, @@ -20,12 +22,12 @@ import struct from tmtccmd.util import ObjectIdU32 -class SetIds: +class SetId: RX_REGISTERS_DATASET = 1 TX_REGISTERS_DATASET = 2 -class OpCodes: +class OpCode: OFF = "off" ON = "on" NORMAL = "nml" @@ -46,7 +48,7 @@ class Info: SET_CW = "Set TX carrier wave" -class CommandIds: +class CommandId(enum.IntEnum): READ_RX_STATUS_REGISTERS = 2 SET_TX_MODE_STANDBY = 3 SET_TX_MODE_MODULATION = 4 @@ -67,16 +69,16 @@ class CommandIds: @tmtc_definitions_provider def add_syrlinks_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCodes.OFF, "Syrlinks Handler: Set mode off") - oce.add(OpCodes.ON, "Syrlinks Handler: Set mode on") - oce.add(OpCodes.NORMAL, "Syrlinks Handler: Set mode normal") - oce.add(OpCodes.STANDBY, "Syrlinks Handler: Set TX standby") - oce.add(OpCodes.MODULATION, "Syrlinks Handler: Set TX modulation") - oce.add(OpCodes.HK_RX_REGS, Info.HK_RX_REGS) - oce.add(OpCodes.HK_TX_REGS, Info.HK_TX_REGS) - oce.add(OpCodes.SET_CW, Info.SET_CW) - oce.add(OpCodes.TX_STATUS, Info.TX_STATUS) - oce.add(OpCodes.RX_STATUS, Info.RX_STATUS) + oce.add(OpCode.OFF, "Syrlinks Handler: Set mode off") + oce.add(OpCode.ON, "Syrlinks Handler: Set mode on") + oce.add(OpCode.NORMAL, "Syrlinks Handler: Set mode normal") + oce.add(OpCode.STANDBY, "Syrlinks Handler: Set TX standby") + oce.add(OpCode.MODULATION, "Syrlinks Handler: Set TX modulation") + oce.add(OpCode.HK_RX_REGS, Info.HK_RX_REGS) + oce.add(OpCode.HK_TX_REGS, Info.HK_TX_REGS) + oce.add(OpCode.SET_CW, Info.SET_CW) + oce.add(OpCode.TX_STATUS, Info.TX_STATUS) + oce.add(OpCode.RX_STATUS, Info.RX_STATUS) oce.add("7", "Syrlinks Handler: Read TX waveform") oce.add("8", "Syrlinks Handler: Read TX AGC value high byte") oce.add("9", "Syrlinks Handler: Read TX AGC value low byte") @@ -96,83 +98,83 @@ def pack_syrlinks_command( obyt = object_id.as_bytes prefix = "Syrlinks" q.add_log_cmd(f"Testing Syrlinks with object id: {object_id.as_hex_string}") - if op_code == OpCodes.OFF: + if op_code == OpCode.OFF: q.add_log_cmd(f"{prefix}: Set mode off") data = pack_mode_data(obyt, Modes.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.ON: + if op_code == OpCode.ON: q.add_log_cmd(f"{prefix}: Set mode on") data = pack_mode_data(obyt, Modes.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.NORMAL: + if op_code == OpCode.NORMAL: q.add_log_cmd(f"{prefix}: Mode Normal") data = pack_mode_data(obyt, Modes.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.STANDBY: + if op_code == OpCode.STANDBY: q.add_log_cmd(f"{prefix}: Set TX mode standby") - data = obyt + struct.pack("!I", CommandIds.SET_TX_MODE_STANDBY) + data = obyt + struct.pack("!I", CommandId.SET_TX_MODE_STANDBY) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.MODULATION: + if op_code == OpCode.MODULATION: q.add_log_cmd(f"{prefix}: Set TX mode modulation") - data = obyt + struct.pack("!I", CommandIds.SET_TX_MODE_MODULATION) + data = obyt + struct.pack("!I", CommandId.SET_TX_MODE_MODULATION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.SET_CW: + if op_code in OpCode.SET_CW: q.add_log_cmd(f"{prefix}: {Info.SET_CW}") - data = obyt + struct.pack("!I", CommandIds.SET_TX_MODE_CW) + data = obyt + struct.pack("!I", CommandId.SET_TX_MODE_CW) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.HK_RX_REGS: + if op_code in OpCode.HK_RX_REGS: q.add_log_cmd(f"{prefix}: {Info.HK_RX_REGS}") - sid = make_sid(obyt, SetIds.RX_REGISTERS_DATASET) + sid = make_sid(obyt, SetId.RX_REGISTERS_DATASET) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code in OpCodes.HK_TX_REGS: + if op_code in OpCode.HK_TX_REGS: q.add_log_cmd(f"{prefix}: {Info.HK_TX_REGS}") - sid = make_sid(obyt, SetIds.TX_REGISTERS_DATASET) + sid = make_sid(obyt, SetId.TX_REGISTERS_DATASET) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code in OpCodes.TX_STATUS: + if op_code in OpCode.TX_STATUS: q.add_log_cmd(f"{prefix}: {Info.TX_STATUS}") - command = obyt + struct.pack("!I", CommandIds.READ_TX_STATUS) + command = obyt + struct.pack("!I", CommandId.READ_TX_STATUS) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "9": q.add_log_cmd("Syrlinks: Read TX waveform") - command = obyt + struct.pack("!I", CommandIds.READ_TX_WAVEFORM) + command = obyt + struct.pack("!I", CommandId.READ_TX_WAVEFORM) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "10": q.add_log_cmd("Syrlinks: Read TX AGC value high byte") - command = obyt + struct.pack("!I", CommandIds.READ_TX_AGC_VALUE_HIGH_BYTE) + command = obyt + struct.pack("!I", CommandId.READ_TX_AGC_VALUE_HIGH_BYTE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "11": q.add_log_cmd("Syrlinks: Read TX AGC value low byte") - command = obyt + struct.pack("!I", CommandIds.READ_TX_AGC_VALUE_LOW_BYTE) + command = obyt + struct.pack("!I", CommandId.READ_TX_AGC_VALUE_LOW_BYTE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "12": q.add_log_cmd("Syrlinks: Write LCL config") - command = obyt + struct.pack("!I", CommandIds.WRITE_LCL_CONFIG) + command = obyt + struct.pack("!I", CommandId.WRITE_LCL_CONFIG) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "13": q.add_log_cmd("Syrlinks: Read RX status registers") - command = obyt + struct.pack("!I", CommandIds.READ_RX_STATUS_REGISTERS) + command = obyt + struct.pack("!I", CommandId.READ_RX_STATUS_REGISTERS) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "14": q.add_log_cmd("Syrlinks: Read LCL config register") - command = obyt + struct.pack("!I", CommandIds.READ_LCL_CONFIG_REGISTER) + command = obyt + struct.pack("!I", CommandId.READ_LCL_CONFIG_REGISTER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "15": q.add_log_cmd("Syrlinks: Set waveform OQPSK") - command = obyt + struct.pack("!I", CommandIds.SET_WAVEFORM_OQPSK) + command = obyt + struct.pack("!I", CommandId.SET_WAVEFORM_OQPSK) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "16": q.add_log_cmd("Syrlinks: Set waveform BPSK") - command = obyt + struct.pack("!I", CommandIds.SET_WAVEFORM_BPSK) + command = obyt + struct.pack("!I", CommandId.SET_WAVEFORM_BPSK) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "17": q.add_log_cmd("Syrlinks: Set second config") - command = obyt + struct.pack("!I", CommandIds.SET_SECOND_CONFIG) + command = obyt + struct.pack("!I", CommandId.SET_SECOND_CONFIG) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "18": q.add_log_cmd("Syrlinks: Enable debug printout") - command = obyt + struct.pack("!I", CommandIds.ENABLE_DEBUG) + command = obyt + struct.pack("!I", CommandId.ENABLE_DEBUG) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "19": q.add_log_cmd("Syrlinks: Disable debug printout") - command = obyt + struct.pack("!I", CommandIds.DISABLE_DEBUG) + command = obyt + struct.pack("!I", CommandId.DISABLE_DEBUG) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/pus_tc/devs/tmp1075.py b/eive_tmtc/pus_tc/devs/tmp1075.py index 5d5d419..d9139ff 100644 --- a/eive_tmtc/pus_tc/devs/tmp1075.py +++ b/eive_tmtc/pus_tc/devs/tmp1075.py @@ -28,7 +28,7 @@ class Tmp1075TestProcedure: set_mode_on = False # If mode is MODE_ON, temperature will only be read on command -class Tmp1075ActionIds: +class Tmp1075ActionId: get_temp = bytearray([0x0, 0x0, 0x0, 0x01]) start_adc_conversion = bytearray([0x0, 0x0, 0x0, 0x02]) @@ -42,11 +42,11 @@ def pack_tmp1075_test_into( obyt = object_id.as_bytes if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion: q.add_log_cmd("TMP1075: Starting new temperature conversion") - command = obyt + Tmp1075ActionIds.start_adc_conversion + command = obyt + Tmp1075ActionId.start_adc_conversion q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if Tmp1075TestProcedure.all or Tmp1075TestProcedure.get_temp: q.add_log_cmd("TMP1075: Read temperature") - command = obyt + Tmp1075ActionIds.get_temp + command = obyt + Tmp1075ActionId.get_temp q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if Tmp1075TestProcedure.set_mode_normal: diff --git a/eive_tmtc/pus_tc/system/controllers.py b/eive_tmtc/pus_tc/system/controllers.py index ee5aa9f..d595f08 100644 --- a/eive_tmtc/pus_tc/system/controllers.py +++ b/eive_tmtc/pus_tc/system/controllers.py @@ -8,7 +8,7 @@ from eive_tmtc.tmtc.common import pack_mode_cmd_with_info import eive_tmtc.config.object_ids as obj_ids -class OpCodes: +class OpCode: THERMAL_CONTROLLER = [obj_ids.THERMAL_CONTROLLER_ID.hex(), "ctrl-th"] CORE_CONTROLLER = [obj_ids.CORE_CONTROLLER_ID.hex(), "ctrl-core"] @@ -89,7 +89,7 @@ def get_object_from_op_code(op_code: str): except: pass - if op_code in OpCodes.THERMAL_CONTROLLER: + if op_code in OpCode.THERMAL_CONTROLLER: return obj_ids.THERMAL_CONTROLLER_ID - if op_code in OpCodes.CORE_CONTROLLER: + if op_code in OpCode.CORE_CONTROLLER: return obj_ids.CORE_CONTROLLER_ID diff --git a/eive_tmtc/pus_tc/system/proc.py b/eive_tmtc/pus_tc/system/proc.py index f23f0aa..058f563 100644 --- a/eive_tmtc/pus_tc/system/proc.py +++ b/eive_tmtc/pus_tc/system/proc.py @@ -19,22 +19,22 @@ from tmtccmd.tc.pus_11_tc_sched import ( from tmtccmd.tc.pus_3_fsfw_hk import * import eive_tmtc.config.object_ids as oids -from eive_tmtc.pus_tc.system.tcs import OpCodes as TcsOpCodes -from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetIds +from eive_tmtc.pus_tc.system.tcs import OpCode as TcsOpCodes +from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetId from eive_tmtc.tmtc.core import SetIds as CoreSetIds from eive_tmtc.tmtc.power.common_power import SetId as GsSetIds -from eive_tmtc.pus_tc.devs.rad_sensor import SetIds as RadSetIds -from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetIds as MgmLis3SetIds_0_2 -from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetIds as MgmRm3100SetIds_1_3 -from eive_tmtc.pus_tc.devs.gyros import AdisGyroSetIds as AdisGyroSetIds_0_2 -from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetIds as L3gGyroSetIds_1_3 -from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetIds as SyrlinksSetIds -from eive_tmtc.pus_tc.devs.gps import SetIds as GpsSetIds -from eive_tmtc.tmtc.acs.imtq import ImtqSetIds -from eive_tmtc.pus_tc.devs.sus import SetIds +from eive_tmtc.pus_tc.devs.rad_sensor import SetId as RadSetIds +from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetId as MgmLis3SetIds_0_2 +from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetId as MgmRm3100SetIds_1_3 +from eive_tmtc.pus_tc.devs.gyros import AdisGyroSetId as AdisGyroSetIds_0_2 +from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetId as L3gGyroSetIds_1_3 +from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetId as SyrlinksSetIds +from eive_tmtc.pus_tc.devs.gps import SetId as GpsSetIds +from eive_tmtc.tmtc.acs.imtq import ImtqSetId +from eive_tmtc.pus_tc.devs.sus import SetId from eive_tmtc.pus_tc.devs.star_tracker import SetIds as StrSetIds from eive_tmtc.tmtc.acs.reaction_wheels import ( - RwSetIds, + RwSetId, rw_speed_up_cmd_consec, rw_speed_down_cmd_consec, ) @@ -49,7 +49,7 @@ from eive_tmtc.pus_tc.devs.star_tracker import pack_star_tracker_commands from eive_tmtc.tmtc.acs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command -class OpCodes: +class OpCode: """FT: Functional Test""" TV_SETUP_TCS_FT_ON = ["s", "tcs-ft-on"] @@ -93,34 +93,34 @@ KAI = KeyAndInfo PROC_INFO_DICT = { KAI.TV_SETUP_TCS_FT_ON[0]: [ - OpCodes.TV_SETUP_TCS_FT_ON, + OpCode.TV_SETUP_TCS_FT_ON, KAI.TV_SETUP_TCS_FT_ON[1], 120.0, 10.0, ], KAI.TV_TEARDOWN_TCS_FT_OFF[0]: [ - OpCodes.TV_TEARDOWN_TCS_FT_OFF, + OpCode.TV_TEARDOWN_TCS_FT_OFF, KAI.TV_TEARDOWN_TCS_FT_OFF[1], 120.0, 10.0, ], - KAI.BAT_FT[0]: [OpCodes.BAT_FT, KAI.BAT_FT[1], 120.0, 10.0], - KAI.CORE_FT[0]: [OpCodes.CORE_FT, KAI.CORE_FT[1], 120.0, 10.0], - KAI.PCDU_FT[0]: [OpCodes.PCDU_FT, KAI.PCDU_FT[1], 120.0, 10.0], - KAI.RAD_SEN_FT[0]: [OpCodes.RAD_SEN_FT, KAI.RAD_SEN_FT[1], 120.0, 10.0], - KAI.ACS_FT[0]: [OpCodes.ACS_FT, KAI.ACS_FT[1], 120.0, 10.0], - KAI.MGT_FT[0]: [OpCodes.MGT_FT, KAI.MGT_FT[1], 120.0, 10.0], + KAI.BAT_FT[0]: [OpCode.BAT_FT, KAI.BAT_FT[1], 120.0, 10.0], + KAI.CORE_FT[0]: [OpCode.CORE_FT, KAI.CORE_FT[1], 120.0, 10.0], + KAI.PCDU_FT[0]: [OpCode.PCDU_FT, KAI.PCDU_FT[1], 120.0, 10.0], + KAI.RAD_SEN_FT[0]: [OpCode.RAD_SEN_FT, KAI.RAD_SEN_FT[1], 120.0, 10.0], + KAI.ACS_FT[0]: [OpCode.ACS_FT, KAI.ACS_FT[1], 120.0, 10.0], + KAI.MGT_FT[0]: [OpCode.MGT_FT, KAI.MGT_FT[1], 120.0, 10.0], # collection_time for KAI.MGT_FT_DP maybe be reduced as a full 120 # seconds is not needed after MGTs are tested - KAI.MGT_FT_DP[0]: [OpCodes.MGT_FT_DP, KAI.MGT_FT_DP[1], 10.0, 10.0], - KAI.SUS_FT[0]: [OpCodes.SUS_FT, KAI.SUS_FT[1], 120.0, 10.0], - KAI.STR_FT[0]: [OpCodes.STR_FT, KAI.STR_FT[1], 120.0, 10.0], + KAI.MGT_FT_DP[0]: [OpCode.MGT_FT_DP, KAI.MGT_FT_DP[1], 10.0, 10.0], + KAI.SUS_FT[0]: [OpCode.SUS_FT, KAI.SUS_FT[1], 120.0, 10.0], + KAI.STR_FT[0]: [OpCode.STR_FT, KAI.STR_FT[1], 120.0, 10.0], # collection_time for KAI.RW_FT_ONE_RW maybe be reduced as a full 120 # seconds is not needed after RWs are tested - KAI.RW_FT_ONE_RW[0]: [OpCodes.RW_FT_ONE_RW, KAI.RW_FT_ONE_RW[1], 10.0, 1.0], + KAI.RW_FT_ONE_RW[0]: [OpCode.RW_FT_ONE_RW, KAI.RW_FT_ONE_RW[1], 10.0, 1.0], # collection_time for KAI.RW_FT_ONE_RW maybe be reduced as a full 120 # seconds is not needed after RWs are tested - KAI.RW_FT_TWO_RWS[0]: [OpCodes.RW_FT_TWO_RWS, KAI.RW_FT_TWO_RWS[1], 10.0, 1.0], + KAI.RW_FT_TWO_RWS[0]: [OpCode.RW_FT_TWO_RWS, KAI.RW_FT_TWO_RWS[1], 10.0, 1.0], } @@ -223,12 +223,12 @@ def pack_generic_hk_listening_cmds( def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): sid_list = [] obj_id_dict = get_object_ids() - if op_code in OpCodes.RESET_SCHED: + if op_code in OpCode.RESET_SCHED: q.add_log_cmd("Resetting/Clearing TC schedule") q.add_pus_tc(generate_reset_tc_sched_cmd()) - if op_code in OpCodes.BAT_FT: + if op_code in OpCode.BAT_FT: key = KAI.BAT_FT[0] - sid_list.append(make_sid(oids.BPX_HANDLER_ID, BpxSetIds.GET_HK_SET)) + sid_list.append(make_sid(oids.BPX_HANDLER_ID, BpxSetId.GET_HK_SET)) diag_list = [False] pack_generic_hk_listening_cmds( q=q, @@ -238,7 +238,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): cfg=GenericHkListeningCfg.default(), ) - if op_code in OpCodes.CORE_FT: + if op_code in OpCode.CORE_FT: key = KAI.CORE_FT[0] sid_list.append(make_sid(oids.CORE_CONTROLLER_ID, CoreSetIds.HK)) diag_list = [False] @@ -250,7 +250,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): cfg=GenericHkListeningCfg.default(), ) - if op_code in OpCodes.PCDU_FT: + if op_code in OpCode.PCDU_FT: key = KAI.PCDU_FT[0] pcdu_pairs = [ (oids.P60_DOCK_HANDLER, GsSetIds.CORE), @@ -286,7 +286,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): cfg=GenericHkListeningCfg.default(), ) - if op_code in OpCodes.RAD_SEN_FT: + if op_code in OpCode.RAD_SEN_FT: key = KAI.RAD_SEN_FT[0] sid_list.append(make_sid(oids.RAD_SENSOR_ID, RadSetIds.HK)) diag_list = [False] @@ -298,18 +298,18 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): cfg=GenericHkListeningCfg.default(), ) - if op_code in OpCodes.TV_SETUP_TCS_FT_ON: + if op_code in OpCode.TV_SETUP_TCS_FT_ON: # Enable scheduling q.add_pus_tc(generate_enable_tc_sched_cmd()) # check whether tcs_assembly also has to be commanded to NORMAL Mode pack_tcs_sys_commands(q=q, op_code=TcsOpCodes.TCS_BOARD_ASS_NORMAL[0]) pack_cmd_ctrl_to_nml(q=q, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID)) - if op_code in OpCodes.TV_TEARDOWN_TCS_FT_OFF: + if op_code in OpCode.TV_TEARDOWN_TCS_FT_OFF: # TCS board should always be on anyway, do not command it off here pack_cmd_ctrl_to_off(q=q, object_id=obj_id_dict.get(oids.THERMAL_CONTROLLER_ID)) - if op_code in OpCodes.ACS_FT: + if op_code in OpCode.ACS_FT: key = KAI.ACS_FT[0] a_side_pairs = [ (oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK), @@ -392,12 +392,12 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): pack_acs_command(q=q, op_code="acs-off") - if op_code in OpCodes.MGT_FT: + if op_code in OpCode.MGT_FT: key = KAI.MGT_FT[0] imtq_pairs = [ - (oids.IMTQ_HANDLER_ID, ImtqSetIds.ENG_HK_SET), - (oids.IMTQ_HANDLER_ID, ImtqSetIds.CAL_MTM_SET), - (oids.IMTQ_HANDLER_ID, ImtqSetIds.RAW_MTM_SET), + (oids.IMTQ_HANDLER_ID, ImtqSetId.ENG_HK_SET), + (oids.IMTQ_HANDLER_ID, ImtqSetId.CAL_MTM_SET), + (oids.IMTQ_HANDLER_ID, ImtqSetId.RAW_MTM_SET), ] diag_list = [ True, @@ -425,7 +425,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0") - if op_code in OpCodes.MGT_FT_DP: + if op_code in OpCode.MGT_FT_DP: key = KAI.MGT_FT_DP[0] a_side_pairs = [ (oids.MGM_0_LIS3_HANDLER_ID, MgmLis3SetIds_0_2.CORE_HK), @@ -442,9 +442,9 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): (oids.GPS_CONTROLLER, GpsSetIds.HK), ] imtq_pairs = [ - (oids.IMTQ_HANDLER_ID, ImtqSetIds.ENG_HK_SET), - (oids.IMTQ_HANDLER_ID, ImtqSetIds.CAL_MTM_SET), - (oids.IMTQ_HANDLER_ID, ImtqSetIds.RAW_MTM_SET), + (oids.IMTQ_HANDLER_ID, ImtqSetId.ENG_HK_SET), + (oids.IMTQ_HANDLER_ID, ImtqSetId.CAL_MTM_SET), + (oids.IMTQ_HANDLER_ID, ImtqSetId.RAW_MTM_SET), ] d_side_and_imtq_pairs = a_side_pairs + b_side_pairs + imtq_pairs diag_list = [ @@ -487,7 +487,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0") pack_acs_command(q=q, op_code="acs-off") - if op_code in OpCodes.SUS_FT: + if op_code in OpCode.SUS_FT: key = KAI.SUS_FT[0] pack_sus_cmds(q=q, op_code="sus-nom") @@ -519,7 +519,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): # SUSs for nom_sus in sus_n_ids: - sid_list.append(make_sid(nom_sus, SetIds.HK)) + sid_list.append(make_sid(nom_sus, SetId.HK)) pack_generic_hk_listening_cmds( q=q, proc_key=key, @@ -543,7 +543,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): # SUSs for red_sus in sus_r_ids: - sid_list.append(make_sid(red_sus, SetIds.HK)) + sid_list.append(make_sid(red_sus, SetId.HK)) pack_generic_hk_listening_cmds( q=q, proc_key=key, @@ -558,9 +558,9 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): # SUSs for nom_sus in sus_n_ids: - sid_list.append(make_sid(nom_sus, SetIds.HK)) + sid_list.append(make_sid(nom_sus, SetId.HK)) for red_sus in sus_r_ids: - sid_list.append(make_sid(red_sus, SetIds.HK)) + sid_list.append(make_sid(red_sus, SetId.HK)) diag_list = [ True, True, @@ -585,7 +585,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): pack_acs_command(q=q, op_code="sus-off") - if op_code in OpCodes.SYRLINKS_FT: + if op_code in OpCode.SYRLINKS_FT: key = KAI.SYRLINKS_FT[0] sid_list = [ make_sid(oids.SYRLINKS_HANDLER_ID, SyrlinksSetIds.RX_REGISTERS_DATASET), @@ -599,7 +599,7 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): diag_list=[False], cfg=GenericHkListeningCfg.default(), ) - if op_code in OpCodes.STR_FT: + if op_code in OpCode.STR_FT: key = KAI.STR_FT[0] pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="2") @@ -617,21 +617,21 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="3") - if op_code in OpCodes.RW_FT_ONE_RW: + if op_code in OpCode.RW_FT_ONE_RW: key = KAI.RW_FT_ONE_RW[0] rw_pairs = [ - (oids.RW1_ID, RwSetIds.STATUS_SET_ID), - (oids.RW1_ID, RwSetIds.LAST_RESET), - (oids.RW1_ID, RwSetIds.TM_SET), - (oids.RW2_ID, RwSetIds.STATUS_SET_ID), - (oids.RW2_ID, RwSetIds.LAST_RESET), - (oids.RW2_ID, RwSetIds.TM_SET), - (oids.RW3_ID, RwSetIds.STATUS_SET_ID), - (oids.RW3_ID, RwSetIds.LAST_RESET), - (oids.RW3_ID, RwSetIds.TM_SET), - (oids.RW4_ID, RwSetIds.STATUS_SET_ID), - (oids.RW4_ID, RwSetIds.LAST_RESET), - (oids.RW4_ID, RwSetIds.TM_SET), + (oids.RW1_ID, RwSetId.STATUS_SET_ID), + (oids.RW1_ID, RwSetId.LAST_RESET), + (oids.RW1_ID, RwSetId.TM_SET), + (oids.RW2_ID, RwSetId.STATUS_SET_ID), + (oids.RW2_ID, RwSetId.LAST_RESET), + (oids.RW2_ID, RwSetId.TM_SET), + (oids.RW3_ID, RwSetId.STATUS_SET_ID), + (oids.RW3_ID, RwSetId.LAST_RESET), + (oids.RW3_ID, RwSetId.TM_SET), + (oids.RW4_ID, RwSetId.STATUS_SET_ID), + (oids.RW4_ID, RwSetId.LAST_RESET), + (oids.RW4_ID, RwSetId.TM_SET), ] diag_list = [ True, @@ -666,25 +666,25 @@ def pack_proc_commands(q: DefaultPusQueueHelper, op_code: str): pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="off") # ass command with 2 rws to speed - if op_code in OpCodes.RW_FT_TWO_RWS: + if op_code in OpCode.RW_FT_TWO_RWS: key = KAI.RW_FT_TWO_RWS[0] rw_pairs = [ - (oids.RW1_ID, RwSetIds.STATUS_SET_ID), - (oids.RW1_ID, RwSetIds.TEMPERATURE_SET_ID), - (oids.RW1_ID, RwSetIds.LAST_RESET), - (oids.RW1_ID, RwSetIds.TM_SET), - (oids.RW2_ID, RwSetIds.STATUS_SET_ID), - (oids.RW2_ID, RwSetIds.TEMPERATURE_SET_ID), - (oids.RW2_ID, RwSetIds.LAST_RESET), - (oids.RW2_ID, RwSetIds.TM_SET), - (oids.RW3_ID, RwSetIds.STATUS_SET_ID), - (oids.RW3_ID, RwSetIds.TEMPERATURE_SET_ID), - (oids.RW3_ID, RwSetIds.LAST_RESET), - (oids.RW3_ID, RwSetIds.TM_SET), - (oids.RW4_ID, RwSetIds.STATUS_SET_ID), - (oids.RW4_ID, RwSetIds.TEMPERATURE_SET_ID), - (oids.RW4_ID, RwSetIds.LAST_RESET), - (oids.RW4_ID, RwSetIds.TM_SET), + (oids.RW1_ID, RwSetId.STATUS_SET_ID), + (oids.RW1_ID, RwSetId.TEMPERATURE_SET_ID), + (oids.RW1_ID, RwSetId.LAST_RESET), + (oids.RW1_ID, RwSetId.TM_SET), + (oids.RW2_ID, RwSetId.STATUS_SET_ID), + (oids.RW2_ID, RwSetId.TEMPERATURE_SET_ID), + (oids.RW2_ID, RwSetId.LAST_RESET), + (oids.RW2_ID, RwSetId.TM_SET), + (oids.RW3_ID, RwSetId.STATUS_SET_ID), + (oids.RW3_ID, RwSetId.TEMPERATURE_SET_ID), + (oids.RW3_ID, RwSetId.LAST_RESET), + (oids.RW3_ID, RwSetId.TM_SET), + (oids.RW4_ID, RwSetId.STATUS_SET_ID), + (oids.RW4_ID, RwSetId.TEMPERATURE_SET_ID), + (oids.RW4_ID, RwSetId.LAST_RESET), + (oids.RW4_ID, RwSetId.TM_SET), ] diag_list = [ False, diff --git a/eive_tmtc/pus_tc/system/tcs.py b/eive_tmtc/pus_tc/system/tcs.py index 54896b8..6b3e67e 100644 --- a/eive_tmtc/pus_tc/system/tcs.py +++ b/eive_tmtc/pus_tc/system/tcs.py @@ -14,7 +14,7 @@ from eive_tmtc.tmtc.common import pack_mode_cmd_with_info from eive_tmtc.config.object_ids import TCS_BOARD_ASS_ID, TCS_CONTROLLER -class OpCodes: +class OpCode: TCS_BOARD_ASS_NORMAL = ["0", "normal"] TCS_BOARD_ASS_OFF = ["1", "off"] REQUEST_SENSOR_TEMP_SET = ["2", "temps"] @@ -26,7 +26,7 @@ class Info: TCS_BOARD_ASS_OFF = "Switching TCS board assembly off" -class SetIds(enum.IntEnum): +class SetId(enum.IntEnum): PRIMARY_SENSORS = 0 DEVICE_SENSORS = 1 SUS_TEMP_SENSORS = 2 @@ -36,14 +36,14 @@ class SetIds(enum.IntEnum): def add_tcs_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() oce.add( - keys=OpCodes.TCS_BOARD_ASS_NORMAL, + keys=OpCode.TCS_BOARD_ASS_NORMAL, info=Info.TCS_BOARD_ASS_NORMAL, ) oce.add( - keys=OpCodes.TCS_BOARD_ASS_OFF, + keys=OpCode.TCS_BOARD_ASS_OFF, info=Info.TCS_BOARD_ASS_OFF, ) - oce.add(keys=OpCodes.REQUEST_SENSOR_TEMP_SET, info=Info.REQUEST_SENSOR_TEMP_SET) + oce.add(keys=OpCode.REQUEST_SENSOR_TEMP_SET, info=Info.REQUEST_SENSOR_TEMP_SET) defs.add_service( name=CustomServiceList.TCS.value, info="TCS Board Assembly", @@ -52,15 +52,15 @@ def add_tcs_cmds(defs: TmtcDefinitionWrapper): def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCodes.REQUEST_SENSOR_TEMP_SET: - sensor_set_sid = make_sid(TCS_CONTROLLER, SetIds.PRIMARY_SENSORS) + if op_code in OpCode.REQUEST_SENSOR_TEMP_SET: + sensor_set_sid = make_sid(TCS_CONTROLLER, SetId.PRIMARY_SENSORS) q.add_log_cmd(Info.REQUEST_SENSOR_TEMP_SET) q.add_pus_tc(generate_one_hk_command(sensor_set_sid)) pack_tcs_ass_cmds(q, op_code) def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCodes.TCS_BOARD_ASS_NORMAL: + if op_code in OpCode.TCS_BOARD_ASS_NORMAL: pack_mode_cmd_with_info( object_id=TCS_BOARD_ASS_ID, mode=Modes.NORMAL, @@ -68,7 +68,7 @@ def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str): q=q, info=Info.TCS_BOARD_ASS_NORMAL, ) - if op_code in OpCodes.TCS_BOARD_ASS_OFF: + if op_code in OpCode.TCS_BOARD_ASS_OFF: pack_mode_cmd_with_info( object_id=TCS_BOARD_ASS_ID, mode=Modes.OFF, diff --git a/eive_tmtc/pus_tc/system/time.py b/eive_tmtc/pus_tc/system/time.py index 2853754..032b902 100644 --- a/eive_tmtc/pus_tc/system/time.py +++ b/eive_tmtc/pus_tc/system/time.py @@ -11,7 +11,7 @@ from tmtccmd.tc.decorator import ServiceProviderParams LOGGER = get_console_logger() -class OpCodes: +class OpCode: SET_CURRENT_TIME = ["0", "set-curr-time"] diff --git a/eive_tmtc/pus_tm/action_reply_handler.py b/eive_tmtc/pus_tm/action_reply_handler.py index 919878d..065bb4e 100644 --- a/eive_tmtc/pus_tm/action_reply_handler.py +++ b/eive_tmtc/pus_tm/action_reply_handler.py @@ -1,10 +1,10 @@ import struct from eive_tmtc.config.object_ids import * -from eive_tmtc.tmtc.acs.imtq import ImtqActionIds +from eive_tmtc.tmtc.acs.imtq import ImtqActionId from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.tmtc.payload.ploc_mpsoc import PlocReplyIds -from eive_tmtc.tmtc.payload.ploc_supervisor import SupvActionIds -from eive_tmtc.pus_tc.devs.star_tracker import StarTrackerActionIds +from eive_tmtc.tmtc.payload.ploc_supervisor import SupvActionId +from eive_tmtc.pus_tc.devs.star_tracker import StarTrackerActionId from eive_tmtc.tmtc.power.tm import handle_get_param_data_reply from tmtccmd.logging import get_console_logger from tmtccmd.tm import Service8FsfwTm @@ -52,7 +52,7 @@ def handle_action_reply( def handle_imtq_replies( action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray ): - if action_id == struct.unpack("!I", ImtqActionIds.get_commanded_dipole)[0]: + if action_id == struct.unpack("!I", ImtqActionId.get_commanded_dipole)[0]: header_list = [ "Commanded X-Dipole", "Commanded Y-Dipole", @@ -99,14 +99,14 @@ def handle_ploc_replies( def handle_supervisor_replies( action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray ): - if action_id == SupvActionIds.DUMP_MRAM: + if action_id == SupvActionId.DUMP_MRAM: header_list = ["MRAM Dump"] content_list = [custom_data[: len(custom_data)]] print(header_list) print(content_list) printer.file_logger.info(header_list) printer.file_logger.info(content_list) - elif action_id == SupvActionIds.READ_GPIO: + elif action_id == SupvActionId.READ_GPIO: header_list = ["GPIO state"] content_list = [struct.unpack("!H", custom_data[:2])[0]] print(header_list) @@ -118,7 +118,7 @@ def handle_supervisor_replies( def handle_startracker_replies( action_id: int, printer: FsfwTmTcPrinter, custom_data: bytearray ): - if action_id == StarTrackerActionIds.CHECKSUM: + if action_id == StarTrackerActionId.CHECKSUM: if len(custom_data) != 5: LOGGER.warning( "Star tracker reply has invalid length {0}".format(len(custom_data)) diff --git a/eive_tmtc/pus_tm/devs/bpx_bat.py b/eive_tmtc/pus_tm/devs/bpx_bat.py index 801daca..cb03362 100644 --- a/eive_tmtc/pus_tm/devs/bpx_bat.py +++ b/eive_tmtc/pus_tm/devs/bpx_bat.py @@ -1,6 +1,6 @@ import struct -from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetIds +from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetId from eive_tmtc.pus_tm.defs import PrintWrapper from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter @@ -21,7 +21,7 @@ HEADER_LIST = [ def handle_bpx_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): pw = PrintWrapper(printer) - if set_id == BpxSetIds.GET_HK_SET: + if set_id == BpxSetId.GET_HK_SET: fmt_str = "!HHHHhhhhIB" inc_len = struct.calcsize(fmt_str) ( @@ -52,7 +52,7 @@ def handle_bpx_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): pw.dlog(str(HEADER_LIST)) pw.dlog(str(content_list)) printer.print_validity_buffer(validity_buffer=validity_buffer, num_vars=10) - elif set_id == BpxSetIds.GET_CFG_SET: + elif set_id == BpxSetId.GET_CFG_SET: battheat_mode = hk_data[0] battheat_low = struct.unpack("!b", hk_data[1:2])[0] battheat_high = struct.unpack("!b", hk_data[2:3])[0] diff --git a/eive_tmtc/pus_tm/devs/gyros.py b/eive_tmtc/pus_tm/devs/gyros.py index 1926a4f..923d1a5 100644 --- a/eive_tmtc/pus_tm/devs/gyros.py +++ b/eive_tmtc/pus_tm/devs/gyros.py @@ -4,7 +4,7 @@ from eive_tmtc.pus_tm.defs import PrintWrapper from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter -from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetIds, AdisGyroSetIds +from eive_tmtc.pus_tc.devs.gyros import L3gGyroSetId, AdisGyroSetId import eive_tmtc.config.object_ids as obj_ids @@ -30,7 +30,7 @@ def handle_gyros_hk_data( def handle_adis_gyro_hk( object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes ): - if set_id == AdisGyroSetIds.CORE_HK: + if set_id == AdisGyroSetId.CORE_HK: pw = PrintWrapper(printer) fmt_str = "!ddddddf" inc_len = struct.calcsize(fmt_str) @@ -44,7 +44,7 @@ def handle_adis_gyro_hk( ) pw.dlog(f"Acceleration (m/s^2): X {accelX} | Y {accelY} | Z {accelZ}") pw.dlog(f"Temperature {temp} C") - if set_id == AdisGyroSetIds.CFG_HK: + if set_id == AdisGyroSetId.CFG_HK: pw = PrintWrapper(printer) fmt_str = "!HBHH" inc_len = struct.calcsize(fmt_str) @@ -60,7 +60,7 @@ def handle_adis_gyro_hk( def handle_l3g_gyro_hk( object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes ): - if set_id == L3gGyroSetIds.CORE_HK: + if set_id == L3gGyroSetId.CORE_HK: pw = PrintWrapper(printer) fmt_str = "!ffff" inc_len = struct.calcsize(fmt_str) diff --git a/eive_tmtc/pus_tm/devs/mgms.py b/eive_tmtc/pus_tm/devs/mgms.py index ce0c1bc..86391ba 100644 --- a/eive_tmtc/pus_tm/devs/mgms.py +++ b/eive_tmtc/pus_tm/devs/mgms.py @@ -1,7 +1,7 @@ import struct from eive_tmtc.pus_tm.defs import PrintWrapper -from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetIds, MgmLis3SetIds +from eive_tmtc.pus_tc.devs.mgms import MgmRm3100SetId, MgmLis3SetId from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter import eive_tmtc.config.object_ids as obj_ids @@ -26,7 +26,7 @@ def handle_mgm_hk_data( def handle_mgm_lis3_hk_data( object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes ): - if set_id == MgmLis3SetIds.CORE_HK: + if set_id == MgmLis3SetId.CORE_HK: pw = PrintWrapper(printer) fmt_str = "!ffff" inc_len = struct.calcsize(fmt_str) @@ -43,7 +43,7 @@ def handle_mgm_lis3_hk_data( def handle_mgm_rm3100_hk_data( object_id: ObjectIdU32, printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes ): - if set_id == MgmRm3100SetIds.CORE_HK: + if set_id == MgmRm3100SetId.CORE_HK: pw = PrintWrapper(printer) fmt_str = f"!fff" inc_len = struct.calcsize(fmt_str) diff --git a/eive_tmtc/pus_tm/devs/plpcdu.py b/eive_tmtc/pus_tm/devs/plpcdu.py index bcfd0f1..710149f 100644 --- a/eive_tmtc/pus_tm/devs/plpcdu.py +++ b/eive_tmtc/pus_tm/devs/plpcdu.py @@ -2,7 +2,7 @@ import struct from eive_tmtc.pus_tm.defs import PrintWrapper from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter -from eive_tmtc.pus_tc.devs.plpcdu import SetIds +from eive_tmtc.pus_tc.devs.plpcdu import SetId ADC_CHANNELS_NAMED = [ @@ -22,7 +22,7 @@ ADC_CHANNELS_NAMED = [ def handle_plpcdu_hk(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): - if set_id == SetIds.ADC: + if set_id == SetId.ADC: pw = PrintWrapper(printer) current_idx = 0 pw.dlog("Received PL PCDU ADC HK data") diff --git a/eive_tmtc/pus_tm/devs/rad_sensor.py b/eive_tmtc/pus_tm/devs/rad_sensor.py index 4123f70..e86fb70 100644 --- a/eive_tmtc/pus_tm/devs/rad_sensor.py +++ b/eive_tmtc/pus_tm/devs/rad_sensor.py @@ -2,11 +2,11 @@ import struct from eive_tmtc.pus_tm.defs import PrintWrapper from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter -from eive_tmtc.pus_tc.devs.rad_sensor import SetIds +from eive_tmtc.pus_tc.devs.rad_sensor import SetId def handle_rad_sensor_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): - if set_id == SetIds.HK: + if set_id == SetId.HK: pw = PrintWrapper(printer) current_idx = 0 pw.dlog("Received Radiation Sensor HK data") diff --git a/eive_tmtc/pus_tm/devs/sus.py b/eive_tmtc/pus_tm/devs/sus.py index 6cd60e6..d55521c 100644 --- a/eive_tmtc/pus_tm/devs/sus.py +++ b/eive_tmtc/pus_tm/devs/sus.py @@ -1,7 +1,7 @@ import struct from eive_tmtc.pus_tm.defs import PrintWrapper -from eive_tmtc.pus_tc.devs.sus import SetIds +from eive_tmtc.pus_tc.devs.sus import SetId from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter @@ -11,7 +11,7 @@ def handle_sus_hk( ): pw = PrintWrapper(printer) pw.dlog(f"Received SUS HK data from {object_id}") - if set_id == SetIds.HK: + if set_id == SetId.HK: current_idx = 0 temperature = struct.unpack("!f", hk_data[current_idx : current_idx + 4])[0] current_idx += 4 diff --git a/eive_tmtc/pus_tm/devs/syrlinks.py b/eive_tmtc/pus_tm/devs/syrlinks.py index efa5535..2a243a1 100644 --- a/eive_tmtc/pus_tm/devs/syrlinks.py +++ b/eive_tmtc/pus_tm/devs/syrlinks.py @@ -1,14 +1,14 @@ import struct from eive_tmtc.pus_tm.defs import PrintWrapper -from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetIds +from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import SetId from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter def handle_syrlinks_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): - if set_id == SetIds.RX_REGISTERS_DATASET: + if set_id == SetId.RX_REGISTERS_DATASET: return handle_syrlinks_rx_registers_dataset(printer, hk_data) - elif set_id == SetIds.TX_REGISTERS_DATASET: + elif set_id == SetId.TX_REGISTERS_DATASET: return handle_syrlinks_tx_registers_dataset(printer, hk_data) else: pw = PrintWrapper(printer) diff --git a/eive_tmtc/pus_tm/event_handler.py b/eive_tmtc/pus_tm/event_handler.py index add971a..c212a7d 100644 --- a/eive_tmtc/pus_tm/event_handler.py +++ b/eive_tmtc/pus_tm/event_handler.py @@ -4,7 +4,7 @@ from eive_tmtc.config.events import get_event_dict from eive_tmtc.config.object_ids import get_object_ids from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.pus_tm.verification_handler import generic_retval_printout -from eive_tmtc.tmtc.acs.acs_subsystem import AcsModes +from eive_tmtc.tmtc.acs.acs_subsystem import AcsMode from tmtccmd.tc.pus_200_fsfw_modes import Modes from tmtccmd.tm import Service5Tm @@ -57,13 +57,13 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): if obj_name == "ACS_SUBSYSTEM": if tm.param_1 == Modes.OFF: mode_name = "Off" - elif tm.param_1 == AcsModes.IDLE: + elif tm.param_1 == AcsMode.IDLE: mode_name = "Idle" - elif tm.param_1 == AcsModes.DETUMBLE: + elif tm.param_1 == AcsMode.DETUMBLE: mode_name = "Detumble" - elif tm.param_1 == AcsModes.SAFE: + elif tm.param_1 == AcsMode.SAFE: mode_name = "Safe" - elif tm.param_1 == AcsModes.TARGET_PT: + elif tm.param_1 == AcsMode.TARGET_PT: mode_name = "Target Pointing" else: if tm.param_1 == Modes.OFF: diff --git a/eive_tmtc/pus_tm/hk_handling.py b/eive_tmtc/pus_tm/hk_handling.py index fd18ea0..b7d7283 100644 --- a/eive_tmtc/pus_tm/hk_handling.py +++ b/eive_tmtc/pus_tm/hk_handling.py @@ -25,7 +25,7 @@ from eive_tmtc.tmtc.power.tm import ( ) from eive_tmtc.pus_tm.devs.syrlinks import handle_syrlinks_hk_data from eive_tmtc.tmtc.acs.imtq import ( - ImtqSetIds, + ImtqSetId, handle_self_test_data, handle_eng_set, handle_calibrated_mtm_measurement, @@ -95,15 +95,15 @@ def handle_regular_hk_print( elif objb == obj_ids.SYRLINKS_HANDLER_ID: handle_syrlinks_hk_data(printer=printer, hk_data=hk_data, set_id=set_id) elif objb == obj_ids.IMTQ_HANDLER_ID: - if (set_id >= ImtqSetIds.POSITIVE_X_TEST) and ( - set_id <= ImtqSetIds.NEGATIVE_Z_TEST + if (set_id >= ImtqSetId.POSITIVE_X_TEST) and ( + set_id <= ImtqSetId.NEGATIVE_Z_TEST ): return handle_self_test_data(printer, hk_data) - elif set_id == ImtqSetIds.ENG_HK_SET: + elif set_id == ImtqSetId.ENG_HK_SET: return handle_eng_set(printer, hk_data) - elif set_id == ImtqSetIds.CAL_MTM_SET: + elif set_id == ImtqSetId.CAL_MTM_SET: return handle_calibrated_mtm_measurement(printer, hk_data) - elif set_id == ImtqSetIds.RAW_MTM_SET: + elif set_id == ImtqSetId.RAW_MTM_SET: return handle_raw_mtm_measurement(printer, hk_data) else: LOGGER.info("Service 3 TM: IMTQ handler reply with unknown set id") diff --git a/eive_tmtc/pus_tm/system/tcs.py b/eive_tmtc/pus_tm/system/tcs.py index 687e2cc..0a51e8c 100644 --- a/eive_tmtc/pus_tm/system/tcs.py +++ b/eive_tmtc/pus_tm/system/tcs.py @@ -7,7 +7,7 @@ from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter -class SetIds(enum.IntEnum): +class SetId(enum.IntEnum): SENSOR_TEMPERATURE_SET = 0 DEVICE_TEMPERATURE_SET = 1 SUS_TEMPERATURE_SET = 2 @@ -23,7 +23,7 @@ def handle_thermal_controller_hk_data( if TCP_TEMP_DEV_SERVER: TCP_TEMP_DEV_SERVER = TmTcpServer("localhost", 7306) """ - if set_id == SetIds.SENSOR_TEMPERATURE_SET: + if set_id == SetId.SENSOR_TEMPERATURE_SET: pw = PrintWrapper(printer) pw.dlog("Received sensor temperature data") @@ -58,7 +58,7 @@ def handle_thermal_controller_hk_data( # tcp_server_sensor_temperatures.report_parsed_hk_data( # object_id, set_id, parsed_data # ) - elif set_id == SetIds.DEVICE_TEMPERATURE_SET: + elif set_id == SetId.DEVICE_TEMPERATURE_SET: pw = PrintWrapper(printer) pw.dlog("Received device temperature data") fmt_str = "!fhhhhiiiifffhffffffffffffff" @@ -99,7 +99,7 @@ def handle_thermal_controller_hk_data( # tcp_server_device_temperatures.report_parsed_hk_data( # object_id, set_id, parsed_data # ) - elif set_id == SetIds.SUS_TEMPERATURE_SET: + elif set_id == SetId.SUS_TEMPERATURE_SET: pass # pw = PrintWrapper(printer) # pw.dlog("Received SUS temperature data") diff --git a/eive_tmtc/tmtc/acs/acs_board.py b/eive_tmtc/tmtc/acs/acs_board.py index 703b335..5b44c8a 100644 --- a/eive_tmtc/tmtc/acs/acs_board.py +++ b/eive_tmtc/tmtc/acs/acs_board.py @@ -24,7 +24,7 @@ class AcsOpCodes: ACS_ASS_DUAL_ON = ["6", "do"] -class DualSideSubmodes(enum.IntEnum): +class DualSideSubmode(enum.IntEnum): A_SIDE = 0 B_SIDE = 1 DUAL_SIDE = 2 @@ -35,7 +35,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Modes.NORMAL, - submode=DualSideSubmodes.A_SIDE, + submode=DualSideSubmode.A_SIDE, q=q, info="Switching to ACS board assembly A side", ) @@ -43,7 +43,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Modes.NORMAL, - submode=DualSideSubmodes.B_SIDE, + submode=DualSideSubmode.B_SIDE, q=q, info="Switching to ACS board assembly B side", ) @@ -51,7 +51,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Modes.NORMAL, - submode=DualSideSubmodes.DUAL_SIDE, + submode=DualSideSubmode.DUAL_SIDE, q=q, info="Switching to ACS board assembly dual mode", ) @@ -59,7 +59,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Modes.ON, - submode=DualSideSubmodes.A_SIDE, + submode=DualSideSubmode.A_SIDE, q=q, info="Switching ACS board assembly A side on", ) @@ -67,7 +67,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Modes.ON, - submode=DualSideSubmodes.B_SIDE, + submode=DualSideSubmode.B_SIDE, q=q, info="Switching ACS board assembly B side on", ) @@ -75,7 +75,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Modes.ON, - submode=DualSideSubmodes.B_SIDE, + submode=DualSideSubmode.B_SIDE, q=q, info="Switching ACS board assembly dual side on", ) diff --git a/eive_tmtc/tmtc/acs/acs_subsystem.py b/eive_tmtc/tmtc/acs/acs_subsystem.py index 0637562..26d2ba2 100644 --- a/eive_tmtc/tmtc/acs/acs_subsystem.py +++ b/eive_tmtc/tmtc/acs/acs_subsystem.py @@ -15,7 +15,7 @@ from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams -class OpCodes(str, enum.Enum): +class OpCode(str, enum.Enum): OFF = "off" SAFE = "safe" DETUMBLE = "detumble" @@ -24,7 +24,7 @@ class OpCodes(str, enum.Enum): REPORT_ALL_MODES = "all_modes" -class AcsModes(enum.IntEnum): +class AcsMode(enum.IntEnum): OFF = 0 SAFE = 1 << 24 DETUMBLE = 2 << 24 @@ -42,10 +42,10 @@ class Info(str, enum.Enum): HANDLER_LIST: Dict[str, Tuple[int, str]] = { - OpCodes.OFF: (AcsModes.OFF, Info.OFF), - OpCodes.IDLE: (AcsModes.IDLE, Info.IDLE), - OpCodes.SAFE: (AcsModes.SAFE, Info.SAFE), - OpCodes.DETUMBLE: (AcsModes.DETUMBLE, Info.DETUMBLE), + OpCode.OFF: (AcsMode.OFF, Info.OFF), + OpCode.IDLE: (AcsMode.IDLE, Info.IDLE), + OpCode.SAFE: (AcsMode.SAFE, Info.SAFE), + OpCode.DETUMBLE: (AcsMode.DETUMBLE, Info.DETUMBLE), } @@ -54,7 +54,7 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams): op_code = p.op_code q = p.queue_helper info_prefix = "ACS Subsystem" - if op_code in OpCodes.REPORT_ALL_MODES: + if op_code in OpCode.REPORT_ALL_MODES: q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}") q.add_pus_tc( PusTelecommand( @@ -78,8 +78,8 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams): @tmtc_definitions_provider def add_acs_subsystem_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCodes.OFF, Info.OFF) - oce.add(OpCodes.SAFE, Info.SAFE) - oce.add(OpCodes.IDLE, Info.IDLE) - oce.add(OpCodes.REPORT_ALL_MODES, Info.REPORT_ALL_MODES) + oce.add(OpCode.OFF, Info.OFF) + oce.add(OpCode.SAFE, Info.SAFE) + oce.add(OpCode.IDLE, Info.IDLE) + oce.add(OpCode.REPORT_ALL_MODES, Info.REPORT_ALL_MODES) defs.add_service(CustomServiceList.ACS_SS, "ACS Subsystem", oce) diff --git a/eive_tmtc/tmtc/acs/imtq.py b/eive_tmtc/tmtc/acs/imtq.py index 8d4deec..6cef46d 100644 --- a/eive_tmtc/tmtc/acs/imtq.py +++ b/eive_tmtc/tmtc/acs/imtq.py @@ -27,14 +27,14 @@ from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter -class OpCodes: +class OpCode: ON = ["on"] NORMAL = ["normal"] OFF = ["off"] SET_DIPOLE = ["set_dipole"] -class ImtqSetIds: +class ImtqSetId: ENG_HK_SET = 1 CAL_MTM_SET = 2 RAW_MTM_SET = 3 @@ -46,7 +46,7 @@ class ImtqSetIds: NEGATIVE_Z_TEST = 9 -class ImtqActionIds: +class ImtqActionId: start_actuation_dipole = bytearray([0x0, 0x0, 0x0, 0x02]) get_commanded_dipole = bytearray([0x0, 0x0, 0x0, 0x03]) perform_positive_x_test = bytearray([0x0, 0x0, 0x0, 0x07]) @@ -63,16 +63,16 @@ class ImtqActionIds: @tmtc_definitions_provider def add_imtq_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCodes.OFF, "Mode Off") - oce.add(OpCodes.ON, "Mode On") - oce.add(OpCodes.NORMAL, "Mode Normal") + oce.add(OpCode.OFF, "Mode Off") + oce.add(OpCode.ON, "Mode On") + oce.add(OpCode.NORMAL, "Mode Normal") oce.add("3", "IMTQ perform pos X self test") oce.add("4", "IMTQ perform neg X self test") oce.add("5", "IMTQ perform pos Y self test") oce.add("6", "IMTQ perform neg Y self test") oce.add("7", "IMTQ perform pos Z self test") oce.add("8", "IMTQ perform neg Z self test") - oce.add(OpCodes.SET_DIPOLE, "IMTQ command dipole") + oce.add(OpCode.SET_DIPOLE, "IMTQ command dipole") oce.add("10", "IMTQ get commanded dipole") oce.add("11", "IMTQ get engineering hk set") oce.add("12", "IMTQ get calibrated MTM measurement one shot") @@ -85,92 +85,92 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod f"Testing ISIS IMTQ handler with object id: {object_id.as_hex_string}" ) - if op_code in OpCodes.OFF: + if op_code in OpCode.OFF: q.add_log_cmd("IMTQ: Set mode off") command = pack_mode_data(object_id.as_bytes, Modes.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) - if op_code in OpCodes.ON: + if op_code in OpCode.ON: q.add_log_cmd("IMTQ: Set mode on") command = pack_mode_data(object_id.as_bytes, Modes.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) - if op_code in OpCodes.NORMAL: + if op_code in OpCode.NORMAL: q.add_log_cmd("IMTQ: Mode Normal") command = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code == "3": q.add_log_cmd("IMTQ: Perform positive x self test") - command = object_id.as_bytes + ImtqActionIds.perform_positive_x_test + command = object_id.as_bytes + ImtqActionId.perform_positive_x_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Initiate reading of positive x self test results") - command = object_id.as_bytes + ImtqActionIds.read_self_test_results + command = object_id.as_bytes + ImtqActionId.read_self_test_results q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Request dataset with positive x self test results") - sid = make_sid(object_id.as_bytes, ImtqSetIds.POSITIVE_X_TEST) + sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_X_TEST) q.add_pus_tc(generate_one_hk_command(sid)) if op_code == "4": q.add_log_cmd("IMTQ: Perform negative x self test") - command = object_id.as_bytes + ImtqActionIds.perform_negative_x_test + command = object_id.as_bytes + ImtqActionId.perform_negative_x_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Initiate reading of negative x self test results") - command = object_id.as_bytes + ImtqActionIds.read_self_test_results + command = object_id.as_bytes + ImtqActionId.read_self_test_results q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Request dataset with negative x self test results") - sid = make_sid(object_id.as_bytes, ImtqSetIds.NEGATIVE_X_TEST) + sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_X_TEST) q.add_pus_tc(generate_one_hk_command(sid)) if op_code == "5": q.add_log_cmd("IMTQ: Perform positive y self test") - command = object_id.as_bytes + ImtqActionIds.perform_positive_y_test + command = object_id.as_bytes + ImtqActionId.perform_positive_y_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Initiate reading of positive y self test results") - command = object_id.as_bytes + ImtqActionIds.read_self_test_results + command = object_id.as_bytes + ImtqActionId.read_self_test_results q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Request dataset with positive y self test results") - sid = make_sid(object_id.as_bytes, ImtqSetIds.POSITIVE_Y_TEST) + sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_Y_TEST) q.add_pus_tc(generate_one_hk_command(sid)) if op_code == "6": q.add_log_cmd("IMTQ: Perform negative y self test") - command = object_id.as_bytes + ImtqActionIds.perform_negative_y_test + command = object_id.as_bytes + ImtqActionId.perform_negative_y_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Initiate reading of negative y self test results") - command = object_id.as_bytes + ImtqActionIds.read_self_test_results + command = object_id.as_bytes + ImtqActionId.read_self_test_results q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Request dataset with negative y self test results") - sid = make_sid(object_id.as_bytes, ImtqSetIds.NEGATIVE_Y_TEST) + sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_Y_TEST) q.add_pus_tc(generate_one_hk_command(sid)) if op_code == "7": q.add_log_cmd("IMTQ: Perform positive z self test") - command = object_id.as_bytes + ImtqActionIds.perform_positive_z_test + command = object_id.as_bytes + ImtqActionId.perform_positive_z_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Initiate reading of positive z self test results") - command = object_id.as_bytes + ImtqActionIds.read_self_test_results + command = object_id.as_bytes + ImtqActionId.read_self_test_results q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Request dataset with positive z self test results") - sid = make_sid(object_id.as_bytes, ImtqSetIds.POSITIVE_Y_TEST) + sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_Y_TEST) q.add_pus_tc(generate_one_hk_command(sid)) if op_code == "8": q.add_log_cmd("IMTQ: Perform negative z self test") - command = object_id.as_bytes + ImtqActionIds.perform_negative_z_test + command = object_id.as_bytes + ImtqActionId.perform_negative_z_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Initiate reading of negative z self test results") - command = object_id.as_bytes + ImtqActionIds.read_self_test_results + command = object_id.as_bytes + ImtqActionId.read_self_test_results q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_log_cmd("IMTQ: Request dataset with negative z self test results") - sid = make_sid(object_id.as_bytes, ImtqSetIds.NEGATIVE_Z_TEST) + sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_Z_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code in OpCodes.SET_DIPOLE: + if op_code in OpCode.SET_DIPOLE: x_dipole = int(input("Specify X dipole [range [0, 2000] * 10^-4 * Am^2]: ")) y_dipole = int(input("Specify Y dipole [range [0, 2000] * 10^-4 * Am^2]: ")) z_dipole = int(input("Specify Z dipole [range [0, 2000] * 10^-4 * Am^2]: ")) @@ -192,14 +192,14 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod if op_code == "10": q.add_log_cmd("IMTQ: Get commanded dipole") - command = object_id.as_bytes + ImtqActionIds.get_commanded_dipole + command = object_id.as_bytes + ImtqActionId.get_commanded_dipole q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "11": q.add_log_cmd("IMTQ: Get engineering hk set") q.add_pus_tc( generate_one_diag_command( - sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetIds.ENG_HK_SET) + sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetId.ENG_HK_SET) ) ) @@ -207,9 +207,7 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod q.add_log_cmd("IMTQ: Get calibrated MTM hk set") q.add_pus_tc( generate_one_diag_command( - sid=make_sid( - object_id=object_id.as_bytes, set_id=ImtqSetIds.CAL_MTM_SET - ) + sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetId.CAL_MTM_SET) ) ) @@ -217,9 +215,7 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod q.add_log_cmd("IMTQ: Get raw MTM hk set") q.add_pus_tc( generate_one_diag_command( - sid=make_sid( - object_id=object_id.as_bytes, set_id=ImtqSetIds.RAW_MTM_SET - ) + sid=make_sid(object_id=object_id.as_bytes, set_id=ImtqSetId.RAW_MTM_SET) ) ) @@ -236,7 +232,7 @@ def pack_dipole_command( When set to 0, the dipole will be generated until a new dipole actuation command is sent. """ - action_id = ImtqActionIds.start_actuation_dipole + action_id = ImtqActionId.start_actuation_dipole command = object_id + action_id x_dipole = int(round(x_dipole)) y_dipole = int(round(y_dipole)) diff --git a/eive_tmtc/tmtc/acs/reaction_wheels.py b/eive_tmtc/tmtc/acs/reaction_wheels.py index 6895e57..1fb5189 100644 --- a/eive_tmtc/tmtc/acs/reaction_wheels.py +++ b/eive_tmtc/tmtc/acs/reaction_wheels.py @@ -26,7 +26,7 @@ from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter -class OpCodesDevs: +class OpCodesDev: SPEED = ["0", "speed"] ON = ["1", "on"] NML = ["2", "nml"] @@ -37,7 +37,7 @@ class OpCodesDevs: DISABLE_STATUS_HK = ["7", "disable_status_hk"] -class InfoDevs: +class InfoDev: SPEED = "Set speed" ON = "Set On" NML = "Set Normal" @@ -64,14 +64,14 @@ class InfoAss: ALL_SPEED_OFF = "Speed down to 0" -class RwSetIds: +class RwSetId: STATUS_SET_ID = 4 TEMPERATURE_SET_ID = 8 LAST_RESET = 2 TM_SET = 9 -class RwCommandIds: +class RwCommandId: RESET_MCU = bytearray([0x0, 0x0, 0x0, 0x01]) # Reads status information from reaction wheel into dataset with id 4 GET_RW_STATUS = bytearray([0x0, 0x0, 0x0, 0x04]) @@ -94,14 +94,14 @@ class RampTime: @tmtc_definitions_provider def add_rw_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(info=InfoDevs.SPEED, keys=OpCodesDevs.SPEED) - oce.add(info=InfoDevs.ON, keys=OpCodesDevs.ON) - oce.add(info=InfoDevs.OFF, keys=OpCodesDevs.OFF) - oce.add(info=InfoDevs.NML, keys=OpCodesDevs.NML) - oce.add(info=InfoDevs.GET_STATUS, keys=OpCodesDevs.GET_STATUS) - oce.add(info=InfoDevs.GET_TM, keys=OpCodesDevs.GET_TM) - oce.add(info=InfoDevs.ENABLE_STATUS_HK, keys=OpCodesDevs.ENABLE_STATUS_HK) - oce.add(info=InfoDevs.DISABLE_STATUS_HK, keys=OpCodesDevs.DISABLE_STATUS_HK) + oce.add(info=InfoDev.SPEED, keys=OpCodesDev.SPEED) + oce.add(info=InfoDev.ON, keys=OpCodesDev.ON) + oce.add(info=InfoDev.OFF, keys=OpCodesDev.OFF) + oce.add(info=InfoDev.NML, keys=OpCodesDev.NML) + oce.add(info=InfoDev.GET_STATUS, keys=OpCodesDev.GET_STATUS) + oce.add(info=InfoDev.GET_TM, keys=OpCodesDev.GET_TM) + oce.add(info=InfoDev.ENABLE_STATUS_HK, keys=OpCodesDev.ENABLE_STATUS_HK) + oce.add(info=InfoDev.DISABLE_STATUS_HK, keys=OpCodesDev.DISABLE_STATUS_HK) defs.add_service( name=CustomServiceList.REACTION_WHEEL_1.value, info="Reaction Wheel 1", @@ -138,56 +138,56 @@ def add_rw_cmds(defs: TmtcDefinitionWrapper): def pack_single_rw_test_into( object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, op_code: str ): - if op_code in OpCodesDevs.SPEED: + if op_code in OpCodesDev.SPEED: speed, ramp_time = prompt_speed_ramp_time() q.add_log_cmd( - f"RW {rw_idx}: {InfoDevs.SPEED} with target " + f"RW {rw_idx}: {InfoDev.SPEED} with target " f"speed {speed / 10.0} RPM and {ramp_time} ms ramp time" ) q.add_pus_tc(pack_set_speed_command(object_id, speed, ramp_time)) - if op_code in OpCodesDevs.ON: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.ON}") + if op_code in OpCodesDev.ON: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ON}") mode_data = pack_mode_data(object_id, Modes.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) - if op_code in OpCodesDevs.NML: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.NML}") + if op_code in OpCodesDev.NML: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.NML}") mode_data = pack_mode_data(object_id, Modes.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) - if op_code in OpCodesDevs.OFF: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.OFF}") + if op_code in OpCodesDev.OFF: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.OFF}") mode_data = pack_mode_data(object_id, Modes.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) - if op_code in OpCodesDevs.GET_TM: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.GET_TM}") + if op_code in OpCodesDev.GET_TM: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_TM}") q.add_pus_tc( generate_one_hk_command( - sid=make_sid(object_id=object_id, set_id=RwSetIds.TM_SET) + sid=make_sid(object_id=object_id, set_id=RwSetId.TM_SET) ) ) - if op_code in OpCodesDevs.GET_STATUS: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.GET_STATUS}") + if op_code in OpCodesDev.GET_STATUS: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_STATUS}") q.add_pus_tc( generate_one_diag_command( - sid=make_sid(object_id=object_id, set_id=RwSetIds.STATUS_SET_ID) + sid=make_sid(object_id=object_id, set_id=RwSetId.STATUS_SET_ID) ) ) - if op_code in OpCodesDevs.ENABLE_STATUS_HK: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.ENABLE_STATUS_HK}") + if op_code in OpCodesDev.ENABLE_STATUS_HK: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ENABLE_STATUS_HK}") interval = float(input("Please enter HK interval in floating point seconds: ")) cmds = enable_periodic_hk_command_with_interval( - True, make_sid(object_id, RwSetIds.STATUS_SET_ID), interval + True, make_sid(object_id, RwSetId.STATUS_SET_ID), interval ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCodesDevs.DISABLE_STATUS_HK: - q.add_log_cmd(f"RW {rw_idx}: {InfoDevs.DISABLE_STATUS_HK}") + if op_code in OpCodesDev.DISABLE_STATUS_HK: + q.add_log_cmd(f"RW {rw_idx}: {InfoDev.DISABLE_STATUS_HK}") q.add_pus_tc( disable_periodic_hk_command( - True, make_sid(object_id, RwSetIds.STATUS_SET_ID) + True, make_sid(object_id, RwSetId.STATUS_SET_ID) ) ) @@ -264,7 +264,7 @@ def pack_set_speed_command( ramp_time_ms > 0 and (ramp_time_ms > 20000 or ramp_time_ms < 10) ): raise ValueError("Invalid Ramp Speed time. Allowed range is [10-20000] ms") - command_id = RwCommandIds.SET_SPEED + command_id = RwCommandId.SET_SPEED command = bytearray() command += object_id + command_id command = command + struct.pack("!i", speed) @@ -279,7 +279,7 @@ def handle_rw_hk_data( pw = PrintWrapper(printer) current_idx = 0 - if set_id == RwSetIds.STATUS_SET_ID: + if set_id == RwSetId.STATUS_SET_ID: pw.dlog( f"Received Status HK (ID {set_id}) from Reaction Wheel {object_id.name}" ) @@ -303,7 +303,7 @@ def handle_rw_hk_data( f"1: High Current Mode (0.6 A)" ) printer.print_validity_buffer(hk_data[current_idx:], 5) - if set_id == RwSetIds.LAST_RESET: + if set_id == RwSetId.LAST_RESET: pw.dlog( f"Received Last Reset HK (ID {set_id}) from Reaction Wheel {object_id.name}" ) @@ -317,7 +317,7 @@ def handle_rw_hk_data( f"Last Non-Cleared (Cached) Reset Status {last_not_cleared_reset_status} | " f"Current Reset Status {current_reset_status}" ) - if set_id == RwSetIds.TM_SET: + if set_id == RwSetId.TM_SET: pw.dlog(f"Received TM HK (ID {set_id}) from Reaction Wheel {object_id.name}") fmt_str = "!BiffBBiiIIIIIIIIIIIIIIII" inc_len = struct.calcsize(fmt_str) diff --git a/eive_tmtc/tmtc/acs/sus_board.py b/eive_tmtc/tmtc/acs/sus_board.py index 735bf50..9cdf4c9 100644 --- a/eive_tmtc/tmtc/acs/sus_board.py +++ b/eive_tmtc/tmtc/acs/sus_board.py @@ -1,6 +1,6 @@ from eive_tmtc.config.definitions import CustomServiceList from eive_tmtc.config.object_ids import SUS_BOARD_ASS_ID -from eive_tmtc.tmtc.acs.acs_board import DualSideSubmodes +from eive_tmtc.tmtc.acs.acs_board import DualSideSubmode from eive_tmtc.tmtc.common import pack_mode_cmd_with_info from tmtccmd.config.tmtc import ( tmtc_definitions_provider, @@ -12,7 +12,7 @@ from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_200_fsfw_modes import Modes -class SusOpCodes: +class SusOpCode: SUS_ASS_NOM_SIDE = ["0", "nom"] SUS_ASS_RED_SIDE = ["1", "red"] SUS_ASS_DUAL_MODE = ["2", "dual"] @@ -20,23 +20,23 @@ class SusOpCodes: def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str): - if op_code in SusOpCodes.SUS_ASS_NOM_SIDE: + if op_code in SusOpCode.SUS_ASS_NOM_SIDE: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, mode=Modes.NORMAL, - submode=DualSideSubmodes.A_SIDE, + submode=DualSideSubmode.A_SIDE, q=q, info="Switching to SUS board to nominal side", ) - if op_code in SusOpCodes.SUS_ASS_RED_SIDE: + if op_code in SusOpCode.SUS_ASS_RED_SIDE: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, mode=Modes.NORMAL, - submode=DualSideSubmodes.B_SIDE, + submode=DualSideSubmode.B_SIDE, q=q, info="Switching to SUS board to redundant side", ) - if op_code in SusOpCodes.SUS_ASS_OFF: + if op_code in SusOpCode.SUS_ASS_OFF: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, mode=Modes.OFF, @@ -44,11 +44,11 @@ def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching SUS board off", ) - if op_code in SusOpCodes.SUS_ASS_DUAL_MODE: + if op_code in SusOpCode.SUS_ASS_DUAL_MODE: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, mode=Modes.NORMAL, - submode=DualSideSubmodes.DUAL_SIDE, + submode=DualSideSubmode.DUAL_SIDE, q=q, info="Switching to SUS board to dual side", ) @@ -65,19 +65,19 @@ def pack_sus_cmds_prvoider(p: ServiceProviderParams): def add_sus_board_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() oce.add( - keys=SusOpCodes.SUS_ASS_NOM_SIDE, + keys=SusOpCode.SUS_ASS_NOM_SIDE, info="Switch SUS board to nominal side", ) oce.add( - keys=SusOpCodes.SUS_ASS_RED_SIDE, + keys=SusOpCode.SUS_ASS_RED_SIDE, info="Switch SUS board to redundant side", ) oce.add( - keys=SusOpCodes.SUS_ASS_OFF, + keys=SusOpCode.SUS_ASS_OFF, info="Switch off SUS board", ) oce.add( - keys=SusOpCodes.SUS_ASS_DUAL_MODE, + keys=SusOpCode.SUS_ASS_DUAL_MODE, info="Switch SUS board to dual mode", ) defs.add_service( diff --git a/eive_tmtc/tmtc/payload/pl_subsystem.py b/eive_tmtc/tmtc/payload/pl_subsystem.py index 2e1b18e..0db622a 100644 --- a/eive_tmtc/tmtc/payload/pl_subsystem.py +++ b/eive_tmtc/tmtc/payload/pl_subsystem.py @@ -12,12 +12,12 @@ from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices -class OpCodes(str, enum.Enum): +class OpCode(str, enum.Enum): OFF = "off" REPORT_ALL_MODES = "report_modes" -class PayloadModes(enum.IntEnum): +class PayloadMode(enum.IntEnum): OFF = 0 @@ -27,7 +27,7 @@ class Info(str, enum.Enum): HANDLER_LIST: Dict[str, Tuple[int, str]] = { - OpCodes.OFF: (PayloadModes.OFF, Info.OFF), + OpCode.OFF: (PayloadMode.OFF, Info.OFF), } @@ -36,7 +36,7 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams): op_code = p.op_code q = p.queue_helper info_prefix = "ACS Subsystem" - if op_code in OpCodes.REPORT_ALL_MODES: + if op_code in OpCode.REPORT_ALL_MODES: q.add_log_cmd(f"{info_prefix}: {Info.REPORT_ALL_MODES}") q.add_pus_tc( PusTelecommand( @@ -60,6 +60,6 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams): @tmtc_definitions_provider def add_payload_subsystem_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCodes.OFF, Info.OFF) - oce.add(OpCodes.REPORT_ALL_MODES, Info.REPORT_ALL_MODES) + oce.add(OpCode.OFF, Info.OFF) + oce.add(OpCode.REPORT_ALL_MODES, Info.REPORT_ALL_MODES) defs.add_service(CustomServiceList.PL_SS, "Payload Subsystem", oce) diff --git a/eive_tmtc/tmtc/payload/ploc_memory_dumper.py b/eive_tmtc/tmtc/payload/ploc_memory_dumper.py index 4c93f08..3315ad0 100644 --- a/eive_tmtc/tmtc/payload/ploc_memory_dumper.py +++ b/eive_tmtc/tmtc/payload/ploc_memory_dumper.py @@ -16,7 +16,7 @@ from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.util import ObjectIdU32 -class ActionIds: +class ActionId: DUMP_MRAM = 1 @@ -43,7 +43,7 @@ def pack_ploc_memory_dumper_cmd( def pack_mram_dump_cmd(object_id: bytes) -> bytearray: start = int(input("Start address: 0x"), 16) end = int(input("End address: 0x"), 16) - command = object_id + struct.pack("!I", ActionIds.DUMP_MRAM) + command = object_id + struct.pack("!I", ActionId.DUMP_MRAM) command = command + struct.pack("!I", start) command = command + struct.pack("!I", end) return bytearray(command) diff --git a/eive_tmtc/tmtc/payload/ploc_mpsoc.py b/eive_tmtc/tmtc/payload/ploc_mpsoc.py index 7efeea3..900d6d7 100644 --- a/eive_tmtc/tmtc/payload/ploc_mpsoc.py +++ b/eive_tmtc/tmtc/payload/ploc_mpsoc.py @@ -50,7 +50,7 @@ SEQ_FILE_DICT = { CARRIAGE_RETURN = 0xD -class CommandIds(enum.IntEnum): +class CommandId(enum.IntEnum): TC_MEM_WRITE = 1 TC_MEM_READ = 2 FLASH_WRITE = 9 @@ -68,7 +68,7 @@ class CommandIds(enum.IntEnum): RELEASE_UART_TX = 21 -class OpCodes: +class OpCode: ON = ["on"] OFF = ["off"] NORMAL = ["normal"] @@ -104,22 +104,22 @@ class PlocReplyIds(enum.IntEnum): @tmtc_definitions_provider def add_ploc_mpsoc_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCodes.OFF, Info.OFF) - oce.add(OpCodes.ON, Info.ON) - oce.add(OpCodes.NORMAL, Info.NORMAL) + oce.add(OpCode.OFF, Info.OFF) + oce.add(OpCode.ON, Info.ON) + oce.add(OpCode.NORMAL, Info.NORMAL) oce.add("3", "Ploc MPSoC: Memory write") oce.add("4", "Ploc MPSoC: Memory read") oce.add("5", "Ploc MPSoC: Flash write") oce.add("6", "Ploc MPSoC: Flash delete") - oce.add(OpCodes.REPLAY_START, Info.REPLAY_START) + oce.add(OpCode.REPLAY_START, Info.REPLAY_START) oce.add("8", "Ploc MPSoC: Replay stop") - oce.add(OpCodes.DOWNLINK_PWR_ON, Info.DOWNLINK_PWR_ON) + oce.add(OpCode.DOWNLINK_PWR_ON, Info.DOWNLINK_PWR_ON) oce.add("10", "Ploc MPSoC: Downlink pwr off") - oce.add(OpCodes.REPLAY_WRITE_SEQ, Info.REPLAY_WRITE_SEQ) + oce.add(OpCode.REPLAY_WRITE_SEQ, Info.REPLAY_WRITE_SEQ) oce.add("12", "Ploc MPSoC: OBSW reset sequence count") - oce.add(OpCodes.VERIFY_BOOT, "Ploc MPSoC: Read DEADBEEF address") - oce.add(OpCodes.MODE_REPLAY, Info.MODE_REPLAY) - oce.add(OpCodes.MODE_IDLE, Info.MODE_IDLE) + oce.add(OpCode.VERIFY_BOOT, "Ploc MPSoC: Read DEADBEEF address") + oce.add(OpCode.MODE_REPLAY, Info.MODE_REPLAY) + oce.add(OpCode.MODE_IDLE, Info.MODE_IDLE) oce.add("16", "Ploc MPSoC: Tc cam command send") oce.add("17", "Ploc MPSoC: Set UART TX tristate") oce.add("18", "Ploc MPSoC: Relesase UART TX") @@ -136,15 +136,15 @@ def pack_ploc_mpsoc_commands(p: ServiceProviderParams): f"Generate command for PLOC MPSoC with object id: {object_id.as_hex_string}" ) obyt = object_id.as_bytes - if op_code in OpCodes.OFF: + if op_code in OpCode.OFF: q.add_log_cmd(f"{prefix}: {Info.OFF}") command = pack_mode_data(obyt, Modes.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) - if op_code in OpCodes.ON: + if op_code in OpCode.ON: q.add_log_cmd(f"{prefix}: {Info.ON}") data = pack_mode_data(obyt, Modes.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code in OpCodes.NORMAL: + if op_code in OpCode.NORMAL: q.add_log_cmd(f"{prefix}: {Info.NORMAL}") data = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) @@ -172,64 +172,64 @@ def pack_ploc_mpsoc_commands(p: ServiceProviderParams): q.add_log_cmd("PLOC MPSoC: Flash delete") data = prepare_flash_delete_cmd(object_id.as_bytes) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.REPLAY_START: + if op_code in OpCode.REPLAY_START: q.add_log_cmd(f"{prefix}: {Info.REPLAY_START}") data = prepare_replay_start_cmd(object_id.as_bytes) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "8": q.add_log_cmd("PLOC MPSoC: Replay stop") - data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_REPLAY_STOP) + data = object_id.as_bytes + struct.pack("!I", CommandId.TC_REPLAY_STOP) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.DOWNLINK_PWR_ON: - q.add_log_cmd(f"{prefix}: {OpCodes.DOWNLINK_PWR_ON}") + if op_code in OpCode.DOWNLINK_PWR_ON: + q.add_log_cmd(f"{prefix}: {OpCode.DOWNLINK_PWR_ON}") data = prepare_downlink_pwr_on_cmd(object_id.as_bytes) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "10": q.add_log_cmd("PLOC MPSoC: Downlink pwr off") - data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_DOWNLINK_PWR_OFF) + data = object_id.as_bytes + struct.pack("!I", CommandId.TC_DOWNLINK_PWR_OFF) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.REPLAY_WRITE_SEQ: + if op_code in OpCode.REPLAY_WRITE_SEQ: q.add_log_cmd(f"{prefix}: {Info.REPLAY_WRITE_SEQ}") data = prepare_replay_write_sequence_cmd(object_id.as_bytes) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "12": q.add_log_cmd("PLOC MPSoC: Reset OBSW sequence count") - data = object_id.as_bytes + struct.pack("!I", CommandIds.OBSW_RESET_SEQ_COUNT) + data = object_id.as_bytes + struct.pack("!I", CommandId.OBSW_RESET_SEQ_COUNT) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.VERIFY_BOOT: + if op_code in OpCode.VERIFY_BOOT: num_words = 1 q.add_log_cmd(f"{prefix} {Info.VERIFY_BOOT}") data = ( object_id.as_bytes - + struct.pack("!I", CommandIds.TC_MEM_READ) + + struct.pack("!I", CommandId.TC_MEM_READ) + struct.pack("!I", MemAddresses.DEADBEEF) + struct.pack("!H", num_words) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.MODE_REPLAY: + if op_code in OpCode.MODE_REPLAY: q.add_log_cmd("PLOC MPSoC: Tc mode replay") - data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_MODE_REPLAY) + data = object_id.as_bytes + struct.pack("!I", CommandId.TC_MODE_REPLAY) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code in OpCodes.MODE_IDLE: + if op_code in OpCode.MODE_IDLE: q.add_log_cmd("PLOC MPSoC: Tc mode idle") - data = object_id.as_bytes + struct.pack("!I", CommandIds.TC_MODE_IDLE) + data = object_id.as_bytes + struct.pack("!I", CommandId.TC_MODE_IDLE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "16": q.add_log_cmd("PLOC MPSoC: Tc cam command send") cam_cmd = input("Specify cam command string: ") data = ( object_id.as_bytes - + struct.pack("!I", CommandIds.TC_CAM_CMD_SEND) + + struct.pack("!I", CommandId.TC_CAM_CMD_SEND) + bytearray(cam_cmd, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "17": q.add_log_cmd("PLOC MPSoC: Set UART TX tristate") - data = object_id.as_bytes + struct.pack("!I", CommandIds.SET_UART_TX_TRISTATE) + data = object_id.as_bytes + struct.pack("!I", CommandId.SET_UART_TX_TRISTATE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) if op_code == "18": q.add_log_cmd("PLOC MPSoC: Release UART TX") - data = object_id.as_bytes + struct.pack("!I", CommandIds.RELEASE_UART_TX) + data = object_id.as_bytes + struct.pack("!I", CommandId.RELEASE_UART_TX) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) @@ -246,7 +246,7 @@ def generate_write_mem_command( """ command = ( object_id - + struct.pack("!I", CommandIds.TC_MEM_WRITE) + + struct.pack("!I", CommandId.TC_MEM_WRITE) + struct.pack("!I", memory_address) + struct.pack("!H", mem_len) + struct.pack("!I", memory_data) @@ -259,7 +259,7 @@ def prepare_mem_read_command(object_id: bytes) -> bytearray: num_words = int(input("PLOC MPSoC specify number of words (32-bit) to read: ")) command = ( object_id - + struct.pack("!I", CommandIds.TC_MEM_READ) + + struct.pack("!I", CommandId.TC_MEM_READ) + struct.pack("!I", memory_address) + struct.pack("!H", num_words) ) @@ -271,7 +271,7 @@ def prepare_flash_write_cmd(object_id: bytes) -> bytearray: mpsocFile = get_mpsoc_file() command = ( object_id - + struct.pack("!I", CommandIds.FLASH_WRITE) + + struct.pack("!I", CommandId.FLASH_WRITE) + bytearray(obcFile, "utf-8") + bytearray(mpsocFile, "utf-8") ) @@ -282,7 +282,7 @@ def prepare_flash_delete_cmd(object_id: bytes) -> bytearray: file = get_mpsoc_file() command = ( object_id - + struct.pack("!I", CommandIds.TC_FLASH_DELETE) + + struct.pack("!I", CommandId.TC_FLASH_DELETE) + bytearray(file, "utf-8") ) return bytearray(command) @@ -292,7 +292,7 @@ def prepare_replay_start_cmd(object_id: bytes) -> bytearray: replay = int(input("Specify replay mode (0 - once, 1 - repeated): ")) command = ( object_id - + struct.pack("!I", CommandIds.TC_REPLAY_START) + + struct.pack("!I", CommandId.TC_REPLAY_START) + struct.pack("!B", replay) ) return bytearray(command) @@ -303,7 +303,7 @@ def prepare_downlink_pwr_on_cmd(object_id: bytes) -> bytearray: lane_rate = int(input("Specify lane rate (0 - 9): ")) command = ( object_id - + struct.pack("!I", CommandIds.TC_DOWNLINK_PWR_ON) + + struct.pack("!I", CommandId.TC_DOWNLINK_PWR_ON) + struct.pack("!B", mode) + struct.pack("!B", lane_rate) ) @@ -315,7 +315,7 @@ def prepare_replay_write_sequence_cmd(object_id: bytes) -> bytearray: file = get_sequence_file() command = ( object_id - + struct.pack("!I", CommandIds.TC_REPLAY_WRITE_SEQUENCE) + + struct.pack("!I", CommandId.TC_REPLAY_WRITE_SEQUENCE) + struct.pack("!B", use_decoding) + bytearray(file, "utf-8") # + bytes([0]) diff --git a/eive_tmtc/tmtc/payload/ploc_supervisor.py b/eive_tmtc/tmtc/payload/ploc_supervisor.py index c15d28e..4746a59 100644 --- a/eive_tmtc/tmtc/payload/ploc_supervisor.py +++ b/eive_tmtc/tmtc/payload/ploc_supervisor.py @@ -83,7 +83,7 @@ FACTORY_RESET_OPS = { } -class SupvActionIds: +class SupvActionId: HK_REPORT = 1 START_MPSOC = 3 SHUTWOWN_MPSOC = 4 @@ -244,7 +244,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCodes.HK_TO_OBC: q.add_log_cmd(f"{prefix}: {Info.HK_TO_OBC}") - command = obyt + struct.pack("!I", SupvActionIds.HK_REPORT) + command = obyt + struct.pack("!I", SupvActionId.HK_REPORT) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.REQUEST_HK: q.add_log_cmd(f"{prefix}: {Info.REQUEST_HK}") @@ -253,11 +253,11 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): q.add_pus_tc(cmd) elif op_code in OpCodes.START_MPSOC: q.add_log_cmd("PLOC Supervisor: Start MPSoC") - command = obyt + struct.pack("!I", SupvActionIds.START_MPSOC) + command = obyt + struct.pack("!I", SupvActionId.START_MPSOC) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.SHUTDOWN_MPSOC: q.add_log_cmd("PLOC Supervisor: Shutdown MPSoC") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.SHUTWOWN_MPSOC) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.SHUTWOWN_MPSOC) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.SEL_NVM: q.add_log_cmd("PLOC Supervisor: Select MPSoC boot image") @@ -281,7 +281,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): q.add_pus_tc( make_fsfw_action_cmd( object_id=PLOC_SUPV_ID, - action_id=SupvActionIds.FACTORY_RESET, + action_id=SupvActionId.FACTORY_RESET, user_data=bytes([key]), ) ) @@ -290,35 +290,35 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): restart_tries = int(input("Specify maximum restart tries: ")) command = ( object_id.as_bytes - + struct.pack("!I", SupvActionIds.SET_MAX_RESTART_TRIES) + + struct.pack("!I", SupvActionId.SET_MAX_RESTART_TRIES) + struct.pack("!B", restart_tries) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "9": q.add_log_cmd("PLOC Supervisor: Reset MPSoC") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.RESET_MPSOC) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.RESET_MPSOC) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.SET_TIME_REF: q.add_log_cmd("PLOC Supervisor: Set time reference") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.SET_TIME_REF) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.SET_TIME_REF) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "11": q.add_log_cmd("PLOC Supervisor: Set boot timeout") boot_timeout = int(input("Specify boot timeout [ms]: ")) command = ( object_id.as_bytes - + struct.pack("!I", SupvActionIds.SET_BOOT_TIMEOUT) + + struct.pack("!I", SupvActionId.SET_BOOT_TIMEOUT) + struct.pack("!I", boot_timeout) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "12": q.add_log_cmd("PLOC Supervisor: Disable HK") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.DISABLE_HK) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.DISABLE_HK) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.REQ_BOOT_STATUS_REPORT: q.add_log_cmd(f"{prefix}: {Info.REQ_BOOT_STATUS_REPORT}") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.GET_BOOT_STATUS_REPORT + "!I", SupvActionId.GET_BOOT_STATUS_REPORT ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) q.add_wait_seconds(2.0) @@ -352,13 +352,13 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): if op_code == "26": q.add_log_cmd("PLOC Supervisor: Request latchup status report") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.GET_LATCHUP_STATUS_REPORT + "!I", SupvActionId.GET_LATCHUP_STATUS_REPORT ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "27": q.add_log_cmd("PLOC Supervisor: Copy ADC data to MRAM") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.COPY_ADC_DATA_TO_MRAM + "!I", SupvActionId.COPY_ADC_DATA_TO_MRAM ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "30": @@ -380,7 +380,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): if op_code == "37": q.add_log_cmd("PLOC Supervisor: Restart supervisor") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.RESTART_SUPERVISOR + "!I", SupvActionId.RESTART_SUPERVISOR ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.START_UPDATE: @@ -394,14 +394,12 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): if op_code == "43": q.add_log_cmd("PLOC Supervisor: Terminate supervisor process") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.TERMINATE_SUPV_HELPER + "!I", SupvActionId.TERMINATE_SUPV_HELPER ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "44": q.add_log_cmd("PLOC Supervisor: Start MPSoC quiet") - command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.START_MPSOC_QUIET - ) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.START_MPSOC_QUIET) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "45": q.add_log_cmd("PLOC Supervisor: Set shutdown timeout") @@ -409,15 +407,15 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.FACTORY_FLASH: q.add_log_cmd(f"{prefix}: {Info.FACTORY_FLASH}") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.FACTORY_FLASH) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.FACTORY_FLASH) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "47": q.add_log_cmd("PLOC Supervisor: Enable auto TM") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.ENABLE_AUTO_TM) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.ENABLE_AUTO_TM) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "48": q.add_log_cmd("PLOC Supervisor: Disable auto TM") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.DISABLE_AUTO_TM) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.DISABLE_AUTO_TM) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "51": q.add_log_cmd("PLOC Supervisor: Logging request event buffers") @@ -426,7 +424,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): if op_code == "52": q.add_log_cmd("PLOC Supervisor: Logging clear counters") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.LOGGING_CLEAR_COUNTERS + "!I", SupvActionId.LOGGING_CLEAR_COUNTERS ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "53": @@ -436,18 +434,18 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): if op_code == "54": q.add_log_cmd("PLOC Supervisor: Logging request counters") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.LOGGING_REQUEST_COUNTERS + "!I", SupvActionId.LOGGING_REQUEST_COUNTERS ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "55": q.add_log_cmd("PLOC Supervisor: Request ADC report") command = object_id.as_bytes + struct.pack( - "!I", SupvActionIds.REQUEST_ADC_REPORT + "!I", SupvActionId.REQUEST_ADC_REPORT ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "56": q.add_log_cmd("PLOC Supervisor: Reset PL") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.RESET_PL) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.RESET_PL) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "57": q.add_log_cmd("PLOC Supervisor: Enable NVMs") @@ -455,14 +453,14 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): nvm3 = int(input("Enable (1) or disable(0) NVM 3: ")) command = ( object_id.as_bytes - + struct.pack("!I", SupvActionIds.ENABLE_NVMS) + + struct.pack("!I", SupvActionId.ENABLE_NVMS) + struct.pack("B", nvm01) + struct.pack("B", nvm3) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "58": q.add_log_cmd("PLOC Supervisor: Continue update") - command = object_id.as_bytes + struct.pack("!I", SupvActionIds.CONTINUE_UPDATE) + command = object_id.as_bytes + struct.pack("!I", SupvActionId.CONTINUE_UPDATE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code in OpCodes.MEM_CHECK: custom_data = bytearray() @@ -478,7 +476,7 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): f"address {start_address}" ) command = make_fsfw_action_cmd( - object_id.as_bytes, SupvActionIds.MEM_CHECK, custom_data + object_id.as_bytes, SupvActionId.MEM_CHECK, custom_data ) q.add_pus_tc(command) @@ -493,7 +491,7 @@ def pack_sel_boot_image_cmd( @param bp1 Partition pin 1 @param bp2 Partition pin 2 """ - command = object_id + struct.pack("!I", SupvActionIds.SEL_MPSOC_BOOT_IMAGE) + command = object_id + struct.pack("!I", SupvActionId.SEL_MPSOC_BOOT_IMAGE) command = command + struct.pack("!B", mem) command = command + struct.pack("!B", bp0) command = command + struct.pack("!B", bp1) @@ -511,7 +509,7 @@ def pack_update_available_cmd(object_id: bytes) -> bytearray: image_size = 222 image_crc = 0x0 number_of_packets = 150 - command = object_id + struct.pack("!I", SupvActionIds.UPDATE_AVAILABLE) + command = object_id + struct.pack("!I", SupvActionId.UPDATE_AVAILABLE) command = command + struct.pack("!B", image_select) command = command + struct.pack("!B", image_partition) command = command + struct.pack("!I", image_size) @@ -529,9 +527,9 @@ def pack_lachtup_alert_cmd(object_id: bytes, state: bool) -> bytearray: latchup_id = get_latchup_id() command = bytearray() if state: - command = object_id + struct.pack("!I", SupvActionIds.ENABLE_LATCHUP_ALERT) + command = object_id + struct.pack("!I", SupvActionId.ENABLE_LATCHUP_ALERT) else: - command = object_id + struct.pack("!I", SupvActionIds.DISABLE_LATCHUP_ALERT) + command = object_id + struct.pack("!I", SupvActionId.DISABLE_LATCHUP_ALERT) command = command + struct.pack("!B", latchup_id) return bytearray(command) @@ -560,7 +558,7 @@ def pack_set_alert_limit_cmd(object_id: bytes) -> bytearray: latchup_id = get_latchup_id() dutycycle = int(input("Specify dutycycle: ")) command = bytearray() - command = object_id + struct.pack("!I", SupvActionIds.SET_ALERT_LIMIT) + command = object_id + struct.pack("!I", SupvActionId.SET_ALERT_LIMIT) command = command + struct.pack("!B", latchup_id) command = command + struct.pack("!I", dutycycle) return bytearray(command) @@ -572,7 +570,7 @@ def pack_set_adc_enabled_channels_cmd(object_id: bytes) -> bytearray: @param object_id The object id of the PLOC supervisor handler. """ ch = int(input("Specify ch: 0x"), 16) - cmd = object_id + struct.pack("!I", SupvActionIds.SET_ADC_ENABLED_CHANNELS) + cmd = object_id + struct.pack("!I", SupvActionId.SET_ADC_ENABLED_CHANNELS) cmd = cmd + struct.pack("!H", ch) return bytearray(cmd) @@ -580,7 +578,7 @@ def pack_set_adc_enabled_channels_cmd(object_id: bytes) -> bytearray: def pack_set_adc_window_and_stride_cmd(object_id: bytes) -> bytearray: window_size = int(input("Specify window size: ")) striding_step_size = int(input("Specify striding step size: ")) - command = object_id + struct.pack("!I", SupvActionIds.SET_ADC_WINDOW_AND_STRIDE) + command = object_id + struct.pack("!I", SupvActionId.SET_ADC_WINDOW_AND_STRIDE) command = command + struct.pack("!H", window_size) command = command + struct.pack("!H", striding_step_size) return bytearray(command) @@ -588,21 +586,21 @@ def pack_set_adc_window_and_stride_cmd(object_id: bytes) -> bytearray: def pack_set_adc_threshold_cmd(object_id: bytes) -> bytearray: threshold = int(input("Specify threshold: ")) - command = object_id + struct.pack("!I", SupvActionIds.SET_ADC_THRESHOLD) + command = object_id + struct.pack("!I", SupvActionId.SET_ADC_THRESHOLD) command = command + struct.pack("!I", threshold) return bytearray(command) def pack_select_nvm_cmd(object_id: bytes) -> bytearray: mem = int(input("Specify NVM (0 - NVM0, 1 - MVM1): ")) - command = object_id + struct.pack("!I", SupvActionIds.SELECT_NVM) + command = object_id + struct.pack("!I", SupvActionId.SELECT_NVM) command = command + struct.pack("!B", mem) return bytearray(command) def pack_auto_em_tests_cmd(object_id: bytes) -> bytearray: test = int(input("Specify test (1 - complete, 2 - short): ")) - command = object_id + struct.pack("!I", SupvActionIds.RUN_AUTO_EM_TESTS) + command = object_id + struct.pack("!I", SupvActionId.RUN_AUTO_EM_TESTS) command = command + struct.pack("!B", test) return bytearray(command) @@ -610,7 +608,7 @@ def pack_auto_em_tests_cmd(object_id: bytes) -> bytearray: def pack_mram_wipe_cmd(object_id: bytes) -> bytearray: start = int(input("Start address: 0x"), 16) stop = int(input("Stop address: 0x"), 16) - command = object_id + struct.pack("!I", SupvActionIds.WIPE_MRAM) + command = object_id + struct.pack("!I", SupvActionId.WIPE_MRAM) command = command + struct.pack("!I", start) command = command + struct.pack("!I", stop) return bytearray(command) @@ -642,7 +640,7 @@ def pack_update_command(object_id: bytes, new_update: bool) -> bytearray: else: raise ValueError("Invalid input, use y or n") command += object_id - command += struct.pack("!I", SupvActionIds.PERFORM_UPDATE) + command += struct.pack("!I", SupvActionId.PERFORM_UPDATE) command += bytearray(update_file, "utf-8") # Adding null terminator command += struct.pack("!B", 0) @@ -657,7 +655,7 @@ def pack_update_command(object_id: bytes, new_update: bool) -> bytearray: def pack_set_shutdown_timeout_command(object_id: bytes) -> bytearray: command = bytearray() command += object_id - command += struct.pack("!I", SupvActionIds.SET_SHUTDOWN_TIMEOUT) + command += struct.pack("!I", SupvActionId.SET_SHUTDOWN_TIMEOUT) timeout = int(input("Specify shutdown timeout (ms): ")) command += struct.pack("!I", timeout) return command @@ -666,7 +664,7 @@ def pack_set_shutdown_timeout_command(object_id: bytes) -> bytearray: def pack_logging_buffer_request(object_id: bytes) -> bytearray: command = bytearray() command += object_id - command += struct.pack("!I", SupvActionIds.LOGGING_REQUEST_EVENT_BUFFERS) + command += struct.pack("!I", SupvActionId.LOGGING_REQUEST_EVENT_BUFFERS) path = get_event_buffer_path() command += bytearray(path, "utf-8") return command @@ -676,7 +674,7 @@ def pack_set_gpio_cmd(object_id: bytes) -> bytearray: port = int(input("Specify port: 0x"), 16) pin = int(input("Specify pin: 0x"), 16) val = int(input("Specify val: 0x"), 16) - command = object_id + struct.pack("!I", SupvActionIds.SET_GPIO) + command = object_id + struct.pack("!I", SupvActionId.SET_GPIO) command = command + struct.pack("!B", port) command = command + struct.pack("!B", pin) command = command + struct.pack("!B", val) @@ -686,14 +684,14 @@ def pack_set_gpio_cmd(object_id: bytes) -> bytearray: def pack_read_gpio_cmd(object_id: bytes) -> bytearray: port = int(input("Specify port: 0x"), 16) pin = int(input("Specify pin: 0x"), 16) - command = object_id + struct.pack("!I", SupvActionIds.READ_GPIO) + command = object_id + struct.pack("!I", SupvActionId.READ_GPIO) command = command + struct.pack("!B", port) command = command + struct.pack("!B", pin) return bytearray(command) def pack_logging_set_topic(object_id: bytes) -> bytearray: - command = object_id + struct.pack("!I", SupvActionIds.LOGGING_SET_TOPIC) + command = object_id + struct.pack("!I", SupvActionId.LOGGING_SET_TOPIC) tpc = int(input("Specify logging topic: ")) command += struct.pack("!B", tpc) return bytearray(command) diff --git a/eive_tmtc/tmtc/power/acu.py b/eive_tmtc/tmtc/power/acu.py index f3fa182..623b4bd 100644 --- a/eive_tmtc/tmtc/power/acu.py +++ b/eive_tmtc/tmtc/power/acu.py @@ -42,7 +42,7 @@ class ACUHkTable: wdt_gnd_left = gs.TableEntry(bytearray([0x00, 0x74]), gs.TableEntry.uint32_size) -class OpCodes: +class OpCode: TEST = ["0", "test"] @@ -55,7 +55,7 @@ def add_acu_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() add_gomspace_cmd_defs(oce) - oce.add(keys=OpCodes.TEST, info=Info.TEST) + oce.add(keys=OpCode.TEST, info=Info.TEST) defs.add_service( name=CustomServiceList.ACU.value, info="ACU Device", diff --git a/eive_tmtc/tmtc/power/common_power.py b/eive_tmtc/tmtc/power/common_power.py index 87da55a..238d398 100644 --- a/eive_tmtc/tmtc/power/common_power.py +++ b/eive_tmtc/tmtc/power/common_power.py @@ -27,7 +27,7 @@ from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from tmtccmd.util import ObjectIdU32, ObjectIdBase -class GomspaceOpCodes: +class GomspaceOpCode: GET_PARAM = ["get_param"] SET_INTEGER_PARAM = ["set_int_param"] SAVE_TABLE = ["save_table"] @@ -157,20 +157,20 @@ def pack_common_gomspace_cmds( object_id=objb, action_id=GomspaceDeviceActionIds.PRINT_LATCHUPS ) ) - if op_code in GomspaceOpCodes.SET_INTEGER_PARAM: + if op_code in GomspaceOpCode.SET_INTEGER_PARAM: q.add_log_cmd(f"{prefix}: {GsInfo.SET_PARAMETER}") print("Please specify the parameter type from index") for idx, v in enumerate(ParamTypes): print(f"{idx}: {v.name}") ptype = int(input("Index: ")) prompt_and_pack_set_integer_param_command(q, object_id, ParamTypes(ptype)) - if op_code in GomspaceOpCodes.GET_PARAM: + if op_code in GomspaceOpCode.GET_PARAM: q.add_log_cmd(f"{prefix}: {GsInfo.GET_PARAMETER}") prompt_and_pack_get_param_command(q, object_id) - if op_code in GomspaceOpCodes.REQUEST_CONFIG_TABLE: + if op_code in GomspaceOpCode.REQUEST_CONFIG_TABLE: q.add_log_cmd(f"{prefix}: {GsInfo.REQUEST_CONFIG_TABLE}") q.add_pus_tc(pack_request_config_command(object_id.as_bytes)) - if op_code in GomspaceOpCodes.SAVE_TABLE: + if op_code in GomspaceOpCode.SAVE_TABLE: q.add_log_cmd(f"{prefix}: {GsInfo.SAVE_TABLE}") source_table = int( input( @@ -193,7 +193,7 @@ def pack_common_gomspace_cmds( user_data=bytes([source_table]), ) ) - if op_code in GomspaceOpCodes.SAVE_TABLE_DEFAULT: + if op_code in GomspaceOpCode.SAVE_TABLE_DEFAULT: source_table = int( input( "Source table [0: Board Config, 1: Module Config, 2: Calibration Parameter]: " @@ -208,7 +208,7 @@ def pack_common_gomspace_cmds( user_data=bytes([source_table]), ) ) - if op_code in GomspaceOpCodes.LOAD_TABLE: + if op_code in GomspaceOpCode.LOAD_TABLE: target_table = int( input( "Target table ID [0: Board Config, 1: Module Config, 2: Calibration Parameter, " @@ -236,7 +236,7 @@ def pack_common_gomspace_cmds( user_data=bytes([source_table, target_table]), ) ) - if op_code in GomspaceOpCodes.RESET_GND_WATCHDOG: + if op_code in GomspaceOpCode.RESET_GND_WATCHDOG: q.add_log_cmd(f"{prefix}: {GsInfo.RESET_GND_WATCHDOG}") q.add_pus_tc(pack_gnd_wdt_reset_command(object_id)) @@ -316,14 +316,14 @@ def add_gomspace_cmd_defs(oce: OpCodeEntry): info=PowerInfo.REQUEST_AUX_HK_ONCE, ) oce.add(keys=PowerOpCodes.PRINT_LATCHUPS, info=PowerInfo.PRINT_LATCHUPS) - oce.add(keys=GomspaceOpCodes.GET_PARAM, info=GsInfo.GET_PARAMETER) - oce.add(keys=GomspaceOpCodes.REBOOT, info=GsInfo.REBOOT) - oce.add(keys=GomspaceOpCodes.SET_INTEGER_PARAM, info=GsInfo.SET_PARAMETER) - oce.add(keys=GomspaceOpCodes.REQUEST_CONFIG_TABLE, info=GsInfo.REQUEST_CONFIG_TABLE) - oce.add(keys=GomspaceOpCodes.SAVE_TABLE, info=GsInfo.SAVE_TABLE) - oce.add(keys=GomspaceOpCodes.SAVE_TABLE_DEFAULT, info=GsInfo.SAVE_TABLE_DEFAULT) - oce.add(keys=GomspaceOpCodes.LOAD_TABLE, info=GsInfo.LOAD_TABLE) - oce.add(keys=GomspaceOpCodes.RESET_GND_WATCHDOG, info=GsInfo.RESET_GND_WATCHDOG) + oce.add(keys=GomspaceOpCode.GET_PARAM, info=GsInfo.GET_PARAMETER) + oce.add(keys=GomspaceOpCode.REBOOT, info=GsInfo.REBOOT) + oce.add(keys=GomspaceOpCode.SET_INTEGER_PARAM, info=GsInfo.SET_PARAMETER) + oce.add(keys=GomspaceOpCode.REQUEST_CONFIG_TABLE, info=GsInfo.REQUEST_CONFIG_TABLE) + oce.add(keys=GomspaceOpCode.SAVE_TABLE, info=GsInfo.SAVE_TABLE) + oce.add(keys=GomspaceOpCode.SAVE_TABLE_DEFAULT, info=GsInfo.SAVE_TABLE_DEFAULT) + oce.add(keys=GomspaceOpCode.LOAD_TABLE, info=GsInfo.LOAD_TABLE) + oce.add(keys=GomspaceOpCode.RESET_GND_WATCHDOG, info=GsInfo.RESET_GND_WATCHDOG) OBC_ENDIANNESS = "<" diff --git a/eive_tmtc/tmtc/power/p60dock.py b/eive_tmtc/tmtc/power/p60dock.py index 0f92baf..49c1e32 100644 --- a/eive_tmtc/tmtc/power/p60dock.py +++ b/eive_tmtc/tmtc/power/p60dock.py @@ -27,7 +27,7 @@ from eive_tmtc.config.object_ids import P60_DOCK_HANDLER from tmtccmd.util import ObjectIdU32 -class P60OpCodes: +class P60OpCode: STACK_3V3_ON = ["stack_3v3_on", "1"] STACK_3V3_OFF = ["stack_3v3_off", "2"] STACK_5V_ON = ["stack_5v_on", "3"] @@ -103,7 +103,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: pack_common_power_cmds("P60 Dock", object_id, q, op_code) pack_common_gomspace_cmds("P60 Dock", object_id, q, op_code) p60_dock_req_hk_cmds(q, op_code) - if op_code in P60OpCodes.STACK_3V3_ON: + if op_code in P60OpCode.STACK_3V3_ON: q.add_log_cmd(P60Info.STACK_3V3_ON) q.add_pus_tc( pack_set_u8_param_command( @@ -112,7 +112,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: Channel.on, ) ) - if op_code in P60OpCodes.STACK_3V3_OFF: + if op_code in P60OpCode.STACK_3V3_OFF: q.add_log_cmd(P60Info.STACK_3V3_OFF) q.add_pus_tc( pack_set_u8_param_command( @@ -121,7 +121,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: Channel.off, ) ) - if op_code in P60OpCodes.STACK_5V_ON: + if op_code in P60OpCode.STACK_5V_ON: q.add_log_cmd(P60Info.STACK_5V_ON) q.add_pus_tc( pack_set_u8_param_command( @@ -130,7 +130,7 @@ def pack_p60dock_cmds(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: Channel.on, ) ) - if op_code in P60OpCodes.STACK_5V_OFF: + if op_code in P60OpCode.STACK_5V_OFF: q.add_log_cmd(P60Info.STACK_5V_OFF) q.add_pus_tc( pack_set_u8_param_command( diff --git a/eive_tmtc/tmtc/power/pdu1.py b/eive_tmtc/tmtc/power/pdu1.py index 5fbf0a3..603d9dd 100644 --- a/eive_tmtc/tmtc/power/pdu1.py +++ b/eive_tmtc/tmtc/power/pdu1.py @@ -15,7 +15,7 @@ from eive_tmtc.tmtc.power.common_power import ( create_generic_on_cmd, create_generic_off_cmd, pack_common_power_cmds, - GomspaceOpCodes, + GomspaceOpCode, GsInfo, PowerInfo, add_common_power_defs, @@ -166,7 +166,7 @@ def add_pdu1_cmds(defs: TmtcDefinitionWrapper): keys=PowerOpCodes.PRINT_SWITCH_V_I, info="PDU1: Print Switches, Voltages, Currents", ) - oce.add(keys=GomspaceOpCodes.GET_PARAM, info=GsInfo.GET_PARAMETER) + oce.add(keys=GomspaceOpCode.GET_PARAM, info=GsInfo.GET_PARAMETER) defs.add_service( name=CustomServiceList.PDU1.value, diff --git a/eive_tmtc/tmtc/power/power.py b/eive_tmtc/tmtc/power/power.py index fdd637e..631b5fd 100644 --- a/eive_tmtc/tmtc/power/power.py +++ b/eive_tmtc/tmtc/power/power.py @@ -27,7 +27,7 @@ from eive_tmtc.tmtc.power.pdu2 import ( from tmtccmd import get_console_logger from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry -from eive_tmtc.tmtc.power.p60dock import P60OpCodes, P60Info, p60_dock_req_hk_cmds +from eive_tmtc.tmtc.power.p60dock import P60OpCode, P60Info, p60_dock_req_hk_cmds from eive_tmtc.tmtc.power.acu import add_acu_cmds, acu_req_hk_cmds from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.tc import DefaultPusQueueHelper @@ -75,12 +75,12 @@ def pack_power_commands(q: DefaultPusQueueHelper, op_code: str): @tmtc_definitions_provider def add_p60_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=P60OpCodes.STACK_3V3_ON, info=P60Info.STACK_3V3_ON) - oce.add(keys=P60OpCodes.STACK_3V3_OFF, info=P60Info.STACK_3V3_OFF) - oce.add(keys=P60OpCodes.STACK_5V_ON, info=P60Info.STACK_5V_ON) - oce.add(keys=P60OpCodes.STACK_5V_OFF, info=P60Info.STACK_5V_OFF) + oce.add(keys=P60OpCode.STACK_3V3_ON, info=P60Info.STACK_3V3_ON) + oce.add(keys=P60OpCode.STACK_3V3_OFF, info=P60Info.STACK_3V3_OFF) + oce.add(keys=P60OpCode.STACK_5V_ON, info=P60Info.STACK_5V_ON) + oce.add(keys=P60OpCode.STACK_5V_OFF, info=P60Info.STACK_5V_OFF) add_gomspace_cmd_defs(oce) - oce.add(keys=P60OpCodes.TEST, info="P60 Tests") + oce.add(keys=P60OpCode.TEST, info="P60 Tests") defs.add_service( name=CustomServiceList.P60DOCK.value, info="P60 Device", op_code_entry=oce ) From 9d835e5705d5057200883df4ebd97443de03c3df Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:18:15 +0100 Subject: [PATCH 19/34] some more consistency updates, delete obsolete file --- eive_tmtc/config/globals_config.py | 33 ------ eive_tmtc/gomspace/gomspace_common.py | 28 ++--- eive_tmtc/pus_tc/devs/ccsds_handler.py | 21 ++-- eive_tmtc/pus_tc/system/proc.py | 2 +- eive_tmtc/tmtc/core.py | 126 +++++++++++------------ eive_tmtc/tmtc/power/common_power.py | 12 +-- eive_tmtc/tmtc/power/tm.py | 6 +- eive_tmtc/tmtc/solar_array_deployment.py | 8 +- 8 files changed, 102 insertions(+), 134 deletions(-) delete mode 100644 eive_tmtc/config/globals_config.py diff --git a/eive_tmtc/config/globals_config.py b/eive_tmtc/config/globals_config.py deleted file mode 100644 index bb2640b..0000000 --- a/eive_tmtc/config/globals_config.py +++ /dev/null @@ -1,33 +0,0 @@ -""" -@brief This file transfers definitions of global variables to the user. -@details Template configuration file. Copy this folder to the TMTC commander root and adapt - it to your needs. -""" - -import enum -import argparse - - -# All globals can be added here and will be part of a globals dictionary. -from config.definitions import CustomServiceList, PUS_APID -from config.custom_mode_op import CustomModeList -from tmtccmd.config.definitions import CoreComInterfaces -from tmtccmd.config.globals import set_default_globals_pre_args_parsing -from tmtccmd.logging import get_console_logger - -LOGGER = get_console_logger() - - -class CustomGlobalIds(enum.Enum): - from enum import auto - - pass - - -def set_globals_pre_args_parsing(gui: bool = False): - set_default_globals_pre_args_parsing( - gui=gui, - tc_apid=PUS_APID, - tm_apid=PUS_APID, - com_if_id=CoreComInterfaces.TCPIP_UDP.value, - ) diff --git a/eive_tmtc/gomspace/gomspace_common.py b/eive_tmtc/gomspace/gomspace_common.py index 1ce71a5..922a96b 100644 --- a/eive_tmtc/gomspace/gomspace_common.py +++ b/eive_tmtc/gomspace/gomspace_common.py @@ -16,7 +16,7 @@ from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from tmtccmd.util import ObjectIdU32, ObjectIdBase -class GomspaceDeviceActionIds(enum.IntEnum): +class GomspaceDeviceActionId(enum.IntEnum): PING = 1 REBOOT = 4 PARAM_GET = 0 @@ -64,7 +64,7 @@ class Channel: def pack_request_config_command(object_id: bytes) -> PusTelecommand: return make_fsfw_action_cmd( - object_id=object_id, action_id=GomspaceDeviceActionIds.REQUEST_CONFIG_TABLE + object_id=object_id, action_id=GomspaceDeviceActionId.REQUEST_CONFIG_TABLE ) @@ -90,7 +90,7 @@ def pack_get_param_command( app_data += struct.pack("!B", parameter_size) return make_fsfw_action_cmd( object_id=object_id, - action_id=GomspaceDeviceActionIds.PARAM_GET, + action_id=GomspaceDeviceActionId.PARAM_GET, user_data=app_data, ) @@ -98,7 +98,7 @@ def pack_get_param_command( def pack_set_float_param_command( object_id: bytes, memory_address: bytes, parameter: float ) -> PusTelecommand: - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(4) @@ -111,7 +111,7 @@ def pack_set_float_param_command( def pack_set_u8_param_command( object_id: bytes, memory_address: bytes, parameter: int ) -> PusTelecommand: - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(1) @@ -124,7 +124,7 @@ def pack_set_u8_param_command( def pack_set_i8_param_command( object_id: bytes, memory_address: bytes, parameter: int ) -> PusTelecommand: - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(1) @@ -137,7 +137,7 @@ def pack_set_i8_param_command( def pack_set_u16_param_command( object_id: bytes, memory_address: bytes, parameter: int ) -> PusTelecommand: - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(2) @@ -150,7 +150,7 @@ def pack_set_u16_param_command( def pack_set_i16_param_command( object_id: bytes, memory_address: bytes, parameter: int ) -> PusTelecommand: - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(2) @@ -161,7 +161,7 @@ def pack_set_i16_param_command( def pack_set_u32_param_command(object_id: bytes, memory_address: bytes, parameter: int): - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(4) @@ -172,7 +172,7 @@ def pack_set_u32_param_command(object_id: bytes, memory_address: bytes, paramete def pack_set_i32_param_command(object_id: bytes, memory_address: bytes, parameter: int): - action_id = GomspaceDeviceActionIds.PARAM_SET + action_id = GomspaceDeviceActionId.PARAM_SET app_data = bytearray() app_data += memory_address app_data.append(4) @@ -226,7 +226,7 @@ def pack_ping_command(object_id: ObjectIdU32, data: bytearray) -> PusTelecommand """ return make_fsfw_action_cmd( object_id=object_id.as_bytes, - action_id=GomspaceDeviceActionIds.PING, + action_id=GomspaceDeviceActionId.PING, user_data=data, ) @@ -236,7 +236,7 @@ def pack_gnd_wdt_reset_command(object_id: ObjectIdBase) -> PusTelecommand: @param object_id Object Id of the gomspace device handler. """ return make_fsfw_action_cmd( - object_id=object_id.as_bytes, action_id=GomspaceDeviceActionIds.WDT_RESET + object_id=object_id.as_bytes, action_id=GomspaceDeviceActionId.WDT_RESET ) @@ -245,7 +245,7 @@ def pack_reboot_command(object_id: ObjectIdU32) -> PusTelecommand: @param object_id The object id of the gomspace device handler. """ return make_fsfw_action_cmd( - object_id=object_id.as_bytes, action_id=GomspaceDeviceActionIds.REBOOT + object_id=object_id.as_bytes, action_id=GomspaceDeviceActionId.REBOOT ) @@ -255,5 +255,5 @@ def pack_request_full_hk_table_command(object_id: ObjectIdU32) -> PusTelecommand @param object_id The object id of the gomspace device handler. """ return make_fsfw_action_cmd( - object_id=object_id.as_bytes, action_id=GomspaceDeviceActionIds.REQUEST_HK_TABLE + object_id=object_id.as_bytes, action_id=GomspaceDeviceActionId.REQUEST_HK_TABLE ) diff --git a/eive_tmtc/pus_tc/devs/ccsds_handler.py b/eive_tmtc/pus_tc/devs/ccsds_handler.py index 4546867..1b09c77 100644 --- a/eive_tmtc/pus_tc/devs/ccsds_handler.py +++ b/eive_tmtc/pus_tc/devs/ccsds_handler.py @@ -5,6 +5,7 @@ @author J. Meier @date 20.11.2021 """ +import enum import struct from spacepackets.ecss.tc import PusTelecommand @@ -12,7 +13,7 @@ from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.util import ObjectIdU32 -class CommandIds: +class CommandId(enum.IntEnum): # Configures input rate of syrlinks to 400 Khz (results in downlink rate of 200 kbps) SET_LOW_RATE = 0 # Configures input rate of syrlinks to 2000 Khz (results in downlink rate of 1000 kbps) @@ -39,42 +40,42 @@ def pack_ccsds_handler_test( q.add_log_cmd(f"Testing CCSDS handler with object id: {object_id.as_hex_string}") if op_code == "0": q.add_log_cmd("CCSDS Handler: Set low rate") - command = obyt + struct.pack("!I", CommandIds.SET_LOW_RATE) + command = obyt + struct.pack("!I", CommandId.SET_LOW_RATE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "1": q.add_log_cmd("CCSDS Handler: Set high rate") - command = obyt + struct.pack("!I", CommandIds.SET_HIGH_RATE) + command = obyt + struct.pack("!I", CommandId.SET_HIGH_RATE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "2": q.add_log_cmd("CCSDS Handler: Enables the transmitter") - command = obyt + struct.pack("!I", CommandIds.EN_TRANSMITTER) + command = obyt + struct.pack("!I", CommandId.EN_TRANSMITTER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "3": q.add_log_cmd("CCSDS Handler: Disables the transmitter") - command = obyt + struct.pack("!I", CommandIds.DIS_TRANSMITTER) + command = obyt + struct.pack("!I", CommandId.DIS_TRANSMITTER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "4": q.add_log_cmd("CCSDS Handler: Set arbitrary bitrate") bitrate = int(input("Specify bit rate (bps): ")) command = ( obyt - + struct.pack("!I", CommandIds.ARBITRARY_BITRATE) + + struct.pack("!I", CommandId.ARBITRARY_BITRATE) + struct.pack("!I", bitrate) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "5": q.add_log_cmd("CCSDS Handler: Enable tx clock manipulator") - command = obyt + struct.pack("!I", CommandIds.ENABLE_TX_CLK_MANIPULATOR) + command = obyt + struct.pack("!I", CommandId.ENABLE_TX_CLK_MANIPULATOR) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "6": q.add_log_cmd("CCSDS Handler: Disable tx clock manipulator") - command = obyt + struct.pack("!I", CommandIds.DISABLE_TX_CLK_MANIPULATOR) + command = obyt + struct.pack("!I", CommandId.DISABLE_TX_CLK_MANIPULATOR) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "7": q.add_log_cmd("CCSDS Handler: Update tx data on rising edge of tx clock") - command = obyt + struct.pack("!I", CommandIds.UPDATE_ON_RISING_EDGE) + command = obyt + struct.pack("!I", CommandId.UPDATE_ON_RISING_EDGE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if op_code == "8": q.add_log_cmd("CCSDS Handler: Update tx data on falling edge of tx clock") - command = obyt + struct.pack("!I", CommandIds.UPDATE_ON_FALLING_EDGE) + command = obyt + struct.pack("!I", CommandId.UPDATE_ON_FALLING_EDGE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/pus_tc/system/proc.py b/eive_tmtc/pus_tc/system/proc.py index 058f563..6fc3bdd 100644 --- a/eive_tmtc/pus_tc/system/proc.py +++ b/eive_tmtc/pus_tc/system/proc.py @@ -21,7 +21,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import * import eive_tmtc.config.object_ids as oids from eive_tmtc.pus_tc.system.tcs import OpCode as TcsOpCodes from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetId -from eive_tmtc.tmtc.core import SetIds as CoreSetIds +from eive_tmtc.tmtc.core import SetId as CoreSetIds from eive_tmtc.tmtc.power.common_power import SetId as GsSetIds from eive_tmtc.pus_tc.devs.rad_sensor import SetId as RadSetIds from eive_tmtc.pus_tc.devs.mgms import MgmLis3SetId as MgmLis3SetIds_0_2 diff --git a/eive_tmtc/tmtc/core.py b/eive_tmtc/tmtc/core.py index de04050..0f5aba8 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -18,7 +18,7 @@ from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter LOGGER = get_console_logger() -class ActionIds(enum.IntEnum): +class ActionId(enum.IntEnum): LIST_DIR_INTO_FILE = 0 SWITCH_REBOOT_FILE_HANDLING = 5 RESET_REBOOT_COUNTER = 6 @@ -34,11 +34,11 @@ class ActionIds(enum.IntEnum): FULL_REBOOT = 34 -class SetIds(enum.IntEnum): +class SetId(enum.IntEnum): HK = 5 -class OpCodes: +class OpCode: REBOOT_XSC = ["0", "reboot_xsc"] XSC_REBOOT_SELF = ["1", "reboot_self"] XSC_REBOOT_0_0 = ["2", "reboot_00"] @@ -89,60 +89,60 @@ class Copy(enum.IntEnum): @tmtc_definitions_provider def add_core_controller_definitions(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.REBOOT_XSC, info=Info.REBOOT_XSC) - oce.add(keys=OpCodes.REBOOT_XSC, info=Info.REBOOT_XSC) - oce.add(keys=OpCodes.REBOOT_FULL, info=Info.REBOOT_FULL) - oce.add(keys=OpCodes.XSC_REBOOT_SELF, info="Reboot Self") - oce.add(keys=OpCodes.XSC_REBOOT_0_0, info="Reboot 0 0") - oce.add(keys=OpCodes.XSC_REBOOT_0_1, info="Reboot 0 1") - oce.add(keys=OpCodes.XSC_REBOOT_1_0, info="Reboot 1 0") - oce.add(keys=OpCodes.XSC_REBOOT_1_1, info="Reboot 1 1") - oce.add(keys=OpCodes.OBSW_UPDATE_FROM_TMP, info=Info.OBSW_UPDATE_FROM_TMP) - oce.add(keys=OpCodes.OBSW_UPDATE_FROM_SD_0, info=Info.OBSW_UPDATE_FROM_SD_0) - oce.add(keys=OpCodes.OBSW_UPDATE_FROM_SD_1, info=Info.OBSW_UPDATE_FROM_SD_1) + oce.add(keys=OpCode.REBOOT_XSC, info=Info.REBOOT_XSC) + oce.add(keys=OpCode.REBOOT_XSC, info=Info.REBOOT_XSC) + oce.add(keys=OpCode.REBOOT_FULL, info=Info.REBOOT_FULL) + oce.add(keys=OpCode.XSC_REBOOT_SELF, info="Reboot Self") + oce.add(keys=OpCode.XSC_REBOOT_0_0, info="Reboot 0 0") + oce.add(keys=OpCode.XSC_REBOOT_0_1, info="Reboot 0 1") + oce.add(keys=OpCode.XSC_REBOOT_1_0, info="Reboot 1 0") + oce.add(keys=OpCode.XSC_REBOOT_1_1, info="Reboot 1 1") + oce.add(keys=OpCode.OBSW_UPDATE_FROM_TMP, info=Info.OBSW_UPDATE_FROM_TMP) + oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_0, info=Info.OBSW_UPDATE_FROM_SD_0) + oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_1, info=Info.OBSW_UPDATE_FROM_SD_1) oce.add( - keys=OpCodes.GET_HK, + keys=OpCode.GET_HK, info="Request housekeeping set", ) oce.add( - keys=OpCodes.ENABLE_REBOOT_FILE_HANDLING, + keys=OpCode.ENABLE_REBOOT_FILE_HANDLING, info="Enable reboot file handling", ) oce.add( - keys=OpCodes.DISABLE_REBOOT_FILE_HANDLING, + keys=OpCode.DISABLE_REBOOT_FILE_HANDLING, info="Disable reboot file handling", ) oce.add( - keys=OpCodes.RESET_ALL_REBOOT_COUNTERS, + keys=OpCode.RESET_ALL_REBOOT_COUNTERS, info="Reset all reboot counters", ) oce.add( - keys=OpCodes.RESET_REBOOT_COUNTER_00, + keys=OpCode.RESET_REBOOT_COUNTER_00, info="Reset reboot counter 0 0", ) oce.add( - keys=OpCodes.RESET_REBOOT_COUNTER_01, + keys=OpCode.RESET_REBOOT_COUNTER_01, info="Reset reboot counter 0 1", ) oce.add( - keys=OpCodes.RESET_REBOOT_COUNTER_10, + keys=OpCode.RESET_REBOOT_COUNTER_10, info="Reset reboot counter 1 0", ) oce.add( - keys=OpCodes.RESET_REBOOT_COUNTER_11, + keys=OpCode.RESET_REBOOT_COUNTER_11, info="Reset reboot counter 1 1", ) - oce.add(keys=OpCodes.OBSW_UPDATE_FROM_SD_0, info=Info.OBSW_UPDATE_FROM_SD_0) - oce.add(keys=OpCodes.OBSW_UPDATE_FROM_SD_1, info=Info.OBSW_UPDATE_FROM_SD_1) - oce.add(keys=OpCodes.OBSW_UPDATE_FROM_TMP, info=Info.OBSW_UPDATE_FROM_TMP) - oce.add(keys=OpCodes.SWITCH_TO_SD_0, info=Info.SWITCH_TO_SD_0) - oce.add(keys=OpCodes.SWITCH_TO_SD_1, info=Info.SWITCH_TO_SD_1) - oce.add(keys=OpCodes.SWITCH_TO_BOTH_SD_CARDS, info=Info.SWITCH_TO_BOTH_SD_CARDS) + oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_0, info=Info.OBSW_UPDATE_FROM_SD_0) + oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_1, info=Info.OBSW_UPDATE_FROM_SD_1) + oce.add(keys=OpCode.OBSW_UPDATE_FROM_TMP, info=Info.OBSW_UPDATE_FROM_TMP) + oce.add(keys=OpCode.SWITCH_TO_SD_0, info=Info.SWITCH_TO_SD_0) + oce.add(keys=OpCode.SWITCH_TO_SD_1, info=Info.SWITCH_TO_SD_1) + oce.add(keys=OpCode.SWITCH_TO_BOTH_SD_CARDS, info=Info.SWITCH_TO_BOTH_SD_CARDS) defs.add_service(CustomServiceList.CORE.value, "Core Controller", oce) def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCodes.REBOOT_XSC: + if op_code in OpCode.REBOOT_XSC: reboot_self, chip_select, copy_select = determine_reboot_params() add_xsc_reboot_cmd( q=q, @@ -150,93 +150,93 @@ def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): chip=chip_select, copy=copy_select, ) - if op_code in OpCodes.REBOOT_FULL: + if op_code in OpCode.REBOOT_FULL: q.add_log_cmd(f"Core Command: {Info.REBOOT_FULL}") q.add_pus_tc(create_full_reboot_cmds()) - if op_code in OpCodes.XSC_REBOOT_SELF: + if op_code in OpCode.XSC_REBOOT_SELF: add_xsc_reboot_cmd(q=q, reboot_self=True) - if op_code in OpCodes.XSC_REBOOT_0_0: + if op_code in OpCode.XSC_REBOOT_0_0: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_0_NOM ) - if op_code in OpCodes.XSC_REBOOT_0_1: + if op_code in OpCode.XSC_REBOOT_0_1: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_1_GOLD, ) - if op_code in OpCodes.XSC_REBOOT_1_0: + if op_code in OpCode.XSC_REBOOT_1_0: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, copy=Copy.COPY_0_NOM ) - if op_code in OpCodes.XSC_REBOOT_1_1: + if op_code in OpCode.XSC_REBOOT_1_1: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, copy=Copy.COPY_1_GOLD, ) - if op_code in OpCodes.DISABLE_REBOOT_FILE_HANDLING: + if op_code in OpCode.DISABLE_REBOOT_FILE_HANDLING: q.add_log_cmd("Disabling reboot file handling") user_data = bytearray([0]) q.add_pus_tc( make_fsfw_action_cmd( object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.SWITCH_REBOOT_FILE_HANDLING, + action_id=ActionId.SWITCH_REBOOT_FILE_HANDLING, user_data=user_data, ) ) - if op_code in OpCodes.ENABLE_REBOOT_FILE_HANDLING: + if op_code in OpCode.ENABLE_REBOOT_FILE_HANDLING: q.add_log_cmd("Enabling reboot file handling") user_data = bytearray([1]) q.add_pus_tc( make_fsfw_action_cmd( object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.SWITCH_REBOOT_FILE_HANDLING, + action_id=ActionId.SWITCH_REBOOT_FILE_HANDLING, user_data=user_data, ) ) - if op_code in OpCodes.RESET_ALL_REBOOT_COUNTERS: + if op_code in OpCode.RESET_ALL_REBOOT_COUNTERS: q.add_log_cmd("Resetting all reboot counters") q.add_pus_tc( make_fsfw_action_cmd( object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.RESET_REBOOT_COUNTER, + action_id=ActionId.RESET_REBOOT_COUNTER, ) ) - if op_code in OpCodes.RESET_REBOOT_COUNTER_00: + if op_code in OpCode.RESET_REBOOT_COUNTER_00: reset_specific_boot_counter(q, 0, 0) - if op_code in OpCodes.RESET_REBOOT_COUNTER_01: + if op_code in OpCode.RESET_REBOOT_COUNTER_01: reset_specific_boot_counter(q, 0, 1) - if op_code in OpCodes.RESET_REBOOT_COUNTER_10: + if op_code in OpCode.RESET_REBOOT_COUNTER_10: reset_specific_boot_counter(q, 1, 0) - if op_code in OpCodes.RESET_REBOOT_COUNTER_11: + if op_code in OpCode.RESET_REBOOT_COUNTER_11: reset_specific_boot_counter(q, 1, 1) - if op_code in OpCodes.OBSW_UPDATE_FROM_SD_0: + if op_code in OpCode.OBSW_UPDATE_FROM_SD_0: q.add_log_cmd(Info.OBSW_UPDATE_FROM_SD_0) - q.add_pus_tc(pack_obsw_update_cmd(ActionIds.UPDATE_OBSW_FROM_SD_0)) - if op_code in OpCodes.OBSW_UPDATE_FROM_SD_1: + q.add_pus_tc(pack_obsw_update_cmd(ActionId.UPDATE_OBSW_FROM_SD_0)) + if op_code in OpCode.OBSW_UPDATE_FROM_SD_1: q.add_log_cmd(Info.OBSW_UPDATE_FROM_SD_1) - q.add_pus_tc(pack_obsw_update_cmd(ActionIds.UPDATE_OBSW_FROM_SD_1)) - if op_code in OpCodes.OBSW_UPDATE_FROM_TMP: + q.add_pus_tc(pack_obsw_update_cmd(ActionId.UPDATE_OBSW_FROM_SD_1)) + if op_code in OpCode.OBSW_UPDATE_FROM_TMP: q.add_log_cmd(Info.OBSW_UPDATE_FROM_TMP) - q.add_pus_tc(pack_obsw_update_cmd(ActionIds.UPDATE_OBSW_FROM_TMP)) - if op_code in OpCodes.SWITCH_TO_SD_0: + q.add_pus_tc(pack_obsw_update_cmd(ActionId.UPDATE_OBSW_FROM_TMP)) + if op_code in OpCode.SWITCH_TO_SD_0: q.add_log_cmd(Info.SWITCH_TO_SD_0) q.add_pus_tc( make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, action_id=ActionIds.SWITCH_TO_SD_0 + object_id=CORE_CONTROLLER_ID, action_id=ActionId.SWITCH_TO_SD_0 ) ) - if op_code in OpCodes.SWITCH_TO_SD_1: + if op_code in OpCode.SWITCH_TO_SD_1: q.add_log_cmd(Info.SWITCH_TO_SD_1) q.add_pus_tc( make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, action_id=ActionIds.SWITCH_TO_SD_1 + object_id=CORE_CONTROLLER_ID, action_id=ActionId.SWITCH_TO_SD_1 ) ) - if op_code in OpCodes.SWITCH_TO_BOTH_SD_CARDS: + if op_code in OpCode.SWITCH_TO_BOTH_SD_CARDS: while True: active_sd_card = int(input("Please specify active SD cqrd [0/1]: ")) if active_sd_card not in [0, 1]: @@ -246,13 +246,13 @@ def pack_core_commands(q: DefaultPusQueueHelper, op_code: str): q.add_pus_tc( make_fsfw_action_cmd( object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.SWITCH_TO_BOTH_SD_CARDS, + action_id=ActionId.SWITCH_TO_BOTH_SD_CARDS, user_data=bytes([active_sd_card]), ) ) - if op_code in OpCodes.GET_HK: + if op_code in OpCode.GET_HK: q.add_log_cmd("Requesting housekeeping set") - sid = make_sid(object_id=CORE_CONTROLLER_ID, set_id=SetIds.HK) + sid = make_sid(object_id=CORE_CONTROLLER_ID, set_id=SetId.HK) q.add_pus_tc(generate_one_hk_command(sid)) @@ -261,7 +261,7 @@ def reset_specific_boot_counter(q: DefaultPusQueueHelper, chip: int, copy: int): q.add_pus_tc( make_fsfw_action_cmd( object_id=CORE_CONTROLLER_ID, - action_id=ActionIds.RESET_REBOOT_COUNTER, + action_id=ActionId.RESET_REBOOT_COUNTER, user_data=bytes([chip, copy]), ) ) @@ -269,7 +269,7 @@ def reset_specific_boot_counter(q: DefaultPusQueueHelper, chip: int, copy: int): def create_full_reboot_cmds() -> PusTelecommand: return make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, action_id=ActionIds.FULL_REBOOT + object_id=CORE_CONTROLLER_ID, action_id=ActionId.FULL_REBOOT ) @@ -342,12 +342,12 @@ def create_xsc_reboot_cmds( tc_data.append(chip) tc_data.append(copy) return make_fsfw_action_cmd( - object_id=CORE_CONTROLLER_ID, action_id=ActionIds.XSC_REBOOT, user_data=tc_data + object_id=CORE_CONTROLLER_ID, action_id=ActionId.XSC_REBOOT, user_data=tc_data ) def handle_core_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): - if set_id == SetIds.HK: + if set_id == SetId.HK: pw = PrintWrapper(printer) fmt_str = "!fff" inc_len = struct.calcsize(fmt_str) diff --git a/eive_tmtc/tmtc/power/common_power.py b/eive_tmtc/tmtc/power/common_power.py index 238d398..20ac938 100644 --- a/eive_tmtc/tmtc/power/common_power.py +++ b/eive_tmtc/tmtc/power/common_power.py @@ -4,7 +4,7 @@ from typing import List from eive_tmtc.gomspace.gomspace_common import ( pack_set_u8_param_command, Channel, - GomspaceDeviceActionIds, + GomspaceDeviceActionId, prompt_and_pack_set_integer_param_command, prompt_and_pack_get_param_command, pack_request_config_command, @@ -144,7 +144,7 @@ def pack_common_gomspace_cmds( q.add_log_cmd(f"{prefix}: {PowerInfo.PRINT_SWITCH_V_I}") q.add_pus_tc( make_fsfw_action_cmd( - object_id=objb, action_id=GomspaceDeviceActionIds.PRINT_SWITCH_V_I + object_id=objb, action_id=GomspaceDeviceActionId.PRINT_SWITCH_V_I ) ) if op_code in PowerOpCodes.REBOOT: @@ -154,7 +154,7 @@ def pack_common_gomspace_cmds( q.add_log_cmd(f"{prefix}: {PowerInfo.PRINT_LATCHUPS}") q.add_pus_tc( make_fsfw_action_cmd( - object_id=objb, action_id=GomspaceDeviceActionIds.PRINT_LATCHUPS + object_id=objb, action_id=GomspaceDeviceActionId.PRINT_LATCHUPS ) ) if op_code in GomspaceOpCode.SET_INTEGER_PARAM: @@ -189,7 +189,7 @@ def pack_common_gomspace_cmds( q.add_pus_tc( make_fsfw_action_cmd( object_id=object_id.as_bytes, - action_id=GomspaceDeviceActionIds.SAVE_TABLE, + action_id=GomspaceDeviceActionId.SAVE_TABLE, user_data=bytes([source_table]), ) ) @@ -204,7 +204,7 @@ def pack_common_gomspace_cmds( q.add_pus_tc( make_fsfw_action_cmd( object_id=object_id.as_bytes, - action_id=GomspaceDeviceActionIds.SAVE_TABLE_DEFAULT, + action_id=GomspaceDeviceActionId.SAVE_TABLE_DEFAULT, user_data=bytes([source_table]), ) ) @@ -232,7 +232,7 @@ def pack_common_gomspace_cmds( q.add_pus_tc( make_fsfw_action_cmd( object_id=object_id.as_bytes, - action_id=GomspaceDeviceActionIds.LOAD_TABLE, + action_id=GomspaceDeviceActionId.LOAD_TABLE, user_data=bytes([source_table, target_table]), ) ) diff --git a/eive_tmtc/tmtc/power/tm.py b/eive_tmtc/tmtc/power/tm.py index 73d2a26..9e04482 100644 --- a/eive_tmtc/tmtc/power/tm.py +++ b/eive_tmtc/tmtc/power/tm.py @@ -10,7 +10,7 @@ from eive_tmtc.tmtc.power.common_power import ( from tmtccmd.util import ObjectIdBase from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter from eive_tmtc.pus_tm.defs import PrintWrapper -from eive_tmtc.gomspace.gomspace_common import GomspaceDeviceActionIds +from eive_tmtc.gomspace.gomspace_common import GomspaceDeviceActionId from eive_tmtc.config.object_ids import ( PDU_1_HANDLER_ID, PDU_2_HANDLER_ID, @@ -439,7 +439,7 @@ def handle_acu_hk_data(printer: FsfwTmTcPrinter, set_id: int, hk_data: bytes): def handle_get_param_data_reply( obj_id: ObjectIdBase, action_id: int, pw: PrintWrapper, custom_data: bytearray ): - if action_id == GomspaceDeviceActionIds.PARAM_GET: + if action_id == GomspaceDeviceActionId.PARAM_GET: pw.dlog(f"Parameter Get Request received for object {obj_id}") header_list = [ "Gomspace Request Code", @@ -461,7 +461,7 @@ def handle_get_param_data_reply( ] pw.dlog(f"{header_list}") pw.dlog(f"{content_list}") - elif action_id == GomspaceDeviceActionIds.REQUEST_CONFIG_TABLE: + elif action_id == GomspaceDeviceActionId.REQUEST_CONFIG_TABLE: print(f"Received config table with size {len(custom_data)} for object {obj_id}") if obj_id.as_bytes == PDU_1_HANDLER_ID or obj_id.as_bytes == PDU_2_HANDLER_ID: pdu_config_table_handler(pw, custom_data, obj_id) diff --git a/eive_tmtc/tmtc/solar_array_deployment.py b/eive_tmtc/tmtc/solar_array_deployment.py index 96eea65..90abd64 100644 --- a/eive_tmtc/tmtc/solar_array_deployment.py +++ b/eive_tmtc/tmtc/solar_array_deployment.py @@ -22,7 +22,7 @@ from tmtccmd import get_console_logger LOGGER = get_console_logger() -class OpCodes: +class OpCode: MANUAL_DEPLOYMENT = "man_depl" @@ -30,14 +30,14 @@ class Info: MANUAL_DEPLOYMENT = "Manual Solar Array Deployment" -class ActionIds: +class ActionId: MANUAL_DEPLOYMENT = 5 @tmtc_definitions_provider def pack_sa_depl_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCodes.MANUAL_DEPLOYMENT, info=Info.MANUAL_DEPLOYMENT) + oce.add(keys=OpCode.MANUAL_DEPLOYMENT, info=Info.MANUAL_DEPLOYMENT) defs.add_service( name=CustomServiceList.SA_DEPLYOMENT, info="Solar Array Deployment", @@ -73,6 +73,6 @@ def pack_solar_array_deployment_test_into(p: ServiceProviderParams): dry_run_str = "" q.add_log_cmd(f"Testing S/A Deployment with burn time {burn_time}{dry_run_str}") command = make_fsfw_action_cmd( - SOLAR_ARRAY_DEPLOYMENT_ID, ActionIds.MANUAL_DEPLOYMENT, user_data + SOLAR_ARRAY_DEPLOYMENT_ID, ActionId.MANUAL_DEPLOYMENT, user_data ) q.add_pus_tc(command) From a42cdcdfbae4b274013bf595558c288acd3f9f74 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:21:12 +0100 Subject: [PATCH 20/34] bump minor version --- CHANGELOG.md | 6 ++++++ eive_tmtc/__init__.py | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94615a3..a2d0950 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/). The [milestone](https://egit.irs.uni-stuttgart.de/eive/eive-obsw/milestones) list yields a list of all related PRs for each release. +# [v2.2.0] 16.01.2023 + +- A lot of consistency renaming: Single name for enums which are not flag enums, + e.g `ActionId` instead of `ActionIds` +- Updated required Python version to 3.10 + # [v2.1.1] 12.01.2023 - Typo in `setup.cfg`, missing version prefix `v` for `tmtccmd` diff --git a/eive_tmtc/__init__.py b/eive_tmtc/__init__.py index c776e3f..a071f7b 100644 --- a/eive_tmtc/__init__.py +++ b/eive_tmtc/__init__.py @@ -2,10 +2,10 @@ from pathlib import Path SW_NAME = "eive-tmtc" VERSION_MAJOR = 2 -VERSION_MINOR = 1 -VERSION_REVISION = 1 +VERSION_MINOR = 2 +VERSION_REVISION = 0 -__version__ = "2.1.1" +__version__ = "2.2.0" EIVE_TMTC_ROOT = Path(__file__).parent PACKAGE_ROOT = EIVE_TMTC_ROOT.parent From e1cd0e9b5cba6d727a31172f4b69afbea41bd510 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:22:25 +0100 Subject: [PATCH 21/34] update author field --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 55ce2d5..5e0e504 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,7 +5,7 @@ version = attr: eive_tmtc.__version__ long_description = file: README.md long_description_content_type = text/markdown license = Apache-2.0 -author = Robin Mueller +author = Robin Mueller, Jakob Meier author_email = muellerr@irs.uni-stuttgart.de platform = any From aff3ced2c23d9f38c4c6fc44683ff33793157c97 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:48:12 +0100 Subject: [PATCH 22/34] start adding acs ctrl modes --- eive_tmtc/tmtc/acs/acs_ctrl.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index 70fb8d2..3921d6c 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -15,6 +15,7 @@ from tmtccmd.config.tmtc import ( ) from tmtccmd.tc.pus_20_params import pack_scalar_boolean_parameter_app_data from tmtccmd.tc import service_provider +from tmtccmd.tc.pus_200_fsfw_modes import Modes, pack_mode_data, Subservices from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_3_fsfw_hk import ( generate_one_hk_command, @@ -42,6 +43,8 @@ class SetId(enum.IntEnum): class OpCodes: + OFF = ["off"] + NML = ["normal"] REQUEST_RAW_MGM_HK = ["0", "mgm_raw_hk"] ENABLE_RAW_MGM_HK = ["1", "enable_mgm_raw_hk"] DISABLE_RAW_MGM_HK = ["2", "disable_mgm_raw_hk"] @@ -75,6 +78,8 @@ class OpCodes: class Info: + OFF = "Switch ACS CTRL off" + NML = "Switch ACS CTRL normal" REQUEST_RAW_MGM_HK = "Request Raw MGM HK once" ENABLE_RAW_MGM_HK = "Enable Raw MGM HK data generation" DISABLE_RAW_MGM_HK = "Disable Raw MGM HK data generation" @@ -122,6 +127,8 @@ if PERFORM_MGM_CALIBRATION: @tmtc_definitions_provider def acs_cmd_defs(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() + oce.add(keys=OpCodes.OFF, info=Info.OFF) + oce.add(keys=OpCodes.NML, info=Info.NML) oce.add(keys=OpCodes.REQUEST_RAW_MGM_HK, info=Info.REQUEST_RAW_MGM_HK) oce.add(keys=OpCodes.ENABLE_RAW_MGM_HK, info=Info.ENABLE_RAW_MGM_HK) oce.add(keys=OpCodes.DISABLE_RAW_MGM_HK, info=Info.DISABLE_RAW_MGM_HK) @@ -161,6 +168,10 @@ def acs_cmd_defs(defs: TmtcDefinitionWrapper): def pack_acs_ctrl_command(p: ServiceProviderParams): op_code = p.op_code q = p.queue_helper + if op_code in OpCodes.OFF: + pass + if op_code in OpCodes.NML: + pass if op_code in OpCodes.REQUEST_RAW_MGM_HK: q.add_log_cmd(Info.REQUEST_RAW_MGM_HK) q.add_pus_tc( From 74a439955f1b6fc27bb03c2c7dab099676cc5e65 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 14:53:38 +0100 Subject: [PATCH 23/34] use specific commit --- setup.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 071ebb7..8ec82a0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,8 @@ classifiers = [options] install_requires = - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 + # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@vd5635e6#egg=tmtccmd packages = find: python_requires = >=3.8 include_package_data = True From 4839ab43657dc3e5feb1d37adfbc00da049811f8 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 15:05:33 +0100 Subject: [PATCH 24/34] update tmtccmd dependency --- eive_tmtc/pus_tc/devs/bpx_batt.py | 6 ++-- eive_tmtc/pus_tc/devs/plpcdu.py | 34 ++++++++++---------- eive_tmtc/pus_tc/devs/rad_sensor.py | 10 +++--- eive_tmtc/pus_tc/devs/rtd.py | 10 +++--- eive_tmtc/pus_tc/devs/scex.py | 6 ++-- eive_tmtc/pus_tc/devs/star_tracker.py | 12 +++---- eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py | 8 ++--- eive_tmtc/pus_tc/devs/tmp1075.py | 6 ++-- eive_tmtc/pus_tc/service_200_mode.py | 10 +++--- eive_tmtc/pus_tc/system/controllers.py | 8 ++--- eive_tmtc/pus_tc/system/tcs.py | 6 ++-- eive_tmtc/pus_tm/event_handler.py | 12 +++---- eive_tmtc/tmtc/acs/acs_board.py | 16 ++++----- eive_tmtc/tmtc/acs/acs_ctrl.py | 10 +++--- eive_tmtc/tmtc/acs/imtq.py | 8 ++--- eive_tmtc/tmtc/acs/reaction_wheels.py | 14 ++++---- eive_tmtc/tmtc/acs/sus_board.py | 10 +++--- eive_tmtc/tmtc/common.py | 4 +-- eive_tmtc/tmtc/payload/ploc_mpsoc.py | 8 ++--- eive_tmtc/tmtc/payload/ploc_supervisor.py | 8 ++--- eive_tmtc/tmtc/test.py | 6 ++-- 21 files changed, 106 insertions(+), 106 deletions(-) diff --git a/eive_tmtc/pus_tc/devs/bpx_batt.py b/eive_tmtc/pus_tc/devs/bpx_batt.py index 2258021..c974fe2 100644 --- a/eive_tmtc/pus_tc/devs/bpx_batt.py +++ b/eive_tmtc/pus_tc/devs/bpx_batt.py @@ -11,7 +11,7 @@ from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices @@ -66,7 +66,7 @@ def pack_bpx_commands(p: ServiceProviderParams): q.add_pus_tc(generate_one_hk_command(sid=sid)) if op_code in BpxOpCode.OFF: q.add_log_cmd("Off mode") - mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.OFF, 0) + mode_cmd = pack_mode_data(BPX_HANDLER_ID, Mode.OFF, 0) q.add_pus_tc( PusTelecommand( service=200, @@ -76,7 +76,7 @@ def pack_bpx_commands(p: ServiceProviderParams): ) if op_code in BpxOpCode.ON: q.add_log_cmd("On mode") - mode_cmd = pack_mode_data(BPX_HANDLER_ID, Modes.ON, 0) + mode_cmd = pack_mode_data(BPX_HANDLER_ID, Mode.ON, 0) q.add_pus_tc( PusTelecommand( service=200, diff --git a/eive_tmtc/pus_tc/devs/plpcdu.py b/eive_tmtc/pus_tc/devs/plpcdu.py index ee13348..72db431 100644 --- a/eive_tmtc/pus_tc/devs/plpcdu.py +++ b/eive_tmtc/pus_tc/devs/plpcdu.py @@ -18,7 +18,7 @@ from tmtccmd.tc.pus_11_tc_sched import ( generate_enable_tc_sched_cmd, generate_time_tagged_cmd, ) -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservices from tmtccmd.tc.pus_20_params import ( pack_scalar_double_param_app_data, pack_fsfw_load_param_cmd, @@ -161,9 +161,9 @@ def add_pl_pcdu_cmds(defs: TmtcDefinitionWrapper): def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str): if op_code in OpCode.SWITCH_ON: - pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_ON, mode=Modes.ON, submode=0) + pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_ON, mode=Mode.ON, submode=0) if op_code in OpCode.SWITCH_OFF: - pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_OFF, mode=Modes.OFF, submode=0) + pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_OFF, mode=Mode.OFF, submode=0) if op_code in OpCode.ENABLE_HK: interval = float( input("Please enter HK collection interval in floating point seconds: ") @@ -184,7 +184,7 @@ def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str): pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_SSR, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode( NormalSubmodesMask.SOLID_STATE_RELAYS_ADC_ON ), @@ -193,35 +193,35 @@ def pack_pl_pcdu_commands(q: DefaultPusQueueHelper, op_code: str): pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_DRO, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.DRO_ON), ) if op_code in OpCode.NORMAL_X8: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_X8, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.X8_ON), ) if op_code in OpCode.NORMAL_TX: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_TX, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.TX_ON), ) if op_code in OpCode.NORMAL_MPA: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_MPA, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.MPA_ON), ) if op_code in OpCode.NORMAL_HPA: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_HPA, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.HPA_ON), ) if op_code in OpCode.REQ_OS_HK: @@ -252,14 +252,14 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): pl_pcdu_on = PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, - app_data=pack_mode_data(object_id=PL_PCDU_ID, mode=Modes.ON, submode=0), + app_data=pack_mode_data(object_id=PL_PCDU_ID, mode=Mode.ON, submode=0), ) ssr_on = PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode( NormalSubmodesMask.SOLID_STATE_RELAYS_ADC_ON ), @@ -270,7 +270,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): subservice=Subservices.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.DRO_ON), ), ) @@ -279,7 +279,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): subservice=Subservices.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.X8_ON), ), ) @@ -288,7 +288,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): subservice=Subservices.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.TX_ON), ), ) @@ -297,7 +297,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): subservice=Subservices.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.MPA_ON), ), ) @@ -306,7 +306,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): subservice=Subservices.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.HPA_ON), ), ) @@ -439,7 +439,7 @@ def pack_failure_injection_cmd(q: DefaultPusQueueHelper, param_id: int, print_st def pack_pl_pcdu_mode_cmd( - q: DefaultPusQueueHelper, info: str, mode: Modes, submode: int + q: DefaultPusQueueHelper, info: str, mode: Mode, submode: int ): q.add_log_cmd(info) mode_data = pack_mode_data(object_id=PL_PCDU_ID, mode=mode, submode=submode) diff --git a/eive_tmtc/pus_tc/devs/rad_sensor.py b/eive_tmtc/pus_tc/devs/rad_sensor.py index d42c10e..74eecb8 100644 --- a/eive_tmtc/pus_tc/devs/rad_sensor.py +++ b/eive_tmtc/pus_tc/devs/rad_sensor.py @@ -10,7 +10,7 @@ import struct from eive_tmtc.config.definitions import CustomServiceList from spacepackets.ecss.tc import PusTelecommand -from eive_tmtc.pus_tc.service_200_mode import pack_mode_data, Modes +from eive_tmtc.pus_tc.service_200_mode import pack_mode_data, Mode from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.tc import DefaultPusQueueHelper @@ -69,11 +69,11 @@ def pack_rad_sensor_test_into( q.add_log_cmd(f"Commanding Radiation sensor handler {object_id}") if op_code in OpCode.ON: - rad_sensor_mode_cmd(object_id, Modes.ON, Info.ON, q) + rad_sensor_mode_cmd(object_id, Mode.ON, Info.ON, q) if op_code in OpCode.NORMAL: - rad_sensor_mode_cmd(object_id, Modes.NORMAL, Info.NORMAL, q) + rad_sensor_mode_cmd(object_id, Mode.NORMAL, Info.NORMAL, q) if op_code in OpCode.OFF: - rad_sensor_mode_cmd(object_id, Modes.OFF, Info.OFF, q) + rad_sensor_mode_cmd(object_id, Mode.OFF, Info.OFF, q) if op_code in OpCode.REQ_HK_ONCE: q.add_log_cmd(f"Rad sensor: {Info.REQ_OS_HK}") q.add_pus_tc( @@ -90,7 +90,7 @@ def pack_rad_sensor_test_into( def rad_sensor_mode_cmd( - object_id: ObjectIdU32, mode: Modes, info: str, q: DefaultPusQueueHelper + object_id: ObjectIdU32, mode: Mode, info: str, q: DefaultPusQueueHelper ): q.add_log_cmd(f"Rad sensor: {info}") mode_data = pack_mode_data(object_id.as_bytes, mode, 0) diff --git a/eive_tmtc/pus_tc/devs/rtd.py b/eive_tmtc/pus_tc/devs/rtd.py index e62869f..0b33bd2 100644 --- a/eive_tmtc/pus_tc/devs/rtd.py +++ b/eive_tmtc/pus_tc/devs/rtd.py @@ -8,7 +8,7 @@ from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.util import ObjectIdU32 -from tmtccmd.tc.pus_200_fsfw_modes import Modes, pack_mode_data, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_data, Subservices import eive_tmtc.config.object_ids as oids from eive_tmtc.config.object_ids import get_object_ids @@ -68,9 +68,7 @@ def pack_rtd_commands( object_id_dict = get_object_ids() object_id = object_id_dict.get(RTD_IDS[tgt_rtd_idx]) if op_code in OpCode.ON: - app_data = pack_mode_data( - object_id=object_id.as_bytes, mode=Modes.ON, submode=0 - ) + app_data = pack_mode_data(object_id=object_id.as_bytes, mode=Mode.ON, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data @@ -78,7 +76,7 @@ def pack_rtd_commands( ) if op_code in OpCode.NORMAL: app_data = pack_mode_data( - object_id=object_id.as_bytes, mode=Modes.NORMAL, submode=0 + object_id=object_id.as_bytes, mode=Mode.NORMAL, submode=0 ) q.add_pus_tc( PusTelecommand( @@ -87,7 +85,7 @@ def pack_rtd_commands( ) if op_code in OpCode.OFF: app_data = pack_mode_data( - object_id=object_id.as_bytes, mode=Modes.OFF, submode=0 + object_id=object_id.as_bytes, mode=Mode.OFF, submode=0 ) q.add_pus_tc( PusTelecommand( diff --git a/eive_tmtc/pus_tc/devs/scex.py b/eive_tmtc/pus_tc/devs/scex.py index 871b5b7..a5e1974 100644 --- a/eive_tmtc/pus_tc/devs/scex.py +++ b/eive_tmtc/pus_tc/devs/scex.py @@ -5,7 +5,7 @@ from spacepackets.ecss import PusTelecommand from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.config.tmtc import tmtc_definitions_provider -from tmtccmd.tc.pus_200_fsfw_modes import Modes, pack_mode_data, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_data, Subservices from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd @@ -84,7 +84,7 @@ def pack_scex_cmds(p: ServiceProviderParams): PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, - app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.ON, 0), + app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.ON, 0), ) ) if op_code in OpCode.SWITCH_OFF: @@ -93,7 +93,7 @@ def pack_scex_cmds(p: ServiceProviderParams): PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, - app_data=pack_mode_data(SCEX_HANDLER_ID, Modes.OFF, 0), + app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.OFF, 0), ) ) if op_code in OpCode.PING: diff --git a/eive_tmtc/pus_tc/devs/star_tracker.py b/eive_tmtc/pus_tc/devs/star_tracker.py index cf86ad1..167595f 100644 --- a/eive_tmtc/pus_tc/devs/star_tracker.py +++ b/eive_tmtc/pus_tc/devs/star_tracker.py @@ -9,7 +9,7 @@ import enum import struct from spacepackets.ecss.tc import PusTelecommand -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode from tmtccmd.logging import get_console_logger from tmtccmd.tc import DefaultPusQueueHelper @@ -164,23 +164,23 @@ def pack_star_tracker_commands( obyt = object_id.as_bytes if op_code == "0": q.add_log_cmd("Star tracker: Mode On, Submode Bootloader") - data = pack_mode_data(obyt, Modes.ON, Submode.BOOTLOADER) + data = pack_mode_data(obyt, Mode.ON, Submode.BOOTLOADER) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "1": q.add_log_cmd("Star tracker: Mode On, Submode Firmware") - data = pack_mode_data(obyt, Modes.ON, Submode.FIRMWARE) + data = pack_mode_data(obyt, Mode.ON, Submode.FIRMWARE) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "2": q.add_log_cmd("Star tracker: Mode Normal") - data = pack_mode_data(obyt, Modes.NORMAL, 0) + data = pack_mode_data(obyt, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "3": q.add_log_cmd("Star tracker: Mode Off") - data = pack_mode_data(obyt, Modes.OFF, 0) + data = pack_mode_data(obyt, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "4": q.add_log_cmd("Star tracker: Mode Raw") - data = pack_mode_data(obyt, Modes.RAW, 0) + data = pack_mode_data(obyt, Mode.RAW, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "5": q.add_log_cmd("Star tracker: Ping") diff --git a/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py b/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py index bf9d03f..84cd894 100644 --- a/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py +++ b/eive_tmtc/pus_tc/devs/syrlinks_hk_handler.py @@ -16,7 +16,7 @@ from tmtccmd.config.tmtc import ( from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.tc.pus_3_fsfw_hk import make_sid, generate_one_hk_command from spacepackets.ecss.tc import PusTelecommand -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode import struct from tmtccmd.util import ObjectIdU32 @@ -100,15 +100,15 @@ def pack_syrlinks_command( q.add_log_cmd(f"Testing Syrlinks with object id: {object_id.as_hex_string}") if op_code == OpCode.OFF: q.add_log_cmd(f"{prefix}: Set mode off") - data = pack_mode_data(obyt, Modes.OFF, 0) + data = pack_mode_data(obyt, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == OpCode.ON: q.add_log_cmd(f"{prefix}: Set mode on") - data = pack_mode_data(obyt, Modes.ON, 0) + data = pack_mode_data(obyt, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == OpCode.NORMAL: q.add_log_cmd(f"{prefix}: Mode Normal") - data = pack_mode_data(obyt, Modes.NORMAL, 0) + data = pack_mode_data(obyt, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == OpCode.STANDBY: q.add_log_cmd(f"{prefix}: Set TX mode standby") diff --git a/eive_tmtc/pus_tc/devs/tmp1075.py b/eive_tmtc/pus_tc/devs/tmp1075.py index d9139ff..0f6f403 100644 --- a/eive_tmtc/pus_tc/devs/tmp1075.py +++ b/eive_tmtc/pus_tc/devs/tmp1075.py @@ -8,7 +8,7 @@ from spacepackets.ecss.tc import PusTelecommand from eive_tmtc.pus_tc.service_200_mode import pack_mode_data from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import Modes +from tmtccmd.tc.pus_200_fsfw_modes import Mode from tmtccmd.util import ObjectIdU32 @@ -51,12 +51,12 @@ def pack_tmp1075_test_into( if Tmp1075TestProcedure.set_mode_normal: q.add_log_cmd("TMP1075: Set Mode Normal") - mode_data = pack_mode_data(obyt, Modes.NORMAL, 0) + mode_data = pack_mode_data(obyt, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) if Tmp1075TestProcedure.set_mode_on: q.add_log_cmd("TMP1075: Set Mode On") - mode_data = pack_mode_data(obyt, Modes.ON, 0) + mode_data = pack_mode_data(obyt, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) return q diff --git a/eive_tmtc/pus_tc/service_200_mode.py b/eive_tmtc/pus_tc/service_200_mode.py index 3158af0..a13eb6b 100644 --- a/eive_tmtc/pus_tc/service_200_mode.py +++ b/eive_tmtc/pus_tc/service_200_mode.py @@ -7,7 +7,7 @@ """ from spacepackets.ecss.tc import PusTelecommand from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode from eive_tmtc.config.object_ids import TEST_DEVICE_ID TEST_DEVICE_OBJ_ID = TEST_DEVICE_ID @@ -19,17 +19,17 @@ def pack_service_200_test_into(q: DefaultPusQueueHelper): obj_id = TEST_DEVICE_OBJ_ID # Set On Mode q.add_log_cmd("Testing Service 200: Set Mode On") - mode_data = pack_mode_data(obj_id, Modes.ON, 0) + mode_data = pack_mode_data(obj_id, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) # Set Normal mode q.add_log_cmd("Testing Service 200: Set Mode Normal") - mode_data = pack_mode_data(obj_id, Modes.NORMAL, 0) + mode_data = pack_mode_data(obj_id, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) # Set Raw Mode q.add_log_cmd("Testing Service 200: Set Mode Raw") - mode_data = pack_mode_data(obj_id, Modes.RAW, 0) + mode_data = pack_mode_data(obj_id, Mode.RAW, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) # Set Off Mode q.add_log_cmd("Testing Service 200: Set Mode Off") - mode_data = pack_mode_data(obj_id, Modes.OFF, 0) + mode_data = pack_mode_data(obj_id, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) diff --git a/eive_tmtc/pus_tc/system/controllers.py b/eive_tmtc/pus_tc/system/controllers.py index d595f08..cabccf9 100644 --- a/eive_tmtc/pus_tc/system/controllers.py +++ b/eive_tmtc/pus_tc/system/controllers.py @@ -1,7 +1,7 @@ from typing import Union from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import Modes +from tmtccmd.tc.pus_200_fsfw_modes import Mode from tmtccmd.util import ObjectIdU32, ObjectIdBase from eive_tmtc.tmtc.common import pack_mode_cmd_with_info @@ -54,7 +54,7 @@ def pack_cmd_ctrl_to_off( ): pack_mode_cmd_with_info( object_id=object_id.as_bytes, - mode=Modes.OFF, + mode=Mode.OFF, submode=0, q=q, info=f"Commanding {object_id} OFF", @@ -64,7 +64,7 @@ def pack_cmd_ctrl_to_off( def pack_cmd_ctrl_to_on(q: DefaultPusQueueHelper, object_id: ObjectIdU32): pack_mode_cmd_with_info( object_id=object_id.as_bytes, - mode=Modes.ON, + mode=Mode.ON, submode=0, q=q, info=f"Commanding {object_id} ON", @@ -76,7 +76,7 @@ def pack_cmd_ctrl_to_nml( ): pack_mode_cmd_with_info( object_id=object_id.as_bytes, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=0, q=q, info=f"Commanding {object_id} NORMAL", diff --git a/eive_tmtc/pus_tc/system/tcs.py b/eive_tmtc/pus_tc/system/tcs.py index 6b3e67e..cdd4353 100644 --- a/eive_tmtc/pus_tc/system/tcs.py +++ b/eive_tmtc/pus_tc/system/tcs.py @@ -4,7 +4,7 @@ from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import Modes +from tmtccmd.tc.pus_200_fsfw_modes import Mode from tmtccmd.tc.pus_3_fsfw_hk import ( make_sid, generate_one_hk_command, @@ -63,7 +63,7 @@ def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str): if op_code in OpCode.TCS_BOARD_ASS_NORMAL: pack_mode_cmd_with_info( object_id=TCS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=0, q=q, info=Info.TCS_BOARD_ASS_NORMAL, @@ -71,7 +71,7 @@ def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str): if op_code in OpCode.TCS_BOARD_ASS_OFF: pack_mode_cmd_with_info( object_id=TCS_BOARD_ASS_ID, - mode=Modes.OFF, + mode=Mode.OFF, submode=0, q=q, info=Info.TCS_BOARD_ASS_OFF, diff --git a/eive_tmtc/pus_tm/event_handler.py b/eive_tmtc/pus_tm/event_handler.py index c212a7d..b60cfae 100644 --- a/eive_tmtc/pus_tm/event_handler.py +++ b/eive_tmtc/pus_tm/event_handler.py @@ -5,7 +5,7 @@ from eive_tmtc.config.object_ids import get_object_ids from eive_tmtc.pus_tm.defs import PrintWrapper from eive_tmtc.pus_tm.verification_handler import generic_retval_printout from eive_tmtc.tmtc.acs.acs_subsystem import AcsMode -from tmtccmd.tc.pus_200_fsfw_modes import Modes +from tmtccmd.tc.pus_200_fsfw_modes import Mode from tmtccmd.tm import Service5Tm from tmtccmd.logging import get_console_logger @@ -55,7 +55,7 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): if info.name == "MODE_INFO": mode_name = "Unknown" if obj_name == "ACS_SUBSYSTEM": - if tm.param_1 == Modes.OFF: + if tm.param_1 == Mode.OFF: mode_name = "Off" elif tm.param_1 == AcsMode.IDLE: mode_name = "Idle" @@ -66,13 +66,13 @@ def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): elif tm.param_1 == AcsMode.TARGET_PT: mode_name = "Target Pointing" else: - if tm.param_1 == Modes.OFF: + if tm.param_1 == Mode.OFF: mode_name = "Off" - elif tm.param_1 == Modes.ON: + elif tm.param_1 == Mode.ON: mode_name = "On" - elif tm.param_1 == Modes.NORMAL: + elif tm.param_1 == Mode.NORMAL: mode_name = "Normal" - elif tm.param_1 == Modes.RAW: + elif tm.param_1 == Mode.RAW: mode_name = "Raw" pw.dlog(f"Mode Number {tm.param_1}, Mode Name {mode_name}") pw.dlog(f"Submode: {tm.param_2}") diff --git a/eive_tmtc/tmtc/acs/acs_board.py b/eive_tmtc/tmtc/acs/acs_board.py index 5b44c8a..37fe840 100644 --- a/eive_tmtc/tmtc/acs/acs_board.py +++ b/eive_tmtc/tmtc/acs/acs_board.py @@ -8,7 +8,7 @@ from tmtccmd.config.tmtc import ( ) from tmtccmd.tc import service_provider, DefaultPusQueueHelper from tmtccmd.tc.decorator import ServiceProviderParams -from tmtccmd.tc.pus_200_fsfw_modes import Modes +from tmtccmd.tc.pus_200_fsfw_modes import Mode from eive_tmtc.config.object_ids import ACS_BOARD_ASS_ID from eive_tmtc.tmtc.common import pack_mode_cmd_with_info @@ -34,7 +34,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_A_SIDE: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=DualSideSubmode.A_SIDE, q=q, info="Switching to ACS board assembly A side", @@ -42,7 +42,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_B_SIDE: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=DualSideSubmode.B_SIDE, q=q, info="Switching to ACS board assembly B side", @@ -50,7 +50,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_DUAL_MODE: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=DualSideSubmode.DUAL_SIDE, q=q, info="Switching to ACS board assembly dual mode", @@ -58,7 +58,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_A_ON: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.ON, + mode=Mode.ON, submode=DualSideSubmode.A_SIDE, q=q, info="Switching ACS board assembly A side on", @@ -66,7 +66,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_B_ON: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.ON, + mode=Mode.ON, submode=DualSideSubmode.B_SIDE, q=q, info="Switching ACS board assembly B side on", @@ -74,7 +74,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_DUAL_ON: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.ON, + mode=Mode.ON, submode=DualSideSubmode.B_SIDE, q=q, info="Switching ACS board assembly dual side on", @@ -82,7 +82,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): if op_code in AcsOpCodes.ACS_ASS_OFF: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, - mode=Modes.OFF, + mode=Mode.OFF, submode=0, q=q, info="Switching to ACS board assembly off", diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index 3921d6c..3e0c955 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -15,7 +15,7 @@ from tmtccmd.config.tmtc import ( ) from tmtccmd.tc.pus_20_params import pack_scalar_boolean_parameter_app_data from tmtccmd.tc import service_provider -from tmtccmd.tc.pus_200_fsfw_modes import Modes, pack_mode_data, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_command from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_3_fsfw_hk import ( generate_one_hk_command, @@ -43,7 +43,7 @@ class SetId(enum.IntEnum): class OpCodes: - OFF = ["off"] + OFF = ["off"] NML = ["normal"] REQUEST_RAW_MGM_HK = ["0", "mgm_raw_hk"] ENABLE_RAW_MGM_HK = ["1", "enable_mgm_raw_hk"] @@ -169,9 +169,11 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): op_code = p.op_code q = p.queue_helper if op_code in OpCodes.OFF: - pass + q.add_log_cmd(f"{Info.OFF}") + q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, Mode.OFF, 0)) if op_code in OpCodes.NML: - pass + q.add_log_cmd(f"{Info.NML}") + q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, Mode.NORMAL, 0)) if op_code in OpCodes.REQUEST_RAW_MGM_HK: q.add_log_cmd(Info.REQUEST_RAW_MGM_HK) q.add_pus_tc( diff --git a/eive_tmtc/tmtc/acs/imtq.py b/eive_tmtc/tmtc/acs/imtq.py index 6cef46d..6d22c40 100644 --- a/eive_tmtc/tmtc/acs/imtq.py +++ b/eive_tmtc/tmtc/acs/imtq.py @@ -22,7 +22,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import ( generate_one_diag_command, generate_one_hk_command, ) -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter @@ -87,15 +87,15 @@ def pack_imtq_test_into(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_cod if op_code in OpCode.OFF: q.add_log_cmd("IMTQ: Set mode off") - command = pack_mode_data(object_id.as_bytes, Modes.OFF, 0) + command = pack_mode_data(object_id.as_bytes, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCode.ON: q.add_log_cmd("IMTQ: Set mode on") - command = pack_mode_data(object_id.as_bytes, Modes.ON, 0) + command = pack_mode_data(object_id.as_bytes, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCode.NORMAL: q.add_log_cmd("IMTQ: Mode Normal") - command = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0) + command = pack_mode_data(object_id.as_bytes, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code == "3": q.add_log_cmd("IMTQ: Perform positive x self test") diff --git a/eive_tmtc/tmtc/acs/reaction_wheels.py b/eive_tmtc/tmtc/acs/reaction_wheels.py index 1fb5189..e63a3db 100644 --- a/eive_tmtc/tmtc/acs/reaction_wheels.py +++ b/eive_tmtc/tmtc/acs/reaction_wheels.py @@ -20,7 +20,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import ( disable_periodic_hk_command, ) from spacepackets.ecss.tc import PusTelecommand -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservices from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter @@ -148,17 +148,17 @@ def pack_single_rw_test_into( if op_code in OpCodesDev.ON: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ON}") - mode_data = pack_mode_data(object_id, Modes.ON, 0) + mode_data = pack_mode_data(object_id, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) if op_code in OpCodesDev.NML: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.NML}") - mode_data = pack_mode_data(object_id, Modes.NORMAL, 0) + mode_data = pack_mode_data(object_id, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) if op_code in OpCodesDev.OFF: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.OFF}") - mode_data = pack_mode_data(object_id, Modes.OFF, 0) + mode_data = pack_mode_data(object_id, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) if op_code in OpCodesDev.GET_TM: @@ -194,21 +194,21 @@ def pack_single_rw_test_into( def pack_rw_ass_cmds(q: DefaultPusQueueHelper, object_id: bytes, op_code: str): if op_code in OpCodesAss.OFF: - data = pack_mode_data(object_id=object_id, mode=Modes.OFF, submode=0) + data = pack_mode_data(object_id=object_id, mode=Mode.OFF, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=data ) ) if op_code in OpCodesAss.ON: - data = pack_mode_data(object_id=object_id, mode=Modes.ON, submode=0) + data = pack_mode_data(object_id=object_id, mode=Mode.ON, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=data ) ) if op_code in OpCodesAss.NML: - data = pack_mode_data(object_id=object_id, mode=Modes.NORMAL, submode=0) + data = pack_mode_data(object_id=object_id, mode=Mode.NORMAL, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=data diff --git a/eive_tmtc/tmtc/acs/sus_board.py b/eive_tmtc/tmtc/acs/sus_board.py index 9cdf4c9..6520a5e 100644 --- a/eive_tmtc/tmtc/acs/sus_board.py +++ b/eive_tmtc/tmtc/acs/sus_board.py @@ -9,7 +9,7 @@ from tmtccmd.config.tmtc import ( ) from tmtccmd.tc import service_provider, DefaultPusQueueHelper from tmtccmd.tc.decorator import ServiceProviderParams -from tmtccmd.tc.pus_200_fsfw_modes import Modes +from tmtccmd.tc.pus_200_fsfw_modes import Mode class SusOpCode: @@ -23,7 +23,7 @@ def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str): if op_code in SusOpCode.SUS_ASS_NOM_SIDE: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=DualSideSubmode.A_SIDE, q=q, info="Switching to SUS board to nominal side", @@ -31,7 +31,7 @@ def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str): if op_code in SusOpCode.SUS_ASS_RED_SIDE: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=DualSideSubmode.B_SIDE, q=q, info="Switching to SUS board to redundant side", @@ -39,7 +39,7 @@ def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str): if op_code in SusOpCode.SUS_ASS_OFF: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, - mode=Modes.OFF, + mode=Mode.OFF, submode=0, q=q, info="Switching SUS board off", @@ -47,7 +47,7 @@ def pack_sus_cmds(q: DefaultPusQueueHelper, op_code: str): if op_code in SusOpCode.SUS_ASS_DUAL_MODE: pack_mode_cmd_with_info( object_id=SUS_BOARD_ASS_ID, - mode=Modes.NORMAL, + mode=Mode.NORMAL, submode=DualSideSubmode.DUAL_SIDE, q=q, info="Switching to SUS board to dual side", diff --git a/eive_tmtc/tmtc/common.py b/eive_tmtc/tmtc/common.py index e078ce5..1d8fb1a 100644 --- a/eive_tmtc/tmtc/common.py +++ b/eive_tmtc/tmtc/common.py @@ -2,13 +2,13 @@ from typing import Union from spacepackets.ecss.tc import PusTelecommand from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservices from tmtccmd.util import ObjectIdU32 def pack_mode_cmd_with_info( object_id: Union[ObjectIdU32, bytes], - mode: Union[int, Modes], + mode: Union[int, Mode], submode: int, q: DefaultPusQueueHelper, info: str, diff --git a/eive_tmtc/tmtc/payload/ploc_mpsoc.py b/eive_tmtc/tmtc/payload/ploc_mpsoc.py index 900d6d7..671de0e 100644 --- a/eive_tmtc/tmtc/payload/ploc_mpsoc.py +++ b/eive_tmtc/tmtc/payload/ploc_mpsoc.py @@ -21,7 +21,7 @@ from spacepackets.ecss.tc import PusTelecommand from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams from eive_tmtc.utility.input_helper import InputHelper -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode LOGGER = get_console_logger() @@ -138,15 +138,15 @@ def pack_ploc_mpsoc_commands(p: ServiceProviderParams): obyt = object_id.as_bytes if op_code in OpCode.OFF: q.add_log_cmd(f"{prefix}: {Info.OFF}") - command = pack_mode_data(obyt, Modes.OFF, 0) + command = pack_mode_data(obyt, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCode.ON: q.add_log_cmd(f"{prefix}: {Info.ON}") - data = pack_mode_data(obyt, Modes.ON, 0) + data = pack_mode_data(obyt, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code in OpCode.NORMAL: q.add_log_cmd(f"{prefix}: {Info.NORMAL}") - data = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0) + data = pack_mode_data(object_id.as_bytes, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) if op_code == "3": q.add_log_cmd("PLOC MPSoC: TC mem write test") diff --git a/eive_tmtc/tmtc/payload/ploc_supervisor.py b/eive_tmtc/tmtc/payload/ploc_supervisor.py index 4746a59..1d7617a 100644 --- a/eive_tmtc/tmtc/payload/ploc_supervisor.py +++ b/eive_tmtc/tmtc/payload/ploc_supervisor.py @@ -19,7 +19,7 @@ from tmtccmd.config.tmtc import tmtc_definitions_provider, OpCodeEntry from tmtccmd.logging import get_console_logger from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter from eive_tmtc.utility.input_helper import InputHelper @@ -232,15 +232,15 @@ def pack_ploc_supv_commands(p: ServiceProviderParams): prefix = "PLOC Supervisor" if op_code in OpCodes.OFF: q.add_log_cmd(f"{prefix}: {Info.OFF}") - command = pack_mode_data(object_id.as_bytes, Modes.OFF, 0) + command = pack_mode_data(object_id.as_bytes, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCodes.ON: q.add_log_cmd(f"{prefix}: {Info.ON}") - command = pack_mode_data(object_id.as_bytes, Modes.ON, 0) + command = pack_mode_data(object_id.as_bytes, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCodes.NORMAL: q.add_log_cmd(f"{prefix}: {Info.NML}") - command = pack_mode_data(object_id.as_bytes, Modes.NORMAL, 0) + command = pack_mode_data(object_id.as_bytes, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=command)) if op_code in OpCodes.HK_TO_OBC: q.add_log_cmd(f"{prefix}: {Info.HK_TO_OBC}") diff --git a/eive_tmtc/tmtc/test.py b/eive_tmtc/tmtc/test.py index 87f6b6b..39f589f 100644 --- a/eive_tmtc/tmtc/test.py +++ b/eive_tmtc/tmtc/test.py @@ -1,4 +1,4 @@ -from spacepackets.ecss import PusTelecommand, PusServices +from spacepackets.ecss import PusTelecommand, PusService from tmtccmd.config import CoreServiceList from tmtccmd.config.tmtc import ( tmtc_definitions_provider, @@ -45,7 +45,7 @@ def pack_test_command(p: ServiceProviderParams): q.add_pus_tc(pack_service_17_ping_command()) if info.op_code == OpCodes.TRIGGER_EVENT: q.add_log_cmd("Sending PUS TC Event Trigger [17, 128]") - q.add_pus_tc(PusTelecommand(service=PusServices.S17_TEST, subservice=128)) + q.add_pus_tc(PusTelecommand(service=PusService.S17_TEST, subservice=128)) if info.op_code == OpCodes.PING_WITH_DATA: q.add_log_cmd("Sending Ping With Data, Size Reported Back [17, 129]") while True: @@ -60,6 +60,6 @@ def pack_test_command(p: ServiceProviderParams): next_byte = not next_byte q.add_pus_tc( PusTelecommand( - service=PusServices.S17_TEST, subservice=130, app_data=dummy_data + service=PusService.S17_TEST, subservice=130, app_data=dummy_data ) ) From 43ca7de786f7fa4cb52fe0d14a2b36365555b485 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 15:37:32 +0100 Subject: [PATCH 25/34] bump setup.cfg again --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 0c595d5..384338c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@vd5635e6#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@aea3c7d05fe88fdf683ea9a192fef02b871afcb0#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From 92ef500f4238cff37cd1b8b473cdd29ff2e001ba Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 17:11:20 +0100 Subject: [PATCH 26/34] restructure TCS module a bit --- eive_tmtc/pus_tc/devs/tmp1075.py | 13 +-- eive_tmtc/pus_tc/procedure_packer.py | 4 +- eive_tmtc/pus_tc/system/proc.py | 3 +- eive_tmtc/pus_tc/system/tcs.py | 78 ----------------- eive_tmtc/pus_tm/hk_handling.py | 2 +- eive_tmtc/{pus_tm/system => tmtc}/tcs.py | 101 +++++++++++++++++++++-- 6 files changed, 106 insertions(+), 95 deletions(-) delete mode 100644 eive_tmtc/pus_tc/system/tcs.py rename eive_tmtc/{pus_tm/system => tmtc}/tcs.py (57%) diff --git a/eive_tmtc/pus_tc/devs/tmp1075.py b/eive_tmtc/pus_tc/devs/tmp1075.py index 0f6f403..37dcd1c 100644 --- a/eive_tmtc/pus_tc/devs/tmp1075.py +++ b/eive_tmtc/pus_tc/devs/tmp1075.py @@ -5,10 +5,13 @@ @author J. Meier @date 06.01.2021 """ +import enum + from spacepackets.ecss.tc import PusTelecommand from eive_tmtc.pus_tc.service_200_mode import pack_mode_data from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.tc.pus_200_fsfw_modes import Mode +from tmtccmd.tc.pus_8_funccmd import make_action_id from tmtccmd.util import ObjectIdU32 @@ -28,9 +31,9 @@ class Tmp1075TestProcedure: set_mode_on = False # If mode is MODE_ON, temperature will only be read on command -class Tmp1075ActionId: - get_temp = bytearray([0x0, 0x0, 0x0, 0x01]) - start_adc_conversion = bytearray([0x0, 0x0, 0x0, 0x02]) +class Tmp1075ActionId(enum.IntEnum): + GET_TEMP = 1 + START_ADC_CONV = 2 def pack_tmp1075_test_into( @@ -42,11 +45,11 @@ def pack_tmp1075_test_into( obyt = object_id.as_bytes if Tmp1075TestProcedure.all or Tmp1075TestProcedure.start_adc_conversion: q.add_log_cmd("TMP1075: Starting new temperature conversion") - command = obyt + Tmp1075ActionId.start_adc_conversion + command = obyt + make_action_id(Tmp1075ActionId.GET_TEMP) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if Tmp1075TestProcedure.all or Tmp1075TestProcedure.get_temp: q.add_log_cmd("TMP1075: Read temperature") - command = obyt + Tmp1075ActionId.get_temp + command = obyt + make_action_id(Tmp1075ActionId.START_ADC_CONV) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) if Tmp1075TestProcedure.set_mode_normal: diff --git a/eive_tmtc/pus_tc/procedure_packer.py b/eive_tmtc/pus_tc/procedure_packer.py index 7195cdb..8d80392 100644 --- a/eive_tmtc/pus_tc/procedure_packer.py +++ b/eive_tmtc/pus_tc/procedure_packer.py @@ -9,6 +9,7 @@ from eive_tmtc.pus_tc.system.controllers import ( pack_cmd_ctrl_to_prompted_mode, get_object_from_op_code, ) +from eive_tmtc.tmtc.tcs import pack_tcs_sys_commands from tmtccmd import DefaultProcedureInfo, TcHandlerBase from tmtccmd.config import CoreServiceList from tmtccmd.logging import get_console_logger @@ -20,7 +21,6 @@ from tmtccmd.tc.decorator import ( from tmtccmd.tc.pus_5_event import ( pack_generic_service_5_test_into, ) -from tmtccmd.pus.pus_17_test import pack_service_17_ping_command from eive_tmtc.pus_tc.service_200_mode import pack_service_200_test_into from eive_tmtc.tmtc.power.p60dock import pack_p60dock_cmds @@ -42,10 +42,8 @@ from eive_tmtc.pus_tc.devs.star_tracker import pack_star_tracker_commands from eive_tmtc.pus_tc.devs.syrlinks_hk_handler import pack_syrlinks_command from eive_tmtc.pus_tc.devs.gps import pack_gps_command from eive_tmtc.tmtc.acs.acs_board import pack_acs_command -from eive_tmtc.tmtc.acs.sus_board import pack_sus_cmds from eive_tmtc.pus_tc.devs.plpcdu import pack_pl_pcdu_commands from eive_tmtc.pus_tc.devs.str_img_helper import pack_str_img_helper_command -from eive_tmtc.pus_tc.system.tcs import pack_tcs_sys_commands from eive_tmtc.pus_tc.system.proc import pack_proc_commands from eive_tmtc.config.definitions import CustomServiceList from eive_tmtc.config.object_ids import ( diff --git a/eive_tmtc/pus_tc/system/proc.py b/eive_tmtc/pus_tc/system/proc.py index 6fc3bdd..d078434 100644 --- a/eive_tmtc/pus_tc/system/proc.py +++ b/eive_tmtc/pus_tc/system/proc.py @@ -5,7 +5,6 @@ from datetime import timedelta from eive_tmtc.config.definitions import CustomServiceList from eive_tmtc.config.object_ids import get_object_ids -from eive_tmtc.pus_tc.system.tcs import pack_tcs_sys_commands from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry from tmtccmd.config.tmtc import tmtc_definitions_provider @@ -19,7 +18,7 @@ from tmtccmd.tc.pus_11_tc_sched import ( from tmtccmd.tc.pus_3_fsfw_hk import * import eive_tmtc.config.object_ids as oids -from eive_tmtc.pus_tc.system.tcs import OpCode as TcsOpCodes +from eive_tmtc.tmtc.tcs import OpCode as TcsOpCodes, pack_tcs_sys_commands from eive_tmtc.pus_tc.devs.bpx_batt import BpxSetId from eive_tmtc.tmtc.core import SetId as CoreSetIds from eive_tmtc.tmtc.power.common_power import SetId as GsSetIds diff --git a/eive_tmtc/pus_tc/system/tcs.py b/eive_tmtc/pus_tc/system/tcs.py deleted file mode 100644 index cdd4353..0000000 --- a/eive_tmtc/pus_tc/system/tcs.py +++ /dev/null @@ -1,78 +0,0 @@ -import enum - -from eive_tmtc.config.definitions import CustomServiceList -from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry -from tmtccmd.config.tmtc import tmtc_definitions_provider -from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import Mode -from tmtccmd.tc.pus_3_fsfw_hk import ( - make_sid, - generate_one_hk_command, -) - -from eive_tmtc.tmtc.common import pack_mode_cmd_with_info -from eive_tmtc.config.object_ids import TCS_BOARD_ASS_ID, TCS_CONTROLLER - - -class OpCode: - TCS_BOARD_ASS_NORMAL = ["0", "normal"] - TCS_BOARD_ASS_OFF = ["1", "off"] - REQUEST_SENSOR_TEMP_SET = ["2", "temps"] - - -class Info: - REQUEST_SENSOR_TEMP_SET = "Request HK set of primary sensor temperatures" - TCS_BOARD_ASS_NORMAL = "Switching TCS board assembly on" - TCS_BOARD_ASS_OFF = "Switching TCS board assembly off" - - -class SetId(enum.IntEnum): - PRIMARY_SENSORS = 0 - DEVICE_SENSORS = 1 - SUS_TEMP_SENSORS = 2 - - -@tmtc_definitions_provider -def add_tcs_cmds(defs: TmtcDefinitionWrapper): - oce = OpCodeEntry() - oce.add( - keys=OpCode.TCS_BOARD_ASS_NORMAL, - info=Info.TCS_BOARD_ASS_NORMAL, - ) - oce.add( - keys=OpCode.TCS_BOARD_ASS_OFF, - info=Info.TCS_BOARD_ASS_OFF, - ) - oce.add(keys=OpCode.REQUEST_SENSOR_TEMP_SET, info=Info.REQUEST_SENSOR_TEMP_SET) - defs.add_service( - name=CustomServiceList.TCS.value, - info="TCS Board Assembly", - op_code_entry=oce, - ) - - -def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCode.REQUEST_SENSOR_TEMP_SET: - sensor_set_sid = make_sid(TCS_CONTROLLER, SetId.PRIMARY_SENSORS) - q.add_log_cmd(Info.REQUEST_SENSOR_TEMP_SET) - q.add_pus_tc(generate_one_hk_command(sensor_set_sid)) - pack_tcs_ass_cmds(q, op_code) - - -def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str): - if op_code in OpCode.TCS_BOARD_ASS_NORMAL: - pack_mode_cmd_with_info( - object_id=TCS_BOARD_ASS_ID, - mode=Mode.NORMAL, - submode=0, - q=q, - info=Info.TCS_BOARD_ASS_NORMAL, - ) - if op_code in OpCode.TCS_BOARD_ASS_OFF: - pack_mode_cmd_with_info( - object_id=TCS_BOARD_ASS_ID, - mode=Mode.OFF, - submode=0, - q=q, - info=Info.TCS_BOARD_ASS_OFF, - ) diff --git a/eive_tmtc/pus_tm/hk_handling.py b/eive_tmtc/pus_tm/hk_handling.py index b7d7283..f8091ed 100644 --- a/eive_tmtc/pus_tm/hk_handling.py +++ b/eive_tmtc/pus_tm/hk_handling.py @@ -4,9 +4,9 @@ from eive_tmtc.tmtc.acs.acs_ctrl import handle_raw_mgm_data, handle_acs_ctrl_hk_ from eive_tmtc.pus_tm.devs.plpcdu import handle_plpcdu_hk from eive_tmtc.pus_tm.devs.rad_sensor import handle_rad_sensor_data from eive_tmtc.pus_tm.devs.sus import handle_sus_hk -from eive_tmtc.pus_tm.system.tcs import handle_thermal_controller_hk_data from eive_tmtc.tmtc.payload.ploc_supervisor import handle_supv_hk_data from eive_tmtc.tmtc.acs.reaction_wheels import handle_rw_hk_data +from eive_tmtc.tmtc.tcs import handle_thermal_controller_hk_data from tmtccmd.tm.pus_3_fsfw_hk import ( Service3Base, HkContentType, diff --git a/eive_tmtc/pus_tm/system/tcs.py b/eive_tmtc/tmtc/tcs.py similarity index 57% rename from eive_tmtc/pus_tm/system/tcs.py rename to eive_tmtc/tmtc/tcs.py index 0a51e8c..61cb2f1 100644 --- a/eive_tmtc/pus_tm/system/tcs.py +++ b/eive_tmtc/tmtc/tcs.py @@ -3,14 +3,103 @@ import pprint import struct from eive_tmtc.pus_tm.defs import PrintWrapper + +from eive_tmtc.config.definitions import CustomServiceList +from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry +from tmtccmd.config.tmtc import tmtc_definitions_provider +from tmtccmd.tc import DefaultPusQueueHelper +from tmtccmd.tc.pus_200_fsfw_modes import Mode +from tmtccmd.tc.pus_3_fsfw_hk import ( + make_sid, + generate_one_hk_command, +) + +from eive_tmtc.tmtc.common import pack_mode_cmd_with_info +from eive_tmtc.config.object_ids import TCS_BOARD_ASS_ID, TCS_CONTROLLER from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter +class OpCode: + TCS_BOARD_ASS_NORMAL = ["0", "normal"] + TCS_BOARD_ASS_OFF = ["1", "off"] + REQUEST_PRIMARY_TEMP_SET = ["temp"] + REQUEST_DEVICE_TEMP_SET = ["temp_devs"] + REQUEST_DEVICE_SUS_SET = ["temp_sus"] + + +class Info: + REQUEST_PRIMARY_TEMP_SET = "Request HK set of primary sensor temperatures" + REQUEST_DEVICE_TEMP_SET = ( + "Request HK set of device sensor (not dedicated sensors) temperatures" + ) + REQUEST_DEVICE_SUS_SET = "Request HK set of the SUS temperatures" + TCS_BOARD_ASS_NORMAL = "Switching TCS board assembly on" + TCS_BOARD_ASS_OFF = "Switching TCS board assembly off" + + class SetId(enum.IntEnum): - SENSOR_TEMPERATURE_SET = 0 - DEVICE_TEMPERATURE_SET = 1 - SUS_TEMPERATURE_SET = 2 + PRIMARY_SENSORS = 0 + DEVICE_SENSORS = 1 + SUS_TEMP_SENSORS = 2 + + +@tmtc_definitions_provider +def add_tcs_cmds(defs: TmtcDefinitionWrapper): + oce = OpCodeEntry() + oce.add( + keys=OpCode.TCS_BOARD_ASS_NORMAL, + info=Info.TCS_BOARD_ASS_NORMAL, + ) + oce.add( + keys=OpCode.TCS_BOARD_ASS_OFF, + info=Info.TCS_BOARD_ASS_OFF, + ) + oce.add(keys=OpCode.REQUEST_PRIMARY_TEMP_SET, info=Info.REQUEST_PRIMARY_TEMP_SET) + oce.add(keys=OpCode.REQUEST_DEVICE_TEMP_SET, info=Info.REQUEST_DEVICE_TEMP_SET) + oce.add(keys=OpCode.REQUEST_DEVICE_SUS_SET, info=Info.REQUEST_DEVICE_SUS_SET) + defs.add_service( + name=CustomServiceList.TCS.value, + info="TCS Board Assembly", + op_code_entry=oce, + ) + + +def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str): + if op_code in OpCode.REQUEST_PRIMARY_TEMP_SET: + sensor_set_sid = make_sid(TCS_CONTROLLER, SetId.PRIMARY_SENSORS) + q.add_log_cmd(Info.REQUEST_PRIMARY_TEMP_SET) + q.add_pus_tc(generate_one_hk_command(sensor_set_sid)) + if op_code in OpCode.REQUEST_DEVICE_TEMP_SET: + q.add_log_cmd(Info.REQUEST_DEVICE_TEMP_SET) + q.add_pus_tc( + generate_one_hk_command(make_sid(TCS_CONTROLLER, SetId.DEVICE_SENSORS)) + ) + if op_code in OpCode.REQUEST_DEVICE_SUS_SET: + q.add_log_cmd(Info.REQUEST_DEVICE_SUS_SET) + q.add_pus_tc( + generate_one_hk_command(make_sid(TCS_CONTROLLER, SetId.SUS_TEMP_SENSORS)) + ) + pack_tcs_ass_cmds(q, op_code) + + +def pack_tcs_ass_cmds(q: DefaultPusQueueHelper, op_code: str): + if op_code in OpCode.TCS_BOARD_ASS_NORMAL: + pack_mode_cmd_with_info( + object_id=TCS_BOARD_ASS_ID, + mode=Mode.NORMAL, + submode=0, + q=q, + info=Info.TCS_BOARD_ASS_NORMAL, + ) + if op_code in OpCode.TCS_BOARD_ASS_OFF: + pack_mode_cmd_with_info( + object_id=TCS_BOARD_ASS_ID, + mode=Mode.OFF, + submode=0, + q=q, + info=Info.TCS_BOARD_ASS_OFF, + ) def handle_thermal_controller_hk_data( @@ -23,7 +112,7 @@ def handle_thermal_controller_hk_data( if TCP_TEMP_DEV_SERVER: TCP_TEMP_DEV_SERVER = TmTcpServer("localhost", 7306) """ - if set_id == SetId.SENSOR_TEMPERATURE_SET: + if set_id == SetId.PRIMARY_SENSORS: pw = PrintWrapper(printer) pw.dlog("Received sensor temperature data") @@ -58,7 +147,7 @@ def handle_thermal_controller_hk_data( # tcp_server_sensor_temperatures.report_parsed_hk_data( # object_id, set_id, parsed_data # ) - elif set_id == SetId.DEVICE_TEMPERATURE_SET: + elif set_id == SetId.DEVICE_SENSORS: pw = PrintWrapper(printer) pw.dlog("Received device temperature data") fmt_str = "!fhhhhiiiifffhffffffffffffff" @@ -99,7 +188,7 @@ def handle_thermal_controller_hk_data( # tcp_server_device_temperatures.report_parsed_hk_data( # object_id, set_id, parsed_data # ) - elif set_id == SetId.SUS_TEMPERATURE_SET: + elif set_id == SetId.SUS_TEMP_SENSORS: pass # pw = PrintWrapper(printer) # pw.dlog("Received SUS temperature data") From ead4c91769034dbd6e4682edf4d93663e77abce0 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 16 Jan 2023 17:45:46 +0100 Subject: [PATCH 27/34] bump tmtccmd again --- eive_tmtc/pus_tm/action_reply_handler.py | 5 ++++- eive_tmtc/pus_tm/event_handler.py | 3 ++- eive_tmtc/pus_tm/factory_hook.py | 15 +++++++++++---- eive_tmtc/pus_tm/verification_handler.py | 5 ++++- setup.cfg | 2 +- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/eive_tmtc/pus_tm/action_reply_handler.py b/eive_tmtc/pus_tm/action_reply_handler.py index 065bb4e..67892e3 100644 --- a/eive_tmtc/pus_tm/action_reply_handler.py +++ b/eive_tmtc/pus_tm/action_reply_handler.py @@ -9,6 +9,7 @@ from eive_tmtc.tmtc.power.tm import handle_get_param_data_reply from tmtccmd.logging import get_console_logger from tmtccmd.tm import Service8FsfwTm from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter +from spacepackets.ccsds.time import CdsShortTimestamp LOGGER = get_console_logger() @@ -19,7 +20,9 @@ def handle_action_reply( """Core Action reply handler :return: """ - tm_packet = Service8FsfwTm.unpack(raw_telemetry=raw_tm) + tm_packet = Service8FsfwTm.unpack( + raw_telemetry=raw_tm, time_reader=CdsShortTimestamp.empty() + ) printer.handle_long_tm_print(packet_if=tm_packet, info_if=tm_packet) object_id = obj_id_dict.get(tm_packet.source_object_id_as_bytes) pw = PrintWrapper(printer) diff --git a/eive_tmtc/pus_tm/event_handler.py b/eive_tmtc/pus_tm/event_handler.py index b60cfae..ba2baab 100644 --- a/eive_tmtc/pus_tm/event_handler.py +++ b/eive_tmtc/pus_tm/event_handler.py @@ -11,13 +11,14 @@ from tmtccmd.tm import Service5Tm from tmtccmd.logging import get_console_logger from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter from tmtccmd.fsfw import EventInfo +from spacepackets.ccsds.time import CdsShortTimestamp LOGGER = get_console_logger() def handle_event_packet(raw_tm: bytes, printer: FsfwTmTcPrinter): pw = PrintWrapper(printer) - tm = Service5Tm.unpack(raw_telemetry=raw_tm) + tm = Service5Tm.unpack(raw_telemetry=raw_tm, time_reader=CdsShortTimestamp.empty()) event_dict = get_event_dict() info = event_dict.get(tm.event_id) if info is None: diff --git a/eive_tmtc/pus_tm/factory_hook.py b/eive_tmtc/pus_tm/factory_hook.py index 36b9428..36887f3 100644 --- a/eive_tmtc/pus_tm/factory_hook.py +++ b/eive_tmtc/pus_tm/factory_hook.py @@ -4,6 +4,7 @@ from eive_tmtc.config.object_ids import get_object_ids from spacepackets.ecss import PusTelemetry from spacepackets.ecss.pus_17_test import Service17Tm from spacepackets.util import PrintFormats +from spacepackets.ccsds.time import CdsShortTimestamp from tmtccmd import get_console_logger from tmtccmd.logging.pus import RawTmtcTimedLogWrapper from tmtccmd.pus import VerificationWrapper @@ -30,7 +31,7 @@ def pus_factory_hook( LOGGER.warning("Detected packet shorter than 8 bytes!") return try: - tm_packet = PusTelemetry.unpack(packet) + tm_packet = PusTelemetry.unpack(packet, CdsShortTimestamp.empty()) except ValueError: LOGGER.warning("Could not generate PUS TM object from raw data") LOGGER.warning(f"Raw Packet: [{packet.hex(sep=',')}], REPR: {packet!r}") @@ -48,15 +49,21 @@ def pus_factory_hook( elif service == 8: handle_action_reply(raw_tm=packet, printer=printer, obj_id_dict=obj_id_dict) elif service == 17: - tm_packet = Service17Tm.unpack(raw_telemetry=packet) + tm_packet = Service17Tm.unpack( + raw_telemetry=packet, time_reader=CdsShortTimestamp.empty() + ) if tm_packet.subservice == 2: verif_wrapper.dlog("Received Ping Reply TM[17,2]") dedicated_handler = True elif service == 20: - tm_packet = Service20FsfwTm.unpack(raw_telemetry=packet) + tm_packet = Service20FsfwTm.unpack( + raw_telemetry=packet, time_reader=CdsShortTimestamp.empty() + ) dedicated_handler = False elif service == 200: - tm_packet = Service200FsfwTm.unpack(raw_telemetry=packet) + tm_packet = Service200FsfwTm.unpack( + raw_telemetry=packet, time_reader=CdsShortTimestamp.empty() + ) if tm_packet.subservice == ModeSubservices.TM_CANT_REACH_MODE: obj_id = tm_packet.object_id obj_id_obj = obj_id_dict.get(obj_id) diff --git a/eive_tmtc/pus_tm/verification_handler.py b/eive_tmtc/pus_tm/verification_handler.py index 2cd5b24..c289679 100644 --- a/eive_tmtc/pus_tm/verification_handler.py +++ b/eive_tmtc/pus_tm/verification_handler.py @@ -1,5 +1,6 @@ from typing import List, Optional +from spacepackets.ccsds import CdsShortTimestamp from spacepackets.ecss.pus_1_verification import UnpackParams, Service1Tm from tmtccmd.logging import get_console_logger from tmtccmd.pus import VerificationWrapper @@ -15,7 +16,9 @@ def handle_service_1_fsfw_packet(wrapper: VerificationWrapper, raw_tm: bytes): "Console logger or file logger not valid. Please set a valid one" ) # Error code with length 2 is FSFW specific - tm_packet = Service1Tm.unpack(data=raw_tm, params=UnpackParams(1, 2)) + tm_packet = Service1Tm.unpack( + data=raw_tm, params=UnpackParams(CdsShortTimestamp.empty(), 1, 2) + ) fsfw_wrapper = Service1FsfwWrapper(tm_packet) res = wrapper.verificator.add_tm(tm_packet) if res is None: diff --git a/setup.cfg b/setup.cfg index 384338c..28df461 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@aea3c7d05fe88fdf683ea9a192fef02b871afcb0#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@0f5544e0fd514#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From 484deb0f97f77600aedb87881e75596926df40cb Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 10:44:26 +0100 Subject: [PATCH 28/34] bump tmtccmd again --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 28df461..f4df3e3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@0f5544e0fd514#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@90a518581e#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From 32db4fabdc6517ab0200edc81716f982df752f32 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 10:48:57 +0100 Subject: [PATCH 29/34] bump tmtccmd again --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index f4df3e3..4b4abc0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@90a518581e#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@8c72f19dc03968#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From 136aaecb77cd6239d590d8f8dcf05229dc8eec55 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 11:10:52 +0100 Subject: [PATCH 30/34] should be the last of renamings --- eive_tmtc/tmtc/common.py | 4 ++-- eive_tmtc/tmtc/payload/pl_subsystem.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eive_tmtc/tmtc/common.py b/eive_tmtc/tmtc/common.py index 1d8fb1a..5ae4b15 100644 --- a/eive_tmtc/tmtc/common.py +++ b/eive_tmtc/tmtc/common.py @@ -2,7 +2,7 @@ from typing import Union from spacepackets.ecss.tc import PusTelecommand from tmtccmd.tc import DefaultPusQueueHelper -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservice from tmtccmd.util import ObjectIdU32 @@ -27,6 +27,6 @@ def pack_mode_cmd_with_info( ) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=mode_data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=mode_data ) ) diff --git a/eive_tmtc/tmtc/payload/pl_subsystem.py b/eive_tmtc/tmtc/payload/pl_subsystem.py index 0db622a..d309e29 100644 --- a/eive_tmtc/tmtc/payload/pl_subsystem.py +++ b/eive_tmtc/tmtc/payload/pl_subsystem.py @@ -9,7 +9,7 @@ from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams -from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices +from tmtccmd.tc.pus_200_fsfw_modes import Subservice as ModeSubservice class OpCode(str, enum.Enum): @@ -41,7 +41,7 @@ def build_acs_subsystem_cmd(p: ServiceProviderParams): q.add_pus_tc( PusTelecommand( service=200, - subservice=ModeSubservices.TC_MODE_ANNOUNCE_RECURSIVE, + subservice=ModeSubservice.TC_MODE_ANNOUNCE_RECURSIVE, app_data=PL_SUBSYSTEM_ID, ) ) From f14bb81c9ba902695c64bda1254eb26b732cb9ce Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 11:16:16 +0100 Subject: [PATCH 31/34] and yet another bump --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 4b4abc0..285817d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@8c72f19dc03968#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@85074210c083a8#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From ff72c025087aa8058f168870f3689f295f273ca2 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 18:32:53 +0100 Subject: [PATCH 32/34] annoying --- eive_tmtc/pus_tm/factory_hook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eive_tmtc/pus_tm/factory_hook.py b/eive_tmtc/pus_tm/factory_hook.py index 36887f3..5fa399f 100644 --- a/eive_tmtc/pus_tm/factory_hook.py +++ b/eive_tmtc/pus_tm/factory_hook.py @@ -9,7 +9,7 @@ from tmtccmd import get_console_logger from tmtccmd.logging.pus import RawTmtcTimedLogWrapper from tmtccmd.pus import VerificationWrapper from tmtccmd.tm import Service20FsfwTm, Service200FsfwTm -from tmtccmd.tm.pus_200_fsfw_modes import Subservices as ModeSubservices +from tmtccmd.tm.pus_200_fsfw_modes import Subservice as ModeSubservices from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter from .defs import PrintWrapper From 44f15eced77fbcbafd1b581b52f14b2d9688fde9 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 18:37:16 +0100 Subject: [PATCH 33/34] bump tmtccmd --- eive_tmtc/pus_tc/devs/bpx_batt.py | 2 +- eive_tmtc/pus_tc/devs/heater.py | 4 ++-- eive_tmtc/pus_tc/devs/plpcdu.py | 18 +++++++++--------- eive_tmtc/pus_tc/devs/rtd.py | 8 ++++---- eive_tmtc/pus_tc/devs/scex.py | 6 +++--- eive_tmtc/tmtc/acs/acs_subsystem.py | 2 +- eive_tmtc/tmtc/acs/reaction_wheels.py | 8 ++++---- setup.cfg | 2 +- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/eive_tmtc/pus_tc/devs/bpx_batt.py b/eive_tmtc/pus_tc/devs/bpx_batt.py index c974fe2..2849f66 100644 --- a/eive_tmtc/pus_tc/devs/bpx_batt.py +++ b/eive_tmtc/pus_tc/devs/bpx_batt.py @@ -12,7 +12,7 @@ from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from tmtccmd.tc.pus_3_fsfw_hk import generate_one_hk_command, make_sid from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode -from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices +from tmtccmd.tc.pus_200_fsfw_modes import Subservice as ModeSubservices class BpxSetId: diff --git a/eive_tmtc/pus_tc/devs/heater.py b/eive_tmtc/pus_tc/devs/heater.py index 821df2a..ff3e0ce 100644 --- a/eive_tmtc/pus_tc/devs/heater.py +++ b/eive_tmtc/pus_tc/devs/heater.py @@ -14,7 +14,7 @@ from tmtccmd.util.obj_id import ObjectIdU32 from tmtccmd.tc.pus_201_fsfw_health import ( pack_set_health_cmd_data, FsfwHealth, - Subservices, + Subservice, ) from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd from spacepackets.ecss.tc import PusTelecommand @@ -183,7 +183,7 @@ def health_cmd( app_data = pack_set_health_cmd_data(object_id=object_id.as_bytes, health=health) q.add_pus_tc( PusTelecommand( - service=201, subservice=Subservices.TC_SET_HEALTH, app_data=app_data + service=201, subservice=Subservice.TC_SET_HEALTH, app_data=app_data ) ) diff --git a/eive_tmtc/pus_tc/devs/plpcdu.py b/eive_tmtc/pus_tc/devs/plpcdu.py index 72db431..36595f5 100644 --- a/eive_tmtc/pus_tc/devs/plpcdu.py +++ b/eive_tmtc/pus_tc/devs/plpcdu.py @@ -18,7 +18,7 @@ from tmtccmd.tc.pus_11_tc_sched import ( generate_enable_tc_sched_cmd, generate_time_tagged_cmd, ) -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservice from tmtccmd.tc.pus_20_params import ( pack_scalar_double_param_app_data, pack_fsfw_load_param_cmd, @@ -251,12 +251,12 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): ) pl_pcdu_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data(object_id=PL_PCDU_ID, mode=Mode.ON, submode=0), ) ssr_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, mode=Mode.NORMAL, @@ -267,7 +267,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): ) dro_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, mode=Mode.NORMAL, @@ -276,7 +276,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): ) x8_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, mode=Mode.NORMAL, @@ -285,7 +285,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): ) tx_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, mode=Mode.NORMAL, @@ -294,7 +294,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): ) mpa_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, mode=Mode.NORMAL, @@ -303,7 +303,7 @@ def hpa_on_procedure(q: DefaultPusQueueHelper): ) hpa_on = PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data( object_id=PL_PCDU_ID, mode=Mode.NORMAL, @@ -445,6 +445,6 @@ def pack_pl_pcdu_mode_cmd( mode_data = pack_mode_data(object_id=PL_PCDU_ID, mode=mode, submode=submode) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=mode_data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=mode_data ) ) diff --git a/eive_tmtc/pus_tc/devs/rtd.py b/eive_tmtc/pus_tc/devs/rtd.py index 0b33bd2..450ced8 100644 --- a/eive_tmtc/pus_tc/devs/rtd.py +++ b/eive_tmtc/pus_tc/devs/rtd.py @@ -8,7 +8,7 @@ from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.util import ObjectIdU32 -from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_data, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_data, Subservice import eive_tmtc.config.object_ids as oids from eive_tmtc.config.object_ids import get_object_ids @@ -71,7 +71,7 @@ def pack_rtd_commands( app_data = pack_mode_data(object_id=object_id.as_bytes, mode=Mode.ON, submode=0) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=app_data ) ) if op_code in OpCode.NORMAL: @@ -80,7 +80,7 @@ def pack_rtd_commands( ) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=app_data ) ) if op_code in OpCode.OFF: @@ -89,7 +89,7 @@ def pack_rtd_commands( ) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=app_data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=app_data ) ) if op_code in OpCode.CONFIG_CMD: diff --git a/eive_tmtc/pus_tc/devs/scex.py b/eive_tmtc/pus_tc/devs/scex.py index a5e1974..2bd7e23 100644 --- a/eive_tmtc/pus_tc/devs/scex.py +++ b/eive_tmtc/pus_tc/devs/scex.py @@ -5,7 +5,7 @@ from spacepackets.ecss import PusTelecommand from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.config.tmtc import tmtc_definitions_provider -from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_data, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import Mode, pack_mode_data, Subservice from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd @@ -83,7 +83,7 @@ def pack_scex_cmds(p: ServiceProviderParams): q.add_pus_tc( PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.ON, 0), ) ) @@ -92,7 +92,7 @@ def pack_scex_cmds(p: ServiceProviderParams): q.add_pus_tc( PusTelecommand( service=200, - subservice=Subservices.TC_MODE_COMMAND, + subservice=Subservice.TC_MODE_COMMAND, app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.OFF, 0), ) ) diff --git a/eive_tmtc/tmtc/acs/acs_subsystem.py b/eive_tmtc/tmtc/acs/acs_subsystem.py index 26d2ba2..7963a3a 100644 --- a/eive_tmtc/tmtc/acs/acs_subsystem.py +++ b/eive_tmtc/tmtc/acs/acs_subsystem.py @@ -10,7 +10,7 @@ from tmtccmd.config.tmtc import ( TmtcDefinitionWrapper, OpCodeEntry, ) -from tmtccmd.tc.pus_200_fsfw_modes import Subservices as ModeSubservices +from tmtccmd.tc.pus_200_fsfw_modes import Subservice as ModeSubservices from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams diff --git a/eive_tmtc/tmtc/acs/reaction_wheels.py b/eive_tmtc/tmtc/acs/reaction_wheels.py index e63a3db..e0a832a 100644 --- a/eive_tmtc/tmtc/acs/reaction_wheels.py +++ b/eive_tmtc/tmtc/acs/reaction_wheels.py @@ -20,7 +20,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import ( disable_periodic_hk_command, ) from spacepackets.ecss.tc import PusTelecommand -from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservices +from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Mode, Subservice from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.util import ObjectIdU32 from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter @@ -197,21 +197,21 @@ def pack_rw_ass_cmds(q: DefaultPusQueueHelper, object_id: bytes, op_code: str): data = pack_mode_data(object_id=object_id, mode=Mode.OFF, submode=0) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=data ) ) if op_code in OpCodesAss.ON: data = pack_mode_data(object_id=object_id, mode=Mode.ON, submode=0) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=data ) ) if op_code in OpCodesAss.NML: data = pack_mode_data(object_id=object_id, mode=Mode.NORMAL, submode=0) q.add_pus_tc( PusTelecommand( - service=200, subservice=Subservices.TC_MODE_COMMAND, app_data=data + service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=data ) ) if op_code in OpCodesAss.ALL_SPEED_UP: diff --git a/setup.cfg b/setup.cfg index 285817d..728485f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@85074210c083a8#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@d776b1cf603#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True From bd9c134729eb762db380cac4d86cba9637458d92 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 17 Jan 2023 19:08:00 +0100 Subject: [PATCH 34/34] bump tmtccmd --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 728485f..8efca18 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ classifiers = [options] install_requires = # tmtccmd @ git+https://github.com/robamu-org/tmtccmd@v4.0.0a1 - tmtccmd @ git+https://github.com/robamu-org/tmtccmd@d776b1cf603#egg=tmtccmd + tmtccmd @ git+https://github.com/robamu-org/tmtccmd@d6e024a3c82832#egg=tmtccmd packages = find: python_requires = >=3.10 include_package_data = True