From b3920524ab61f997ecdf40dd350dc4cd2e05558b Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 22 Nov 2023 10:17:05 +0100 Subject: [PATCH] OOF --- eive_tmtc/cfdp/tm.py | 2 +- eive_tmtc/config/hook.py | 124 ++++++++++++- eive_tmtc/pus_tc/procedure_packer.py | 240 ++++++++++++++----------- eive_tmtc/pus_tc/system/proc.py | 50 +++--- eive_tmtc/pus_tc/tc_handler.py | 2 +- eive_tmtc/tmtc/acs/acs_board.py | 16 +- eive_tmtc/tmtc/acs/acs_ctrl.py | 103 ++++++----- eive_tmtc/tmtc/acs/gps.py | 20 +-- eive_tmtc/tmtc/acs/gyros.py | 14 +- eive_tmtc/tmtc/acs/imtq.py | 52 +++--- eive_tmtc/tmtc/acs/mgms.py | 6 +- eive_tmtc/tmtc/acs/reaction_wheels.py | 34 ++-- eive_tmtc/tmtc/acs/star_tracker.py | 138 +++++++------- eive_tmtc/tmtc/com/ccsds_handler.py | 22 +-- eive_tmtc/tmtc/com/pdec_handler.py | 16 +- eive_tmtc/tmtc/com/syrlinks_handler.py | 54 +++--- eive_tmtc/tmtc/core.py | 80 ++++----- eive_tmtc/tmtc/payload/plpcdu.py | 34 ++-- eive_tmtc/tmtc/payload/rad_sensor.py | 16 +- eive_tmtc/tmtc/payload/scex.py | 27 ++- eive_tmtc/tmtc/power/acu.py | 8 +- eive_tmtc/tmtc/power/p60dock.py | 38 ++-- eive_tmtc/tmtc/power/pdu1.py | 44 ++--- eive_tmtc/tmtc/power/pdu2.py | 10 +- eive_tmtc/tmtc/power/power.py | 30 ++-- eive_tmtc/tmtc/tcs/ctrl.py | 42 ++--- eive_tmtc/tmtc/tcs/heater.py | 10 +- eive_tmtc/tmtc/tcs/rtd.py | 30 ++-- eive_tmtc/tmtc/tcs/subsystem.py | 10 +- eive_tmtc/tmtc/tcs/tmp1075.py | 22 +-- eive_tmtc/tmtc/time.py | 43 ++--- eive_tmtc/tmtc/wdt.py | 6 +- pyproject.toml | 4 +- 33 files changed, 731 insertions(+), 616 deletions(-) diff --git a/eive_tmtc/cfdp/tm.py b/eive_tmtc/cfdp/tm.py index 5072553..65239b7 100644 --- a/eive_tmtc/cfdp/tm.py +++ b/eive_tmtc/cfdp/tm.py @@ -4,7 +4,7 @@ from typing import Any from eive_tmtc.config.definitions import CFDP_APID from spacepackets.ccsds import SPACE_PACKET_HEADER_SIZE from spacepackets.cfdp import PduFactory, PduType -from tmtccmd.cfdp.handler import CfdpInCcsdsHandler +from eive_tmtc.cfdp.handler import CfdpInCcsdsHandler from tmtccmd.tmtc import SpecificApidHandlerBase _LOGGER = logging.getLogger(__name__) diff --git a/eive_tmtc/config/hook.py b/eive_tmtc/config/hook.py index 6019fb7..222fdd7 100644 --- a/eive_tmtc/config/hook.py +++ b/eive_tmtc/config/hook.py @@ -1,12 +1,12 @@ from typing import Optional from eive_tmtc.config.definitions import SPACE_PACKET_IDS +from eive_tmtc.tmtc.time import create_time_node from tmtccmd import HookBase, CcsdsTmtcBackend from tmtccmd.com import ComInterface -from tmtccmd.config import TmtcDefinitionWrapper +from tmtccmd.config import CmdTreeNode from eive_tmtc.config.retvals import get_retval_dict -from eive_tmtc.pus_tc.cmd_definitions import get_eive_service_op_code_dict from tmtccmd.util import ObjectIdDictT, RetvalDictT @@ -14,20 +14,134 @@ class EiveHookObject(HookBase): def __init__(self, json_cfg_path: str): super().__init__(json_cfg_path=json_cfg_path) - def get_tmtc_definitions(self) -> TmtcDefinitionWrapper: - return get_eive_service_op_code_dict() + def get_command_definitions(self) -> CmdTreeNode: + root_node = CmdTreeNode.root_node() + mode_node = CmdTreeNode("mode", "Mode Commands") + hk_node = CmdTreeNode("hk", "HK Commands") + action_node = CmdTreeNode("action", "Action Commands") + param_node = CmdTreeNode("params", "Parameter Commands") + health_node = CmdTreeNode("health", "Health Commands") + dev_node = CmdTreeNode("dev", "Device Commands") + dev_node.add_child(hk_node) + dev_node.add_child(mode_node) + dev_node.add_child(health_node) + dev_node.add_child(param_node) + # Not strictly necessary, but I do not know a single device which does not have actions.. + dev_node.add_child(action_node) + assy_node = CmdTreeNode("assy", "Assembly Commands") + assy_node.add_child(mode_node) - def assign_communication_interface(self, com_if_key: str) -> Optional[ComInterface]: + system_node = CmdTreeNode("sys", "EIVE System") + + acs_node = CmdTreeNode("acs", "ACS Subsystem") + acs_brd_assy_node = CmdTreeNode("acs_brd_assy", "ACS Board Assembly") + acs_brd_assy_node.add_child(mode_node) + mgm_devs = CmdTreeNode("mgm_devs", "MGM Devices") + gyro_devs = CmdTreeNode("gyro_devs", "Gyro Devices") + acs_brd_assy_node.add_child(mgm_devs) + acs_brd_assy_node.add_child(gyro_devs) + acs_ctrl = CmdTreeNode("acs_ctrl", "ACS Controller") + acs_ctrl.add_child(mode_node) + acs_ctrl.add_child(action_node) + acs_ctrl.add_child(param_node) + rws = CmdTreeNode("rws", "Reaction Wheel Devices") + rw_assy = CmdTreeNode("rw_assy", "Reaction Wheel Assembly") + rw_1 = CmdTreeNode("rw_1", "Reaction Wheel 1") + rw_2 = CmdTreeNode("rw_2", "Reaction Wheel 2") + rw_3 = CmdTreeNode("rw_3", "Reaction Wheel 3") + rw_4 = CmdTreeNode("rw_4", "Reaction Wheel 4") + rws.add_child(rw_assy) + rws.add_child(rw_1) + rws.add_child(rw_2) + rws.add_child(rw_3) + rws.add_child(rw_4) + mgt = CmdTreeNode("mgt", "ISIS MGT") + mgt.add_child(dev_node) + mgt.add_child(assy_node) + star_tracker = CmdTreeNode("str", "Star Tracker") + star_tracker_img_helper = CmdTreeNode( + "str_img_helper", "Star Tracker Image Helper" + ) + star_tracker.add_child(star_tracker_img_helper) + gnss_devs = CmdTreeNode("gnss", "GNSS Devices") + + acs_node.add_child(acs_brd_assy_node) + acs_node.add_child(acs_ctrl) + acs_node.add_child(mode_node) + acs_node.add_child(rws) + acs_node.add_child(mgt) + acs_node.add_child(star_tracker) + acs_node.add_child(gnss_devs) + + tcs_node = CmdTreeNode("tcs", "TCS Subsystem") + tmp_1075_node = CmdTreeNode("tmp1075_devs", "TMP1075 Devices") + rtds_node = CmdTreeNode("rtd_devs", "RTD Devices") + heaters_node = CmdTreeNode("heaters", "Heater Devices") + tcs_ctrl = CmdTreeNode("tcs_ctrl", "TCS Controller") + tcs_node.add_child(rtds_node) + tcs_node.add_child(tmp_1075_node) + tcs_node.add_child(tcs_ctrl) + tcs_node.add_child(heaters_node) + tcs_brd_assy = CmdTreeNode("tcs_brd_assy", "TCS Board Assembly") + tcs_node.add_child(tcs_brd_assy) + + com_node = CmdTreeNode("com", "COM Subsystem") + syrlinks_node = CmdTreeNode("syrlinks", "Syrlinks") + syrlinks_node.add_child(dev_node) + syrlinks_node.add_child(assy_node) + syrlinks_node.add_child(action_node) + ccsds_node = CmdTreeNode("ccsds", "CCSDS Handler") + ccsds_node.add_child(action_node) + com_node.add_child(syrlinks_node) + + eps_node = CmdTreeNode("eps", "EPS Subsystem") + acu_node = CmdTreeNode("acu", "PCDU ACU component") + pdu_1_node = CmdTreeNode("pdu1", "PCDU PDU 1 component") + pdu_2_node = CmdTreeNode("pdu2", "PCDU PDU 2 component") + p60_dock_node = CmdTreeNode("p60_dock", "PCDU P60 Dock component") + bat_node = CmdTreeNode("bat", "Battery Component") + eps_node.add_child(acu_node) + eps_node.add_child(pdu_1_node) + eps_node.add_child(pdu_2_node) + eps_node.add_child(p60_dock_node) + eps_node.add_child(bat_node) + + payload_node = CmdTreeNode("payload", "Payload Subsystem") + scex_node = CmdTreeNode("scex", "SCEX devices") + scex_node.add_child(dev_node) + pl_pcdu = CmdTreeNode("pl_pcdu", "Payload PCDU") + payload_node.add_child(pl_pcdu) + + obdh_node = CmdTreeNode("obdh", "OBDH Subsystem") + xiphos_wdt = CmdTreeNode("wdt", "Xiphos WDT") + core_ctrl = CmdTreeNode("core", "Core Controller") + obdh_node.add_child(xiphos_wdt) + obdh_node.add_child(core_ctrl) + obdh_node.add_child(create_time_node()) + + root_node.add_child(system_node) + root_node.add_child(acs_node) + root_node.add_child(tcs_node) + root_node.add_child(com_node) + root_node.add_child(eps_node) + root_node.add_child(payload_node) + root_node.add_child(obdh_node) + return root_node + + def get_communication_interface(self, com_if_key: str) -> Optional[ComInterface]: from tmtccmd.config.com import ( create_com_interface_default, create_com_interface_cfg_default, ) + assert self.cfg_path is not None + cfg = create_com_interface_cfg_default( com_if_key=com_if_key, json_cfg_path=self.cfg_path, space_packet_ids=SPACE_PACKET_IDS, ) + assert cfg is not None return create_com_interface_default(cfg) def perform_mode_operation(self, tmtc_backend: CcsdsTmtcBackend, mode: int): diff --git a/eive_tmtc/pus_tc/procedure_packer.py b/eive_tmtc/pus_tc/procedure_packer.py index 60937c7..8ba9dd2 100644 --- a/eive_tmtc/pus_tc/procedure_packer.py +++ b/eive_tmtc/pus_tc/procedure_packer.py @@ -2,6 +2,7 @@ """ import logging from typing import cast +from build.lib.build.lib.eive_tmtc.tmtc.acs.acs_ctrl import pack_acs_ctrl_command from eive_tmtc.tmtc.acs.gyros import handle_gyr_cmd from eive_tmtc.tmtc.acs.mgms import handle_mgm_cmd @@ -10,34 +11,27 @@ from eive_tmtc.tmtc.tcs.ctrl import pack_tcs_ctrl_commands from eive_tmtc.tmtc.tcs.rtd import pack_rtd_commands from eive_tmtc.tmtc.payload.scex import pack_scex_cmds from eive_tmtc.tmtc.tcs.subsystem import pack_tcs_sys_commands +from eive_tmtc.tmtc.time import pack_time_management_cmd from tmtccmd import DefaultProcedureInfo, TcHandlerBase -from tmtccmd.config import CoreServiceList from tmtccmd.tmtc import DefaultPusQueueHelper -from tmtccmd.tmtc.decorator import ( - route_to_registered_service_handlers, - ServiceProviderParams, -) -from eive_tmtc.tmtc.misc.s200_test import pack_service_200_test_into from eive_tmtc.tmtc.power.p60dock import pack_p60dock_cmds from eive_tmtc.tmtc.power.pdu2 import pack_pdu2_commands from eive_tmtc.tmtc.power.pdu1 import pack_pdu1_commands from eive_tmtc.tmtc.power.acu import pack_acu_commands -from eive_tmtc.tmtc.acs.imtq import pack_imtq_test_into +from eive_tmtc.tmtc.acs.imtq import create_imtq_command from eive_tmtc.tmtc.tcs.heater import pack_heater_cmds from eive_tmtc.tmtc.acs.reaction_wheels import ( - pack_single_rw_test_into, + create_single_rw_cmd, pack_rw_ass_cmds, ) -from eive_tmtc.tmtc.payload.ploc_memory_dumper import pack_ploc_memory_dumper_cmd from eive_tmtc.tmtc.com.ccsds_handler import pack_ccsds_handler_command from eive_tmtc.tmtc.core import pack_core_commands from eive_tmtc.tmtc.acs.star_tracker import pack_star_tracker_commands from eive_tmtc.tmtc.com.syrlinks_handler import pack_syrlinks_command -from eive_tmtc.tmtc.com.pdec_handler import pack_pdec_handler_test +from eive_tmtc.tmtc.com.pdec_handler import pack_pdec_handler_commands from eive_tmtc.tmtc.wdt import pack_wdt_commands from eive_tmtc.tmtc.acs.acs_board import pack_acs_command -from eive_tmtc.config.definitions import CustomServiceList from eive_tmtc.config.object_ids import ( P60_DOCK_HANDLER, PDU_1_HANDLER_ID, @@ -55,7 +49,6 @@ from eive_tmtc.config.object_ids import ( RW4_ID, RAD_SENSOR_ID, STAR_TRACKER_ID, - PLOC_MEMORY_DUMPER_ID, CCSDS_HANDLER_ID, PDEC_HANDLER_ID, STR_IMG_HELPER_ID, @@ -66,10 +59,9 @@ from eive_tmtc.config.object_ids import ( from eive_tmtc.tmtc.tcs.tmp1075 import pack_tmp1075_test_into from eive_tmtc.tmtc.acs.gps import pack_gps_command -from eive_tmtc.tmtc.payload.rad_sensor import pack_rad_sensor_test_into +from eive_tmtc.tmtc.payload.rad_sensor import create_rad_sensor_cmd from eive_tmtc.tmtc.payload.plpcdu import pack_pl_pcdu_commands from eive_tmtc.tmtc.acs.str_img_helper import pack_str_img_helper_command -from eive_tmtc.pus_tc.system.proc import pack_proc_commands import eive_tmtc.config.object_ids as oids from tmtccmd.util import ObjectIdU32 @@ -82,30 +74,49 @@ def handle_default_procedure( # noqa C901: Complexity okay here. info: DefaultProcedureInfo, queue_helper: DefaultPusQueueHelper, ): - service = info.service - op_code = info.op_code + cmd_path = info.cmd_path + assert cmd_path is not None + cmd_path_list = cmd_path.split("/") + if cmd_path_list[0] == "/": + cmd_path_list = cmd_path_list[1:] + if len(cmd_path_list) == 0: + raise ValueError( + "command path list empty. Full command path {cmd_path} might have invalid format" + ) obj_id_man = get_object_ids() - if service == CoreServiceList.SERVICE_200.value: - return pack_service_200_test_into(q=queue_helper) - if service == CustomServiceList.P60DOCK.value: + if cmd_path_list == ["eps", "p60_dock"]: object_id = cast(ObjectIdU32, obj_id_man.get(P60_DOCK_HANDLER)) - return pack_p60dock_cmds(object_id=object_id, q=queue_helper, op_code=op_code) - if service == CustomServiceList.RTD.value: - return pack_rtd_commands(object_id=None, q=queue_helper, op_code=op_code) - if service == CustomServiceList.PDU1.value: + assert len(cmd_path_list) >= 2 + return pack_p60dock_cmds( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] + ) + if cmd_path_list == ["tcs", "rtd_devs"]: + assert len(cmd_path_list) >= 2 + return pack_rtd_commands( + object_id=None, q=queue_helper, cmd_str=cmd_path_list[2] + ) + if cmd_path_list == ["eps", "pdu1"]: object_id = cast(ObjectIdU32, obj_id_man.get(PDU_1_HANDLER_ID)) - return pack_pdu1_commands(object_id=object_id, q=queue_helper, op_code=op_code) - if service == CustomServiceList.PDU2.value: + return pack_pdu1_commands( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] + ) + if cmd_path_list == ["eps", "pdu2"]: object_id = cast(ObjectIdU32, obj_id_man.get(PDU_2_HANDLER_ID)) - return pack_pdu2_commands(object_id=object_id, q=queue_helper, op_code=op_code) - if service == CustomServiceList.ACU.value: + return pack_pdu2_commands( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] + ) + if cmd_path_list == ["eps", "acu"]: object_id = cast(ObjectIdU32, obj_id_man.get(ACU_HANDLER_ID)) - return pack_acu_commands(object_id=object_id, q=queue_helper, op_code=op_code) - if service == CustomServiceList.TCS_SS.value: - return pack_tcs_sys_commands(q=queue_helper, op_code=op_code) - if service == CustomServiceList.TCS_CTRL.value: - return pack_tcs_ctrl_commands(q=queue_helper, op_code=op_code) - if service == CustomServiceList.TMP1075.value: + return pack_acu_commands( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] + ) + if cmd_path_list == ["tcs"]: + assert len(cmd_path_list) >= 1 + return pack_tcs_sys_commands(q=queue_helper, cmd_str=cmd_path_list[1]) + if cmd_path_list == ["tcs", "tcs_ctrl"]: + assert len(cmd_path_list) >= 2 + return pack_tcs_ctrl_commands(q=queue_helper, cmd_str=cmd_path_list[2]) + if cmd_path_list == ["tcs", "tmp1075_devs"]: menu_dict = { "0": ("TMP1075 TCS Board 0", TMP1075_HANDLER_TCS_BRD_0_ID), "1": ("TMP1075 TCS Board 1", TMP1075_HANDLER_TCS_BRD_1_ID), @@ -115,106 +126,119 @@ def handle_default_procedure( # noqa C901: Complexity okay here. } input_helper = InputHelper(menu_dict) tmp_select = input_helper.get_key() + assert len(cmd_path_list) >= 2 object_id = obj_id_man.get(menu_dict[tmp_select][1]) + assert object_id is not None return pack_tmp1075_test_into( - object_id=object_id, q=queue_helper, op_code=op_code + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.HEATER.value: + if cmd_path_list == ["tcs", "heaters"]: object_id = HEATER_CONTROLLER_ID - return pack_heater_cmds(object_id=object_id, q=queue_helper, op_code=op_code) - if service == CustomServiceList.IMTQ.value: + return pack_heater_cmds( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] + ) + if cmd_path_list == ["acs", "mgt"]: object_id = cast(ObjectIdU32, obj_id_man.get(IMTQ_HANDLER_ID)) - return pack_imtq_test_into(object_id=object_id, q=queue_helper, op_code=op_code) - if service == CustomServiceList.REACTION_WHEEL_1.value: - return pack_single_rw_test_into( - object_id=RW1_ID, rw_idx=1, q=queue_helper, op_code=op_code + return create_imtq_command( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.REACTION_WHEEL_2.value: - return pack_single_rw_test_into( - object_id=RW2_ID, rw_idx=2, q=queue_helper, op_code=op_code + if cmd_path_list == ["acs", "rw_assy", "rw_1"]: + assert len(cmd_path_list) >= 4 + return create_single_rw_cmd( + object_id=RW1_ID, rw_idx=1, q=queue_helper, cmd_str=cmd_path_list[3] ) - if service == CustomServiceList.REACTION_WHEEL_3.value: - return pack_single_rw_test_into( - object_id=RW3_ID, rw_idx=3, q=queue_helper, op_code=op_code + if cmd_path_list == ["acs", "rw_assy", "rw_2"]: + assert len(cmd_path_list) >= 4 + return create_single_rw_cmd( + object_id=RW2_ID, rw_idx=2, q=queue_helper, cmd_str=cmd_path_list[3] ) - if service == CustomServiceList.REACTION_WHEEL_4.value: - return pack_single_rw_test_into( - object_id=RW4_ID, rw_idx=4, q=queue_helper, op_code=op_code + if cmd_path_list == ["acs", "rw_assy", "rw_3"]: + return create_single_rw_cmd( + object_id=RW3_ID, rw_idx=3, q=queue_helper, cmd_str=cmd_path_list[3] ) - if service == CustomServiceList.MGMS.value: - return handle_mgm_cmd(q=queue_helper, op_code=op_code) - if service == CustomServiceList.RAD_SENSOR.value: + if cmd_path_list == ["acs", "rw_assy", "rw_4"]: + return create_single_rw_cmd( + object_id=RW4_ID, rw_idx=4, q=queue_helper, cmd_str=cmd_path_list[3] + ) + if cmd_path_list == ["acs", "acs_brd_assy", "mgm_devs"]: + assert len(cmd_path_list) >= 4 + return handle_mgm_cmd(q=queue_helper, cmd_str=cmd_path_list[3]) + if cmd_path_list == ["payload", "rad_sensor"]: + assert len(cmd_path_list) >= 3 object_id = cast(ObjectIdU32, obj_id_man.get(RAD_SENSOR_ID)) - return pack_rad_sensor_test_into( - object_id=object_id, q=queue_helper, op_code=op_code + return create_rad_sensor_cmd( + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.STAR_TRACKER.value: + if cmd_path_list == ["acs", "str"]: object_id = cast(ObjectIdU32, obj_id_man.get(STAR_TRACKER_ID)) + assert len(cmd_path_list) >= 3 return pack_star_tracker_commands( - object_id=object_id, q=queue_helper, op_code=op_code + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.STR_IMG_HELPER.value: + if cmd_path_list == ["acs", "str_img_helper"]: + assert len(cmd_path_list) >= 3 object_id = cast(ObjectIdU32, obj_id_man.get(STR_IMG_HELPER_ID)) return pack_str_img_helper_command( - object_id=object_id, q=queue_helper, op_code=op_code + object_id=object_id, q=queue_helper, op_code=cmd_path_list[2] ) - if service == CustomServiceList.CORE.value: - return pack_core_commands(q=queue_helper, op_code=op_code) - if service == CustomServiceList.PLOC_MEMORY_DUMPER.value: - object_id = cast(ObjectIdU32, obj_id_man.get(PLOC_MEMORY_DUMPER_ID)) - return pack_ploc_memory_dumper_cmd( - object_id=object_id, q=queue_helper, op_code=op_code - ) - if service == CustomServiceList.POWER.value: - return pack_power_commands(queue_helper, op_code) - if service == CustomServiceList.ACS.value: - return pack_acs_command(q=queue_helper, op_code=op_code) - if service == CustomServiceList.GPS_CTRL.value: + if cmd_path_list == ["acs", "acs_ctrl"]: + assert len(cmd_path_list) >= 3 + return pack_acs_ctrl_command(queue_helper, cmd_path_list[2]) + if cmd_path_list == ["obdh", "core"]: + assert len(cmd_path_list) >= 3 + return pack_core_commands(q=queue_helper, cmd_str=cmd_path_list[2]) + if cmd_path_list == ["eps"]: + assert len(cmd_path_list) >= 2 + return pack_power_commands(queue_helper, cmd_path_list[2]) + if cmd_path_list == ["acs"]: + assert len(cmd_path_list) >= 2 + return pack_acs_command(q=queue_helper, cmd_str=cmd_path_list[2]) + if cmd_path_list == ["acs", "gnss_devs"]: + assert len(cmd_path_list) >= 3 return pack_gps_command( - object_id=oids.GPS_CONTROLLER, q=queue_helper, op_code=op_code + object_id=oids.GPS_CONTROLLER, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.CCSDS_HANDLER.value: + if cmd_path_list == ["com", "ccsds"]: object_id = cast(ObjectIdU32, obj_id_man.get(CCSDS_HANDLER_ID)) + assert len(cmd_path_list) >= 3 return pack_ccsds_handler_command( - object_id=object_id, q=queue_helper, op_code=op_code + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.PDEC_HANDLER.value: - return pack_pdec_handler_test( - object_id=PDEC_HANDLER_ID, q=queue_helper, op_code=op_code + if cmd_path_list == ["com", "pdec"]: + assert len(cmd_path_list) >= 3 + return pack_pdec_handler_commands( + object_id=PDEC_HANDLER_ID, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.SYRLINKS.value: + if cmd_path_list == ["com", "syrlinks"]: object_id = cast(ObjectIdU32, obj_id_man.get(SYRLINKS_HANDLER_ID)) + assert len(cmd_path_list) >= 3 return pack_syrlinks_command( - object_id=object_id, q=queue_helper, op_code=op_code + object_id=object_id, q=queue_helper, cmd_str=cmd_path_list[2] ) - if service == CustomServiceList.GYRO.value: - return handle_gyr_cmd(q=queue_helper, op_code=op_code) - if service == CustomServiceList.PROCEDURE.value: - return pack_proc_commands(q=queue_helper, op_code=op_code) - if service == CustomServiceList.PL_PCDU.value: - return pack_pl_pcdu_commands(q=queue_helper, op_code=op_code) - if service == CustomServiceList.TCS_ASS.value: - return pack_tcs_sys_commands(q=queue_helper, op_code=op_code) - if service == CustomServiceList.RW_ASSEMBLY.value: - return pack_rw_ass_cmds(q=queue_helper, object_id=RW_ASSEMBLY, op_code=op_code) - if service == CustomServiceList.SCEX.value: + if cmd_path_list == ["acs", "gyro_devs"]: + assert len(cmd_path_list) >= 3 + return handle_gyr_cmd(q=queue_helper, cmd_str=cmd_path_list[2]) + if cmd_path_list == ["payload", "pl_pcdu"]: + assert len(cmd_path_list) >= 3 + return pack_pl_pcdu_commands(q=queue_helper, cmd_str=cmd_path_list[2]) + if cmd_path_list == ["tcs", "tcs_brd_assy"]: + assert len(cmd_path_list) >= 3 + return pack_tcs_sys_commands(q=queue_helper, cmd_str=cmd_path_list[2]) + if cmd_path_list == ["acs", "rws", "rw_assy"]: + assert len(cmd_path_list) >= 4 + return pack_rw_ass_cmds( + q=queue_helper, object_id=RW_ASSEMBLY, cmd_str=cmd_path_list[3] + ) + if cmd_path_list == ["payload", "scex"]: + assert len(cmd_path_list) >= 3 return pack_scex_cmds( - ServiceProviderParams( - handler_base=tc_base, - op_code=op_code, - info=info, - queue_helper=queue_helper, - ) + cmd_str=cmd_path_list[2], + q=queue_helper, ) - if service == CustomServiceList.XIPHOS_WDT.value: - return pack_wdt_commands(queue_helper, op_code) - if not route_to_registered_service_handlers( - service, - ServiceProviderParams( - handler_base=tc_base, - op_code=op_code, - info=info, - queue_helper=queue_helper, - ), - ): - logging.getLogger(__name__).warning(f"Invalid Service {service}") + if cmd_path_list == ["core", "xiphos_wdt"]: + return pack_wdt_commands(queue_helper, cmd_path_list[2]) + if "time" in cmd_path_list: + return pack_time_management_cmd(queue_helper, cmd_path_list[1]) + logging.getLogger(__name__).warning( + f"invalid or unimplemented command path {cmd_path}" + ) diff --git a/eive_tmtc/pus_tc/system/proc.py b/eive_tmtc/pus_tc/system/proc.py index 5656b3c..ed189fb 100644 --- a/eive_tmtc/pus_tc/system/proc.py +++ b/eive_tmtc/pus_tc/system/proc.py @@ -36,7 +36,7 @@ from eive_tmtc.pus_tc.system.controllers import ( ) 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.tmtc.acs.imtq import pack_imtq_test_into, pack_dipole_command +from eive_tmtc.tmtc.acs.imtq import create_imtq_command, pack_dipole_command from eive_tmtc.tmtc.acs.star_tracker import pack_star_tracker_commands from eive_tmtc.tmtc.acs.reaction_wheels import pack_rw_ass_cmds, pack_set_speed_command @@ -312,7 +312,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. # Enable scheduling q.add_pus_tc(create_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_tcs_sys_commands(q=q, cmd_str=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 OpCode.TV_TEARDOWN_TCS_FT_OFF: @@ -337,7 +337,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. ] d_side_pairs = a_side_pairs + b_side_pairs diag_list = [False, False, True, False, False] - pack_acs_command(q=q, op_code="acs-a") + pack_acs_command(q=q, cmd_str="acs-a") for a_side_dev in a_side_pairs: oid = a_side_dev[0] @@ -351,9 +351,9 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_acs_command(q=q, op_code="acs-off") + pack_acs_command(q=q, cmd_str="acs-off") q.add_wait_seconds(5.0) - pack_acs_command(q=q, op_code="acs-b") + pack_acs_command(q=q, cmd_str="acs-b") sid_list.clear() diag_list = [False, False, True, False, False] @@ -370,9 +370,9 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_acs_command(q=q, op_code="acs-off") + pack_acs_command(q=q, cmd_str="acs-off") q.add_wait_seconds(5.0) - pack_acs_command(q=q, op_code="acs-d") + pack_acs_command(q=q, cmd_str="acs-d") sid_list.clear() @@ -400,7 +400,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_acs_command(q=q, op_code="acs-off") + pack_acs_command(q=q, cmd_str="acs-off") if op_code in OpCode.MGT_FT: key = KAI.MGT_FT[0] @@ -416,10 +416,10 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. ] # Command MGT to mode on - pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="1") + create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="1") q.add_wait_seconds(5.0) # Command MGT to normal mode - pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="2") + create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="2") for imtq_dev in imtq_pairs: oid = imtq_dev[0] @@ -433,7 +433,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0") + create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="0") if op_code in OpCode.MGT_FT_DP: key = KAI.MGT_FT_DP[0] @@ -472,12 +472,12 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. True, True, ] - pack_acs_command(q=q, op_code="acs-d") + pack_acs_command(q=q, cmd_str="acs-d") # Command MGT to mode on - pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="1") + create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="1") q.add_wait_seconds(20.0) # Command MGT to normal mode - pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="2") + create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="2") for d_side_and_imtq_dev in d_side_and_imtq_pairs: oid = d_side_and_imtq_dev[0] @@ -494,8 +494,8 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=cfg, ) - pack_imtq_test_into(oids.IMTQ_HANDLER_ID, q=q, op_code="0") - pack_acs_command(q=q, op_code="acs-off") + create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="0") + pack_acs_command(q=q, cmd_str="acs-off") if op_code in OpCode.SUS_FT: key = KAI.SUS_FT[0] @@ -538,7 +538,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_acs_command(q=q, op_code="sus-off") + pack_acs_command(q=q, cmd_str="sus-off") q.add_wait_seconds(5.0) pack_sus_cmds(q=q, op_code="sus-red") @@ -562,7 +562,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_acs_command(q=q, op_code="sus-off") + pack_acs_command(q=q, cmd_str="sus-off") q.add_wait_seconds(5.0) pack_sus_cmds(q=q, op_code="sus-d") @@ -593,7 +593,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_acs_command(q=q, op_code="sus-off") + pack_acs_command(q=q, cmd_str="sus-off") if op_code in OpCode.SYRLINKS_FT: key = KAI.SYRLINKS_FT[0] @@ -612,7 +612,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. 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") + pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, cmd_str="2") # STR sid_list.append(make_sid(oids.STAR_TRACKER_ID, StrSetIds.TEMPERATURE)) @@ -625,7 +625,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg.default(), ) - pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, op_code="3") + pack_star_tracker_commands(object_id=oids.STAR_TRACKER_ID, q=q, cmd_str="3") if op_code in OpCode.RW_FT_ONE_RW: key = KAI.RW_FT_ONE_RW[0] @@ -658,7 +658,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. False, ] # RW NORMAL - pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="nml") + pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, cmd_str="nml") # RW HK für alle RWs nur einzeln for rw_dev in rw_pairs: @@ -673,7 +673,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg(mgt=False, one_rw=True, two_rws=False), ) # RW OFF - pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="off") + pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, cmd_str="off") # ass command with 2 rws to speed if op_code in OpCode.RW_FT_TWO_RWS: @@ -715,7 +715,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. False, ] # RW NORMAL - pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="nml") + pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, cmd_str="nml") # RW for rw_dev in rw_pairs: @@ -730,7 +730,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here. cfg=GenericHkListeningCfg(mgt=False, one_rw=False, two_rws=True), ) # RW OFF - pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, op_code="off") + pack_rw_ass_cmds(object_id=oids.RW_ASSEMBLY, q=q, cmd_str="off") def enable_listen_to_hk_for_x_seconds( diff --git a/eive_tmtc/pus_tc/tc_handler.py b/eive_tmtc/pus_tc/tc_handler.py index 3ff9778..85dbf42 100644 --- a/eive_tmtc/pus_tc/tc_handler.py +++ b/eive_tmtc/pus_tc/tc_handler.py @@ -7,9 +7,9 @@ from eive_tmtc.config.definitions import ( CFDP_LOCAL_ENTITY_ID, ) from eive_tmtc.pus_tc.procedure_packer import handle_default_procedure +from eive_tmtc.cfdp.handler import CfdpInCcsdsHandler from tmtccmd import TcHandlerBase, ProcedureWrapper from tmtccmd.cfdp.defs import CfdpRequestType -from tmtccmd.cfdp.handler import CfdpInCcsdsHandler from tmtccmd.logging import get_current_time_string from tmtccmd.logging.pus import RawTmtcTimedLogWrapper from tmtccmd.tmtc import ( diff --git a/eive_tmtc/tmtc/acs/acs_board.py b/eive_tmtc/tmtc/acs/acs_board.py index c3a4988..5d1d41b 100644 --- a/eive_tmtc/tmtc/acs/acs_board.py +++ b/eive_tmtc/tmtc/acs/acs_board.py @@ -30,8 +30,8 @@ class DualSideSubmode(enum.IntEnum): DUAL_SIDE = 2 -def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): - if op_code in AcsOpCodes.ACS_ASS_A_SIDE: +def pack_acs_command(q: DefaultPusQueueHelper, cmd_str: str): + if cmd_str in AcsOpCodes.ACS_ASS_A_SIDE: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.NORMAL, @@ -39,7 +39,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching to ACS board assembly A side", ) - if op_code in AcsOpCodes.ACS_ASS_B_SIDE: + if cmd_str in AcsOpCodes.ACS_ASS_B_SIDE: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.NORMAL, @@ -47,7 +47,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching to ACS board assembly B side", ) - if op_code in AcsOpCodes.ACS_ASS_DUAL_MODE: + if cmd_str in AcsOpCodes.ACS_ASS_DUAL_MODE: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.NORMAL, @@ -55,7 +55,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching to ACS board assembly dual mode", ) - if op_code in AcsOpCodes.ACS_ASS_A_ON: + if cmd_str in AcsOpCodes.ACS_ASS_A_ON: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.ON, @@ -63,7 +63,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching ACS board assembly A side on", ) - if op_code in AcsOpCodes.ACS_ASS_B_ON: + if cmd_str in AcsOpCodes.ACS_ASS_B_ON: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.ON, @@ -71,7 +71,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching ACS board assembly B side on", ) - if op_code in AcsOpCodes.ACS_ASS_DUAL_ON: + if cmd_str in AcsOpCodes.ACS_ASS_DUAL_ON: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.ON, @@ -79,7 +79,7 @@ def pack_acs_command(q: DefaultPusQueueHelper, op_code: str): q=q, info="Switching ACS board assembly dual side on", ) - if op_code in AcsOpCodes.ACS_ASS_OFF: + if cmd_str in AcsOpCodes.ACS_ASS_OFF: pack_mode_cmd_with_info( object_id=ACS_BOARD_ASS_ID, mode=Mode.OFF, diff --git a/eive_tmtc/tmtc/acs/acs_ctrl.py b/eive_tmtc/tmtc/acs/acs_ctrl.py index dcd74e9..46275fe 100644 --- a/eive_tmtc/tmtc/acs/acs_ctrl.py +++ b/eive_tmtc/tmtc/acs/acs_ctrl.py @@ -270,54 +270,51 @@ def acs_cmd_defs(defs: TmtcDefinitionWrapper): ) -@service_provider(CustomServiceList.ACS_CTRL.value) -def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 - op_code = p.op_code - q = p.queue_helper - if op_code in OpCodes.OFF: +def pack_acs_ctrl_command(q: DefaultPusQueueHelper, cmd_str: str): # noqa C901 + if cmd_str in OpCodes.OFF: q.add_log_cmd(f"{Info.OFF}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, Mode.OFF, 0)) - elif op_code in OpCodes.SAFE: + elif cmd_str in OpCodes.SAFE: q.add_log_cmd(f"{Info.SAFE}") q.add_pus_tc( pack_mode_command(ACS_CONTROLLER, AcsMode.SAFE, SafeSubmode.DEFAULT) ) - elif op_code in OpCodes.DTBL: + elif cmd_str in OpCodes.DTBL: q.add_log_cmd(f"{Info.DTBL}") q.add_pus_tc( pack_mode_command(ACS_CONTROLLER, AcsMode.SAFE, SafeSubmode.DETUMBLE) ) - elif op_code in OpCodes.IDLE: + elif cmd_str in OpCodes.IDLE: q.add_log_cmd(f"{Info.IDLE}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, AcsMode.IDLE, 0)) - elif op_code in OpCodes.NADIR: + elif cmd_str in OpCodes.NADIR: q.add_log_cmd(f"{Info.NADIR}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, AcsMode.PTG_NADIR, 0)) - elif op_code in OpCodes.TARGET: + elif cmd_str in OpCodes.TARGET: q.add_log_cmd(f"{Info.TARGET}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, AcsMode.PTG_TARGET, 0)) - elif op_code in OpCodes.GS: + elif cmd_str in OpCodes.GS: q.add_log_cmd(f"{Info.GS}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, AcsMode.PTG_TARGET_GS, 0)) - elif op_code in OpCodes.INERTIAL: + elif cmd_str in OpCodes.INERTIAL: q.add_log_cmd(f"{Info.INERTIAL}") q.add_pus_tc(pack_mode_command(ACS_CONTROLLER, AcsMode.PTG_INERTIAL, 0)) - elif op_code in OpCodes.SAFE_PTG: + elif cmd_str in OpCodes.SAFE_PTG: q.add_log_cmd(f"{Info.SAFE_PTG}") q.add_pus_tc( create_action_cmd( ACS_CONTROLLER, ActionId.SOLAR_ARRAY_DEPLOYMENT_SUCCESSFUL ) ) - elif op_code in OpCodes.RESET_MEKF: + elif cmd_str in OpCodes.RESET_MEKF: q.add_log_cmd(f"{Info.RESET_MEKF}") q.add_pus_tc(create_action_cmd(ACS_CONTROLLER, ActionId.RESET_MEKF)) - elif op_code in OpCodes.RESTORE_MEKF_NONFINITE_RECOVERY: + elif cmd_str in OpCodes.RESTORE_MEKF_NONFINITE_RECOVERY: q.add_log_cmd(f"{Info.RESTORE_MEKF_NONFINITE_RECOVERY}") q.add_pus_tc( create_action_cmd(ACS_CONTROLLER, ActionId.RESTORE_MEKF_NONFINITE_RECOVERY) ) - elif op_code in OpCodes.UPDATE_TLE: + elif cmd_str in OpCodes.UPDATE_TLE: q.add_log_cmd(f"{Info.UPDATE_TLE}") while True: line1 = input("Please input the first line of the TLE: ") @@ -333,21 +330,21 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 print("The line does not have the required length of 69 characters") tle = line1.encode() + line2.encode() q.add_pus_tc(create_action_cmd(ACS_CONTROLLER, ActionId.UPDATE_TLE, tle)) - elif op_code in OpCodes.SET_PARAMETER_SCALAR: + elif cmd_str in OpCodes.SET_PARAMETER_SCALAR: q.add_log_cmd(f"{Info.SET_PARAMETER_SCALAR}") set_acs_ctrl_param_scalar(q) - elif op_code in OpCodes.SET_PARAMETER_VECTOR: + elif cmd_str in OpCodes.SET_PARAMETER_VECTOR: q.add_log_cmd(f"{Info.SET_PARAMETER_VECTOR}") set_acs_ctrl_param_vector(q) - elif op_code in OpCodes.SET_PARAMETER_MATRIX: + elif cmd_str in OpCodes.SET_PARAMETER_MATRIX: q.add_log_cmd(f"{Info.SET_PARAMETER_MATRIX}") set_acs_ctrl_param_matrix(q) - elif op_code in OpCodes.REQUEST_RAW_MGM_HK: + elif cmd_str 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, SetId.MGM_RAW_SET)) ) - elif op_code in OpCodes.ENABLE_RAW_MGM_HK: + elif cmd_str in OpCodes.ENABLE_RAW_MGM_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_RAW_MGM_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -355,19 +352,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_RAW_MGM_HK: + elif cmd_str in OpCodes.DISABLE_RAW_MGM_HK: q.add_log_cmd(Info.DISABLE_RAW_MGM_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.MGM_RAW_SET) ) ) - elif op_code in OpCodes.REQUEST_PROC_MGM_HK: + elif cmd_str 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, SetId.MGM_PROC_SET)) ) - elif op_code in OpCodes.ENABLE_PROC_MGM_HK: + elif cmd_str in OpCodes.ENABLE_PROC_MGM_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_PROC_MGM_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -375,19 +372,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_PROC_MGM_HK: + elif cmd_str in OpCodes.DISABLE_PROC_MGM_HK: q.add_log_cmd(Info.DISABLE_PROC_MGM_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.MGM_PROC_SET) ) ) - elif op_code in OpCodes.REQUEST_RAW_SUS_HK: + elif cmd_str 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, SetId.SUS_RAW_SET)) ) - elif op_code in OpCodes.ENABLE_RAW_SUS_HK: + elif cmd_str in OpCodes.ENABLE_RAW_SUS_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_RAW_SUS_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -395,19 +392,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_RAW_SUS_HK: + elif cmd_str in OpCodes.DISABLE_RAW_SUS_HK: q.add_log_cmd(Info.DISABLE_RAW_SUS_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.SUS_RAW_SET) ) ) - elif op_code in OpCodes.REQUEST_PROC_SUS_HK: + elif cmd_str 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, SetId.SUS_PROC_SET)) ) - elif op_code in OpCodes.ENABLE_PROC_SUS_HK: + elif cmd_str in OpCodes.ENABLE_PROC_SUS_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_PROC_SUS_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -415,19 +412,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_PROC_SUS_HK: + elif cmd_str in OpCodes.DISABLE_PROC_SUS_HK: q.add_log_cmd(Info.DISABLE_PROC_SUS_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.SUS_PROC_SET) ) ) - elif op_code in OpCodes.REQUEST_RAW_GYR_HK: + elif cmd_str in OpCodes.REQUEST_RAW_GYR_HK: q.add_log_cmd(Info.REQUEST_RAW_GYR_HK) q.add_pus_tc( create_request_one_diag_command(make_sid(ACS_CONTROLLER, SetId.GYR_RAW_SET)) ) - elif op_code in OpCodes.ENABLE_RAW_GYR_HK: + elif cmd_str in OpCodes.ENABLE_RAW_GYR_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_RAW_GYR_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -435,21 +432,21 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_RAW_GYR_HK: + elif cmd_str in OpCodes.DISABLE_RAW_GYR_HK: q.add_log_cmd(Info.DISABLE_RAW_GYR_HK) q.add_pus_tc( disable_periodic_hk_command( True, make_sid(ACS_CONTROLLER, SetId.GYR_RAW_SET) ) ) - elif op_code in OpCodes.REQUEST_PROC_GYR_HK: + elif cmd_str in OpCodes.REQUEST_PROC_GYR_HK: q.add_log_cmd(Info.REQUEST_PROC_GYR_HK) q.add_pus_tc( create_request_one_diag_command( make_sid(ACS_CONTROLLER, SetId.GYR_PROC_SET) ) ) - elif op_code in OpCodes.ENABLE_PROC_GYR_HK: + elif cmd_str in OpCodes.ENABLE_PROC_GYR_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_PROC_GYR_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -457,19 +454,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_PROC_GYR_HK: + elif cmd_str in OpCodes.DISABLE_PROC_GYR_HK: q.add_log_cmd(Info.DISABLE_PROC_GYR_HK) q.add_pus_tc( disable_periodic_hk_command( True, make_sid(ACS_CONTROLLER, SetId.GYR_PROC_SET) ) ) - elif op_code in OpCodes.REQUEST_PROC_GPS_HK: + elif cmd_str 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, SetId.GPS_PROC_SET)) ) - elif op_code in OpCodes.ENABLE_PROC_GPS_HK: + elif cmd_str in OpCodes.ENABLE_PROC_GPS_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_PROC_GPS_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -477,19 +474,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_PROC_GPS_HK: + elif cmd_str in OpCodes.DISABLE_PROC_GPS_HK: q.add_log_cmd(Info.DISABLE_PROC_GPS_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.GPS_PROC_SET) ) ) - elif op_code in OpCodes.REQUEST_MEKF_HK: + elif cmd_str in OpCodes.REQUEST_MEKF_HK: q.add_log_cmd(Info.REQUEST_MEKF_HK) q.add_pus_tc( create_request_one_diag_command(make_sid(ACS_CONTROLLER, SetId.MEKF_DATA)) ) - elif op_code in OpCodes.ENABLE_MEKF_HK: + elif cmd_str in OpCodes.ENABLE_MEKF_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_MEKF_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -497,17 +494,17 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_MEKF_HK: + elif cmd_str in OpCodes.DISABLE_MEKF_HK: q.add_log_cmd(Info.DISABLE_MEKF_HK) q.add_pus_tc( disable_periodic_hk_command(True, make_sid(ACS_CONTROLLER, SetId.MEKF_DATA)) ) - elif op_code in OpCodes.REQUEST_CTRL_VAL_HK: + elif cmd_str 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, SetId.CTRL_VAL_DATA)) ) - elif op_code in OpCodes.ENABLE_CTRL_VAL_HK: + elif cmd_str in OpCodes.ENABLE_CTRL_VAL_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_CTRL_VAL_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -515,19 +512,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_CTRL_VAL_HK: + elif cmd_str in OpCodes.DISABLE_CTRL_VAL_HK: q.add_log_cmd(Info.DISABLE_CTRL_VAL_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.CTRL_VAL_DATA) ) ) - elif op_code in OpCodes.REQUEST_ACT_CMD_HK: + elif cmd_str 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, SetId.ACTUATOR_CMD_DATA)) ) - elif op_code in OpCodes.ENABLE_ACT_CMD_HK: + elif cmd_str in OpCodes.ENABLE_ACT_CMD_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_ACT_CMD_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -535,19 +532,19 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_ACT_CMD_HK: + elif cmd_str in OpCodes.DISABLE_ACT_CMD_HK: q.add_log_cmd(Info.DISABLE_ACT_CMD_HK) q.add_pus_tc( disable_periodic_hk_command( False, make_sid(ACS_CONTROLLER, SetId.ACTUATOR_CMD_DATA) ) ) - elif op_code in OpCodes.REQUEST_FUSED_ROT_RATE_HK: + elif cmd_str in OpCodes.REQUEST_FUSED_ROT_RATE_HK: q.add_log_cmd(Info.REQUEST_FUSED_ROT_RATE_HK) q.add_pus_tc( generate_one_hk_command(make_sid(ACS_CONTROLLER, SetId.FUSED_ROT_RATE_DATA)) ) - elif op_code in OpCodes.ENABLE_FUSED_ROT_RATE_HK: + elif cmd_str in OpCodes.ENABLE_FUSED_ROT_RATE_HK: interval = float(input("Please specify interval in floating point seconds: ")) q.add_log_cmd(Info.ENABLE_FUSED_ROT_RATE_HK) cmd_tuple = enable_periodic_hk_command_with_interval( @@ -555,7 +552,7 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) q.add_pus_tc(cmd_tuple[0]) q.add_pus_tc(cmd_tuple[1]) - elif op_code in OpCodes.DISABLE_FUSED_ROT_RATE_HK: + elif cmd_str in OpCodes.DISABLE_FUSED_ROT_RATE_HK: q.add_log_cmd(Info.DISABLE_FUSED_ROT_RATE_HK) q.add_pus_tc( disable_periodic_hk_command( @@ -563,7 +560,7 @@ def pack_acs_ctrl_command(p: ServiceProviderParams): # noqa C901 ) ) else: - logging.getLogger(__name__).info(f"Unknown op code {op_code}") + logging.getLogger(__name__).info(f"Unknown op code {cmd_str}") def set_acs_ctrl_param_scalar(q: DefaultPusQueueHelper): diff --git a/eive_tmtc/tmtc/acs/gps.py b/eive_tmtc/tmtc/acs/gps.py index de5f823..8662612 100644 --- a/eive_tmtc/tmtc/acs/gps.py +++ b/eive_tmtc/tmtc/acs/gps.py @@ -73,12 +73,12 @@ def add_gps_cmds(defs: TmtcDefinitionWrapper): def pack_gps_command( # noqa: C901 - object_id: bytes, q: DefaultPusQueueHelper, op_code: str + object_id: bytes, q: DefaultPusQueueHelper, cmd_str: str ): # noqa: C901: - if op_code in OpCode.RESET_GNSS: + if cmd_str 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 OpCode.ENABLE_CORE_HK: + if cmd_str in OpCode.ENABLE_CORE_HK: interval = float(input("Please specify interval in floating point seconds: ")) if interval <= 0: raise ValueError("invalid interval") @@ -90,21 +90,21 @@ def pack_gps_command( # noqa: C901 ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCode.DISABLE_CORE_HK: + if cmd_str in OpCode.DISABLE_CORE_HK: q.add_log_cmd(f"gps: {Info.DISABLE_CORE_HK}") q.add_pus_tc( create_disable_periodic_hk_command_with_diag( diag=False, sid=make_sid(object_id=object_id, set_id=SetId.CORE_HK) ) ) - if op_code in OpCode.REQ_CORE_HK: + if cmd_str in OpCode.REQ_CORE_HK: q.add_log_cmd(f"GPS: {Info.REQ_CORE_HK}") q.add_pus_tc( create_request_one_hk_command( sid=make_sid(object_id=object_id, set_id=SetId.CORE_HK) ) ) - if op_code in OpCode.ENABLE_SKYVIEW_HK: + if cmd_str in OpCode.ENABLE_SKYVIEW_HK: interval = float(input("Please specify interval in floating point seconds: ")) if interval <= 0: raise ValueError("invalid interval") @@ -116,24 +116,24 @@ def pack_gps_command( # noqa: C901 ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCode.DISABLE_SKYVIEW_HK: + if cmd_str in OpCode.DISABLE_SKYVIEW_HK: q.add_log_cmd(f"gps: {Info.DISABLE_SKYVIEW_HK}") q.add_pus_tc( create_disable_periodic_hk_command_with_diag( diag=False, sid=make_sid(object_id=object_id, set_id=SetId.SKYVIEW_HK) ) ) - if op_code in OpCode.REQ_SKYVIEW_HK: + if cmd_str in OpCode.REQ_SKYVIEW_HK: q.add_log_cmd(f"GPS: {Info.REQ_SKYVIEW_HK}") q.add_pus_tc( create_request_one_hk_command( sid=make_sid(object_id=object_id, set_id=SetId.SKYVIEW_HK) ) ) - if op_code in OpCode.ON: + if cmd_str in OpCode.ON: q.add_log_cmd(f"GPS: {Info.ON}") q.add_pus_tc(create_mode_command(object_id, Mode.ON, 0)) - if op_code in OpCode.OFF: + if cmd_str in OpCode.OFF: q.add_log_cmd(f"GPS: {Info.OFF}") q.add_pus_tc(create_mode_command(object_id, Mode.OFF, 0)) diff --git a/eive_tmtc/tmtc/acs/gyros.py b/eive_tmtc/tmtc/acs/gyros.py index 4fe1442..11da367 100644 --- a/eive_tmtc/tmtc/acs/gyros.py +++ b/eive_tmtc/tmtc/acs/gyros.py @@ -59,7 +59,7 @@ GYR_SEL_DICT = { } -def handle_gyr_cmd(q: DefaultPusQueueHelper, op_code: str): +def handle_gyr_cmd(q: DefaultPusQueueHelper, cmd_str: str): print("Please select the Gyro Device") for k, v in GYR_SEL_DICT.items(): print(f"{k}: {v[0]}") @@ -72,23 +72,23 @@ def handle_gyr_cmd(q: DefaultPusQueueHelper, op_code: str): core_hk_id = AdisGyroSetId.CORE_HK else: core_hk_id = L3gGyroSetId.CORE_HK - if op_code == OpCode.NML: + if cmd_str == OpCode.NML: q.add_log_cmd(f"Gyro {gyr_info[0]} NORMAL mode") q.add_pus_tc(create_mode_command(gyr_obj_id, Mode.NORMAL, 0)) - if op_code == OpCode.OFF: + if cmd_str == OpCode.OFF: q.add_log_cmd(f"Gyro {gyr_info[0]} OFF mode") q.add_pus_tc(create_mode_command(gyr_obj_id, Mode.OFF, 0)) - elif op_code == OpCode.CORE_HK: + elif cmd_str == OpCode.CORE_HK: q.add_log_cmd(f"Gyro {gyr_info[0]} Core HK") q.add_pus_tc(create_request_one_hk_command(make_sid(gyr_obj_id, core_hk_id))) - elif op_code == OpCode.CFG_HK: + elif cmd_str == OpCode.CFG_HK: if not is_adis: raise ValueError("No config HK for L3 device") q.add_log_cmd(f"Gyro {gyr_info[0]} CFG HK") q.add_pus_tc( create_request_one_hk_command(make_sid(gyr_obj_id, AdisGyroSetId.CFG_HK)) ) - elif op_code == OpCode.SET_FAULTY: + elif cmd_str == OpCode.SET_FAULTY: q.add_log_cmd(f"Gyro {gyr_info[0]} set faulty") q.add_pus_tc( PusTelecommand( @@ -101,7 +101,7 @@ def handle_gyr_cmd(q: DefaultPusQueueHelper, op_code: str): ) else: logging.getLogger(__name__).warning( - f"invalid op code {op_code} for gyro command" + f"invalid op code {cmd_str} for gyro command" ) diff --git a/eive_tmtc/tmtc/acs/imtq.py b/eive_tmtc/tmtc/acs/imtq.py index a0cb0eb..919d411 100644 --- a/eive_tmtc/tmtc/acs/imtq.py +++ b/eive_tmtc/tmtc/acs/imtq.py @@ -128,26 +128,26 @@ def add_imtq_cmds(defs: TmtcDefinitionWrapper): defs.add_service(CustomServiceList.IMTQ.value, "IMQT Device", oce) -def pack_imtq_test_into( # noqa C901 - object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str +def create_imtq_command( # noqa C901 + object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str ): q.add_log_cmd( f"Testing ISIS IMTQ handler with object id: {object_id.as_hex_string}" ) - if op_code == OpCode.OFF: + if cmd_str == OpCode.OFF: q.add_log_cmd("IMTQ: Set mode off") 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 == OpCode.ON: + if cmd_str == OpCode.ON: q.add_log_cmd("IMTQ: Set mode on") 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 == OpCode.NORMAL: + if cmd_str == OpCode.NORMAL: q.add_log_cmd("IMTQ: Mode Normal") 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 == OpCode.POS_X_SELF_TEST: + if cmd_str == OpCode.POS_X_SELF_TEST: q.add_log_cmd("IMTQ: Perform positive x self test") command = object_id.as_bytes + ImtqActionId.perform_positive_x_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -160,7 +160,7 @@ def pack_imtq_test_into( # noqa C901 sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_X_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code == OpCode.NEG_X_SELF_TEST: + if cmd_str == OpCode.NEG_X_SELF_TEST: q.add_log_cmd("IMTQ: Perform negative x self test") command = object_id.as_bytes + ImtqActionId.perform_negative_x_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -171,7 +171,7 @@ def pack_imtq_test_into( # noqa C901 sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_X_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code == OpCode.POS_Y_SELF_TEST: + if cmd_str == OpCode.POS_Y_SELF_TEST: q.add_log_cmd("IMTQ: Perform positive y self test") command = object_id.as_bytes + ImtqActionId.perform_positive_y_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -183,7 +183,7 @@ def pack_imtq_test_into( # noqa C901 sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_Y_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code == OpCode.NEG_Y_SELF_TEST: + if cmd_str == OpCode.NEG_Y_SELF_TEST: q.add_log_cmd("IMTQ: Perform negative y self test") command = object_id.as_bytes + ImtqActionId.perform_negative_y_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -196,7 +196,7 @@ def pack_imtq_test_into( # noqa C901 sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_Y_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code == OpCode.POS_Z_SELF_TEST: + if cmd_str == OpCode.POS_Z_SELF_TEST: q.add_log_cmd("IMTQ: Perform positive z self test") command = object_id.as_bytes + ImtqActionId.perform_positive_z_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -209,7 +209,7 @@ def pack_imtq_test_into( # noqa C901 sid = make_sid(object_id.as_bytes, ImtqSetId.POSITIVE_Y_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code == OpCode.NEG_Z_SELF_TEST: + if cmd_str == OpCode.NEG_Z_SELF_TEST: q.add_log_cmd("IMTQ: Perform negative z self test") command = object_id.as_bytes + ImtqActionId.perform_negative_z_test q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) @@ -220,7 +220,7 @@ def pack_imtq_test_into( # noqa C901 sid = make_sid(object_id.as_bytes, ImtqSetId.NEGATIVE_Z_TEST) q.add_pus_tc(generate_one_hk_command(sid)) - if op_code in OpCode.SET_DIPOLE: + if cmd_str 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]: ")) @@ -241,12 +241,12 @@ def pack_imtq_test_into( # noqa C901 ) ) - if op_code == "10": # doesnt seem to work anymore + if cmd_str == "10": # doesnt seem to work anymore q.add_log_cmd("IMTQ: 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 == OpCode.ENABLE_ENG_HK_NO_TORQUE: + if cmd_str == OpCode.ENABLE_ENG_HK_NO_TORQUE: q.add_log_cmd("IMTQ: Enable ENG HK") interval = float(input("Please enter collection interval in seconds: ")) cmds = create_enable_periodic_hk_command_with_interval_with_diag( @@ -256,14 +256,14 @@ def pack_imtq_test_into( # noqa C901 ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code == OpCode.DISABLE_ENG_HK_NO_TORQUE: + if cmd_str == OpCode.DISABLE_ENG_HK_NO_TORQUE: q.add_log_cmd("IMTQ: Disable ENG HK (No Torque)") q.add_pus_tc( create_disable_periodic_hk_command_with_diag( True, make_sid(object_id.as_bytes, ImtqSetId.ENG_HK_NO_TORQUE) ) ) - if op_code == OpCode.REQUEST_ENG_HK_WITH_TORQUE: + if cmd_str == OpCode.REQUEST_ENG_HK_WITH_TORQUE: q.add_log_cmd("IMTQ: Get engineering hk set with torque") q.add_pus_tc( create_request_one_diag_command( @@ -273,7 +273,7 @@ def pack_imtq_test_into( # noqa C901 ) ) ) - if op_code == OpCode.ENABLE_ENG_HK_WITH_TORQUE: + if cmd_str == OpCode.ENABLE_ENG_HK_WITH_TORQUE: q.add_log_cmd("IMTQ: Enable ENG HK with torque") interval = float(input("Please enter collection interval in seconds: ")) cmds = create_enable_periodic_hk_command_with_interval_with_diag( @@ -283,14 +283,14 @@ def pack_imtq_test_into( # noqa C901 ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code == OpCode.DISABLE_ENG_HK_WITH_TORQUE: + if cmd_str == OpCode.DISABLE_ENG_HK_WITH_TORQUE: q.add_log_cmd("IMTQ: Disable ENG HK with Torque") q.add_pus_tc( create_disable_periodic_hk_command_with_diag( True, make_sid(object_id.as_bytes, ImtqSetId.ENG_HK_SET_WITH_TORQUE) ) ) - if op_code == OpCode.REQUEST_ENG_HK_NO_TORQUE: + if cmd_str == OpCode.REQUEST_ENG_HK_NO_TORQUE: q.add_log_cmd("IMTQ: Get engineering hk set (no torque)") q.add_pus_tc( generate_one_diag_command( @@ -300,7 +300,7 @@ def pack_imtq_test_into( # noqa C901 ) ) - if op_code == "12": + if cmd_str == "12": q.add_log_cmd("IMTQ: Get calibrated MTM hk set") q.add_pus_tc( create_request_one_diag_command( @@ -308,7 +308,7 @@ def pack_imtq_test_into( # noqa C901 ) ) - if op_code == OpCode.REQUEST_MGM_RAW_NO_TORQUE: + if cmd_str == OpCode.REQUEST_MGM_RAW_NO_TORQUE: q.add_log_cmd("IMTQ: Get raw MTM hk set") q.add_pus_tc( create_request_one_diag_command( @@ -318,14 +318,14 @@ def pack_imtq_test_into( # noqa C901 ) ) - if op_code == OpCode.DISABLE_MGM_RAW_NO_TORQUE: + if cmd_str == OpCode.DISABLE_MGM_RAW_NO_TORQUE: q.add_log_cmd("IMTQ: Disable MGM RAW HK (No Torque)") q.add_pus_tc( create_disable_periodic_hk_command_with_diag( True, make_sid(object_id.as_bytes, ImtqSetId.RAW_MTM_NO_TORQUE) ) ) - if op_code == OpCode.ENABLE_MGM_RAW_NO_TORQUE: + if cmd_str == OpCode.ENABLE_MGM_RAW_NO_TORQUE: q.add_log_cmd("IMTQ: Enable MGM RAW HK (No Torque)") interval = float(input("Please enter collection interval in seconds: ")) cmds = create_enable_periodic_hk_command_with_interval_with_diag( @@ -335,7 +335,7 @@ def pack_imtq_test_into( # noqa C901 ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code == OpCode.REQUEST_MGM_RAW_WITH_TORQUE: + if cmd_str == OpCode.REQUEST_MGM_RAW_WITH_TORQUE: q.add_log_cmd("IMTQ: Get raw MTM hk set") q.add_pus_tc( create_request_one_diag_command( @@ -344,7 +344,7 @@ def pack_imtq_test_into( # noqa C901 ) ) ) - if op_code == OpCode.ENABLE_MGM_RAW_WITH_TORQUE: + if cmd_str == OpCode.ENABLE_MGM_RAW_WITH_TORQUE: q.add_log_cmd("IMTQ: Enable MGM RAW HK (No Torque)") interval = float(input("Please enter collection interval in seconds: ")) cmds = create_enable_periodic_hk_command_with_interval_with_diag( @@ -354,7 +354,7 @@ def pack_imtq_test_into( # noqa C901 ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code == OpCode.DISABLE_MGM_RAW_WITH_TORQUE: + if cmd_str == OpCode.DISABLE_MGM_RAW_WITH_TORQUE: q.add_log_cmd("IMTQ: Disable MGM RAW HK (No Torque)") q.add_pus_tc( create_disable_periodic_hk_command_with_diag( diff --git a/eive_tmtc/tmtc/acs/mgms.py b/eive_tmtc/tmtc/acs/mgms.py index 1166d94..f6f877b 100644 --- a/eive_tmtc/tmtc/acs/mgms.py +++ b/eive_tmtc/tmtc/acs/mgms.py @@ -47,17 +47,17 @@ MGM_SEL_DICT = { } -def handle_mgm_cmd(q: DefaultPusQueueHelper, op_code: str): +def handle_mgm_cmd(q: DefaultPusQueueHelper, cmd_str: str): print("Please select the MGM Device") for k, v in MGM_SEL_DICT.items(): print(f"{k}: {v[0]}") sel_idx = int(input("Select MGM device by index: ")) mgm_info = MGM_SEL_DICT[MgmSel(sel_idx)] mgm_obj_id = mgm_info[1] - if op_code == OpCode.NORMAL: + if cmd_str == OpCode.NORMAL: q.add_log_cmd(f"Gyro {mgm_info[0]} NORMAL mode") q.add_pus_tc(create_mode_command(mgm_obj_id, Mode.NORMAL, 0)) - if op_code == OpCode.OFF: + if cmd_str == OpCode.OFF: q.add_log_cmd(f"Gyro {mgm_info[0]} OFF mode") q.add_pus_tc(create_mode_command(mgm_obj_id, Mode.OFF, 0)) diff --git a/eive_tmtc/tmtc/acs/reaction_wheels.py b/eive_tmtc/tmtc/acs/reaction_wheels.py index 7fe3b9b..5f07864 100644 --- a/eive_tmtc/tmtc/acs/reaction_wheels.py +++ b/eive_tmtc/tmtc/acs/reaction_wheels.py @@ -144,10 +144,10 @@ def add_rw_cmds(defs: TmtcDefinitionWrapper): ) -def pack_single_rw_test_into( # noqa C901: Complexity is okay here. - object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, op_code: str +def create_single_rw_cmd( # noqa C901: Complexity is okay here. + object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, cmd_str: str ): - if op_code == OpCodesDev.SPEED: + if cmd_str == OpCodesDev.SPEED: speed, ramp_time = prompt_speed_ramp_time() q.add_log_cmd( f"RW {rw_idx}: {InfoDev.SPEED} with target " @@ -155,41 +155,41 @@ def pack_single_rw_test_into( # noqa C901: Complexity is okay here. ) q.add_pus_tc(pack_set_speed_command(object_id, speed, ramp_time)) - if op_code == OpCodesDev.ON: + if cmd_str == OpCodesDev.ON: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ON}") 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 == OpCodesDev.NML: + if cmd_str == OpCodesDev.NML: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.NML}") 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 == OpCodesDev.OFF: + if cmd_str == OpCodesDev.OFF: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.OFF}") 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 == OpCodesDev.GET_TM: + if cmd_str == 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=RwSetId.TM_SET) ) ) - if op_code == OpCodesDev.REQ_TM: + if cmd_str == OpCodesDev.REQ_TM: q.add_log_cmd(f"RW {rw_idx}: {InfoDev.REQ_TM}") q.add_pus_tc( create_action_cmd(object_id=object_id, action_id=ActionId.REQUEST_TM) ) - if op_code in OpCodesDev.GET_STATUS: + if cmd_str 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=RwSetId.STATUS_SET_ID) ) ) - if op_code in OpCodesDev.ENABLE_STATUS_HK: + if cmd_str 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( @@ -197,7 +197,7 @@ def pack_single_rw_test_into( # noqa C901: Complexity is okay here. ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCodesDev.DISABLE_STATUS_HK: + if cmd_str 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( @@ -206,32 +206,32 @@ def pack_single_rw_test_into( # noqa C901: Complexity is okay here. ) -def pack_rw_ass_cmds(q: DefaultPusQueueHelper, object_id: bytes, op_code: str): - if op_code in OpCodesAss.OFF: +def pack_rw_ass_cmds(q: DefaultPusQueueHelper, object_id: bytes, cmd_str: str): + if cmd_str in OpCodesAss.OFF: data = pack_mode_data(object_id=object_id, mode=Mode.OFF, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=data ) ) - if op_code in OpCodesAss.ON: + if cmd_str in OpCodesAss.ON: data = pack_mode_data(object_id=object_id, mode=Mode.ON, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=data ) ) - if op_code in OpCodesAss.NML: + if cmd_str in OpCodesAss.NML: data = pack_mode_data(object_id=object_id, mode=Mode.NORMAL, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=data ) ) - if op_code in OpCodesAss.ALL_SPEED_UP: + if cmd_str in OpCodesAss.ALL_SPEED_UP: speed, ramp_time = prompt_speed_ramp_time() rw_speed_up_cmd_consec(q, [RW1_ID, RW2_ID, RW3_ID, RW4_ID], speed, ramp_time) - if op_code in OpCodesAss.ALL_SPEED_OFF: + if cmd_str in OpCodesAss.ALL_SPEED_OFF: rw_speed_down_cmd_consec( q, [RW1_ID, RW2_ID, RW3_ID, RW4_ID], prompt_ramp_time() ) diff --git a/eive_tmtc/tmtc/acs/star_tracker.py b/eive_tmtc/tmtc/acs/star_tracker.py index 17fec8b..f891b9e 100644 --- a/eive_tmtc/tmtc/acs/star_tracker.py +++ b/eive_tmtc/tmtc/acs/star_tracker.py @@ -238,68 +238,68 @@ def prompt_object_id_mode_cmd() -> bytes: def pack_star_tracker_commands( # noqa C901 - object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str + object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str ): q.add_log_cmd( f"Generate command for star tracker with object id: {object_id.as_hex_string}" ) obyt = object_id.as_bytes - if op_code == OpCodes.ON_BOOTLOADER: + if cmd_str == OpCodes.ON_BOOTLOADER: q.add_log_cmd("Star tracker: Mode On, Submode Bootloader") data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.ON, Submode.BOOTLOADER) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.ON_FIRMWARE: + if cmd_str == OpCodes.ON_FIRMWARE: q.add_log_cmd("Star tracker: Mode On, Submode Firmware") data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.ON, Submode.FIRMWARE) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.NORMAL: + if cmd_str == OpCodes.NORMAL: q.add_log_cmd("Star tracker: Mode Normal") data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.OFF: + if cmd_str == OpCodes.OFF: q.add_log_cmd("Star tracker: Mode Off") data = pack_mode_data(prompt_object_id_mode_cmd(), Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.ONE_SHOOT_HK: + if cmd_str == OpCodes.ONE_SHOOT_HK: q.add_log_cmd(Info.ONE_SHOOT_HK) request_dataset(q, DataSetRequest.ONESHOT) - if op_code == OpCodes.ENABLE_HK: + if cmd_str == OpCodes.ENABLE_HK: q.add_log_cmd(Info.ENABLE_HK) request_dataset(q, DataSetRequest.ENABLE) - if op_code == OpCodes.DISABLE_HK: + if cmd_str == OpCodes.DISABLE_HK: q.add_log_cmd(Info.DISABLE_HK) request_dataset(q, DataSetRequest.DISABLE) - if op_code == "4": + if cmd_str == "4": q.add_log_cmd("Star tracker: Mode Raw") data = pack_mode_data(obyt, Mode.RAW, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=data)) - if op_code == OpCodes.PING: + if cmd_str == OpCodes.PING: q.add_log_cmd("Star tracker: Ping") data = obyt + struct.pack("!I", StarTrackerActionId.PING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "6": + if cmd_str == "6": q.add_log_cmd("Star tracker: Switch to bootloader program") data = obyt + struct.pack( "!I", StarTrackerActionId.SWITCH_TO_BOOTLOADER_PROGRAM ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "7": + if cmd_str == "7": q.add_log_cmd("Star tracker: Temperature request") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TEMPERATURE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "8": + if cmd_str == "8": q.add_log_cmd("Star tracker: Request 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": + if cmd_str == "9": q.add_log_cmd("Star tracker: Request 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": + if cmd_str == "10": q.add_log_cmd("Star tracker: Request 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": + if cmd_str == "11": q.add_log_cmd("Star tracker: Set subscription parameters") json_file = get_config_file() data = ( @@ -308,15 +308,15 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "12": + if cmd_str == "12": q.add_log_cmd("Star tracker: Boot") data = obyt + struct.pack("!I", StarTrackerActionId.BOOT) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "13": + if cmd_str == "13": q.add_log_cmd("Star tracker: Request time") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TIME) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.UPLOAD_IMAGE: + if cmd_str == OpCodes.UPLOAD_IMAGE: q.add_log_cmd("Star tracker: Upload image") image = get_upload_image() data = ( @@ -325,7 +325,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(image, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.DOWNLOAD_IMAGE: + if cmd_str == OpCodes.DOWNLOAD_IMAGE: q.add_log_cmd(f"STR: {Info.DOWNLOAD_IMAGE}") path = input("Specify storage location (default - /mnt/sd0/startracker): ") if not path: @@ -336,7 +336,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(path, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "17": + if cmd_str == "17": q.add_log_cmd("Star tracker: Set limits") json_file = get_config_file() data = ( @@ -345,7 +345,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "18": + if cmd_str == "18": q.add_log_cmd("Star tracker: Set tracking parameters") json_file = get_config_file() data = ( @@ -354,7 +354,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "19": + if cmd_str == "19": q.add_log_cmd("Star tracker: Mounting") json_file = get_config_file() data = ( @@ -363,7 +363,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "20": + if cmd_str == "20": q.add_log_cmd("Star tracker: Camera") json_file = get_config_file() data = ( @@ -372,7 +372,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "22": + if cmd_str == "22": q.add_log_cmd("Star tracker: Centroiding") json_file = get_config_file() data = ( @@ -381,7 +381,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "23": + if cmd_str == "23": q.add_log_cmd("Star tracker: LISA") json_file = get_config_file() data = ( @@ -390,7 +390,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "24": + if cmd_str == "24": q.add_log_cmd("Star tracker: Matching") json_file = get_config_file() data = ( @@ -399,7 +399,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "25": + if cmd_str == "25": q.add_log_cmd("Star tracker: Validation") json_file = get_config_file() data = ( @@ -408,7 +408,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "26": + if cmd_str == "26": q.add_log_cmd("Star tracker: Algo") json_file = get_config_file() data = ( @@ -417,7 +417,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.TAKE_IMAGE: + if cmd_str == OpCodes.TAKE_IMAGE: q.add_log_cmd("Star tracker: Take image") actionid = int( input("Specify parameter ID (4: take image, 7: get histogram): ") @@ -428,11 +428,11 @@ def pack_star_tracker_commands( # noqa C901 + struct.pack("!B", actionid) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "28": + if cmd_str == "28": q.add_log_cmd("Star tracker: 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": + if cmd_str == "30": q.add_log_cmd("Star tracker: Set name of download image") filename = input("Specify download image name: ") data = ( @@ -441,15 +441,15 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(filename, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "31": + if cmd_str == "31": q.add_log_cmd("Star tracker: Request 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": + if cmd_str == "32": q.add_log_cmd("Star tracker: Request 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": + if cmd_str == "33": q.add_log_cmd("Star tracker: Set json filename") json_file = get_config_file() data = ( @@ -458,11 +458,11 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "35": + if cmd_str == "35": q.add_log_cmd("Star tracker: Flash read") data = pack_read_command(obyt) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "36": + if cmd_str == "36": q.add_log_cmd("Star tracker: Set flash read filename") filename = input("Specify filename: ") data = ( @@ -471,15 +471,15 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(filename, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "37": + if cmd_str == "37": q.add_log_cmd("Star tracker: Get checksum") data = pack_checksum_command(obyt) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.SET_TIME_FROM_SYS_TIME: + if cmd_str == OpCodes.SET_TIME_FROM_SYS_TIME: q.add_log_cmd(Info.SET_TIME_FROM_SYS_TIME) data = obyt + struct.pack("!I", StarTrackerActionId.SET_TIME_FROM_SYS_TIME) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "39": + if cmd_str == "39": q.add_log_cmd("Star tracker: Download Centroid") id = 0 data = ( @@ -488,7 +488,7 @@ def pack_star_tracker_commands( # noqa C901 + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "41": + if cmd_str == "41": q.add_log_cmd("Star tracker: Download matched star") id = 0 data = ( @@ -497,7 +497,7 @@ def pack_star_tracker_commands( # noqa C901 + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "42": + if cmd_str == "42": q.add_log_cmd("Star tracker: Download DB Image") id = 0 data = ( @@ -506,7 +506,7 @@ def pack_star_tracker_commands( # noqa C901 + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "43": + if cmd_str == "43": q.add_log_cmd("Star tracker: Download Blob Pixel") id = 0 type = 1 # 0 - normal, 1 - fast @@ -517,7 +517,7 @@ def pack_star_tracker_commands( # noqa C901 + struct.pack("!B", type) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "47": + if cmd_str == "47": q.add_log_cmd("Star tracker: FPGA action") id = 3 data = ( @@ -526,19 +526,19 @@ def pack_star_tracker_commands( # noqa C901 + struct.pack("!B", id) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "48": + if cmd_str == "48": q.add_log_cmd("Star tracker: Unlock") data = obyt + struct.pack("!I", StarTrackerActionId.UNLOCK) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "49": + if cmd_str == "49": q.add_log_cmd("Star tracker: Request camera parameters") 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": + if cmd_str == "50": q.add_log_cmd("Star tracker: Request limits") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LIMITS) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.SET_IMG_PROCESSOR_MODE: + if cmd_str == OpCodes.SET_IMG_PROCESSOR_MODE: q.add_log_cmd(Info.SET_IMG_PROCESSOR_MODE) json_file = get_config_file() data = ( @@ -547,7 +547,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "52": + if cmd_str == "52": q.add_log_cmd("Star tracker: EGSE load ground config camera parameters") data = ( obyt @@ -555,7 +555,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(FileDefs.egse_ground_config, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "53": + if cmd_str == "53": q.add_log_cmd("Star tracker: EGSE load flight config camera parameters") data = ( obyt @@ -563,55 +563,55 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(FileDefs.egse_flight_config, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "54": + if cmd_str == "54": q.add_log_cmd("Star tracker: Request log level parameters") 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": + if cmd_str == "55": q.add_log_cmd("Star tracker: Request mounting parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_MOUNTING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "56": + if cmd_str == "56": q.add_log_cmd("Star tracker: Request image processor parameters") 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": + if cmd_str == "57": q.add_log_cmd("Star tracker: Request centroiding parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_CENTROIDING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "58": + if cmd_str == "58": q.add_log_cmd("Star tracker: Request lisa parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_LISA) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "59": + if cmd_str == "59": q.add_log_cmd("Star tracker: Request matching parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_MATCHING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "60": + if cmd_str == "60": q.add_log_cmd("Star tracker: Request tracking parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_TRACKING) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "61": + if cmd_str == "61": q.add_log_cmd("Star tracker: Request validation parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_VALIDATION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "62": + if cmd_str == "62": q.add_log_cmd("Star tracker: Request algo parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_ALGO) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "63": + if cmd_str == "63": q.add_log_cmd("Star tracker: Request subscription parameters") data = obyt + struct.pack("!I", StarTrackerActionId.REQ_SUBSCRIPTION) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "64": + if cmd_str == "64": q.add_log_cmd("Star tracker: Request log subscription parameters") 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": + if cmd_str == "65": q.add_log_cmd("Star tracker: Request debug camera parameters") 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": + if cmd_str == "66": q.add_log_cmd("Star tracker: Set log level parameters") json_file = get_config_file() data = ( @@ -620,7 +620,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "67": + if cmd_str == "67": q.add_log_cmd("Star tracker: Set log subscription parameters") json_file = get_config_file() @@ -630,7 +630,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == "68": + if cmd_str == "68": q.add_log_cmd("Star tracker: Set debug camera parameters") json_file = get_config_file() data = ( @@ -639,7 +639,7 @@ def pack_star_tracker_commands( # noqa C901 + bytearray(json_file, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.FW_UPDATE: + if cmd_str == OpCodes.FW_UPDATE: q.add_log_cmd(Info.FW_UPDATE) firmware = get_firmware() data = ( @@ -648,7 +648,7 @@ def pack_star_tracker_commands( # noqa C901 + firmware.encode() ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=data)) - if op_code == OpCodes.ADD_SECONDARY_TM_TO_NORMAL_MODE: + if cmd_str == OpCodes.ADD_SECONDARY_TM_TO_NORMAL_MODE: q.add_log_cmd(Info.ADD_SECONDARY_TM_TO_NORMAL_MODE) for val in SetId: print("{:<2}: {:<20}".format(val, val.name)) @@ -660,7 +660,7 @@ def pack_star_tracker_commands( # noqa C901 struct.pack("!I", set_id), ) ) - if op_code == OpCodes.RESET_SECONDARY_TM_SET: + if cmd_str == OpCodes.RESET_SECONDARY_TM_SET: q.add_log_cmd(Info.RESET_SECONDARY_TM_SET) q.add_pus_tc( create_action_cmd( @@ -668,7 +668,7 @@ def pack_star_tracker_commands( # noqa C901 StarTrackerActionId.RESET_SECONDARY_TM_SET, ) ) - if op_code == OpCodes.READ_SECONDARY_TM_SET: + if cmd_str == OpCodes.READ_SECONDARY_TM_SET: q.add_log_cmd(Info.READ_SECONDARY_TM_SET) q.add_pus_tc( create_action_cmd( diff --git a/eive_tmtc/tmtc/com/ccsds_handler.py b/eive_tmtc/tmtc/com/ccsds_handler.py index 4aba6ed..5ddcc97 100644 --- a/eive_tmtc/tmtc/com/ccsds_handler.py +++ b/eive_tmtc/tmtc/com/ccsds_handler.py @@ -67,29 +67,29 @@ class Info: def pack_ccsds_handler_command( # noqa C901 - object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str + object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str ): obyt = object_id.as_bytes prefix = "CCSDS Handler" q.add_log_cmd(f"Testing CCSDS handler with object id: {object_id.as_hex_string}") - if op_code in OpCode.ENABLE_WITH_LOW_DATARATE: + if cmd_str in OpCode.ENABLE_WITH_LOW_DATARATE: q.add_log_cmd(f"{prefix}: {Info.ENABLE_WITH_LOW_DATARATE}") q.add_pus_tc(create_mode_command(obyt, Mode.ON, Submode.DATARATE_LOW)) - if op_code in OpCode.ENABLE_WITH_HIGH_DATARATE: + if cmd_str in OpCode.ENABLE_WITH_HIGH_DATARATE: q.add_log_cmd(f"{prefix}: {Info.ENABLE_WITH_HIGH_DATARATE}") q.add_pus_tc(create_mode_command(obyt, Mode.ON, Submode.DATARATE_HIGH)) - if op_code in OpCode.DISABLE: + if cmd_str in OpCode.DISABLE: q.add_log_cmd(f"{prefix}: {Info.DISABLE}") q.add_pus_tc(create_mode_command(obyt, Mode.OFF, 0)) - if op_code in OpCode.ENABLE_ACTION: + if cmd_str in OpCode.ENABLE_ACTION: q.add_log_cmd(f"{prefix}: {Info.ENABLE_ACTION}") command = obyt + struct.pack("!I", ActionId.EN_TRANSMITTER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code in OpCode.DISABLE_ACTION: + if cmd_str in OpCode.DISABLE_ACTION: q.add_log_cmd(f"{prefix}: {Info.DISABLE_ACTION}") command = obyt + struct.pack("!I", ActionId.DIS_TRANSMITTER) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == "4": + if cmd_str == "4": q.add_log_cmd("CCSDS Handler: Set arbitrary bitrate") bitrate = int(input("Specify bit rate (bps): ")) command = ( @@ -98,19 +98,19 @@ def pack_ccsds_handler_command( # noqa C901 + struct.pack("!I", bitrate) ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == "5": + if cmd_str == "5": q.add_log_cmd("CCSDS Handler: Enable tx clock manipulator") command = obyt + struct.pack("!I", ActionId.ENABLE_TX_CLK_MANIPULATOR) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == "6": + if cmd_str == "6": q.add_log_cmd("CCSDS Handler: Disable tx clock manipulator") command = obyt + struct.pack("!I", ActionId.DISABLE_TX_CLK_MANIPULATOR) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == "7": + if cmd_str == "7": q.add_log_cmd("CCSDS Handler: Update tx data on rising edge of tx clock") command = obyt + struct.pack("!I", ActionId.UPDATE_ON_RISING_EDGE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == "8": + if cmd_str == "8": q.add_log_cmd("CCSDS Handler: Update tx data on falling edge of tx clock") command = obyt + struct.pack("!I", ActionId.UPDATE_ON_FALLING_EDGE) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/tmtc/com/pdec_handler.py b/eive_tmtc/tmtc/com/pdec_handler.py index 24e7a1f..5ac69b4 100644 --- a/eive_tmtc/tmtc/com/pdec_handler.py +++ b/eive_tmtc/tmtc/com/pdec_handler.py @@ -60,20 +60,20 @@ class Info: RESET_NO_INIT = "Reset with mandatory initialization" -def pack_pdec_handler_test( - object_id: bytearray, q: DefaultPusQueueHelper, op_code: str +def pack_pdec_handler_commands( + object_id: bytes, q: DefaultPusQueueHelper, cmd_str: str ): q.add_log_cmd(f"Testing PDEC handler with object id: {object_id.hex()}") prefix = "PDEC Handler " - if op_code == OpCode.PRINT_CLCW: + if cmd_str == OpCode.PRINT_CLCW: q.add_log_cmd(f"{prefix}: {Info.PRINT_CLCW}") command = object_id + CommandId.PRINT_CLCW q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == OpCode.PRINT_MON_REG: + if cmd_str == OpCode.PRINT_MON_REG: q.add_log_cmd(f"{prefix}: {Info.PRINT_MON_REG}") command = object_id + CommandId.PRINT_PDEC_MON q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == OpCode.POSITIVE_WINDOW: + if cmd_str == OpCode.POSITIVE_WINDOW: q.add_log_cmd(f"{prefix}: {Info.POSITIVE_WINDOW}") pw = int(input("Specify positive window to set: ")) q.add_pus_tc( @@ -86,7 +86,7 @@ def pack_pdec_handler_test( ) ) ) - if op_code == OpCode.NEGATIVE_WINDOW: + if cmd_str == OpCode.NEGATIVE_WINDOW: q.add_log_cmd(f"{prefix}: {Info.NEGATIVE_WINDOW}") nw = int(input("Specify negative window to set: ")) q.add_pus_tc( @@ -99,12 +99,12 @@ def pack_pdec_handler_test( ) ) ) - if op_code == OpCode.RESET_NO_INIT: + if cmd_str == OpCode.RESET_NO_INIT: q.add_log_cmd(f"{prefix}: {Info.RESET_NO_INIT}") q.add_pus_tc( create_action_cmd(object_id=object_id, action_id=ActionId.RESET_NO_INIT) ) - if op_code == OpCode.RESET_WITH_INIT: + if cmd_str == OpCode.RESET_WITH_INIT: q.add_log_cmd(f"{prefix}: {Info.RESET_WITH_INIT}") q.add_pus_tc( create_action_cmd(object_id=object_id, action_id=ActionId.RESET_WITH_INIT) diff --git a/eive_tmtc/tmtc/com/syrlinks_handler.py b/eive_tmtc/tmtc/com/syrlinks_handler.py index 608d101..8a1fada 100644 --- a/eive_tmtc/tmtc/com/syrlinks_handler.py +++ b/eive_tmtc/tmtc/com/syrlinks_handler.py @@ -143,42 +143,42 @@ def normal_mode_cmd(q: DefaultPusQueueHelper, info: str, submode: int): def pack_syrlinks_command( # noqa C901: Complexity okay here. - object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str + object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str ): 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 == OpCode.OFF: + if cmd_str == OpCode.OFF: q.add_log_cmd(f"{prefix}: {Info.OFF}") q.add_pus_tc(create_mode_command(obyt, Mode.OFF, 0)) - if op_code == OpCode.ON: + if cmd_str == OpCode.ON: q.add_log_cmd(f"{prefix}: {Info.ON}") q.add_pus_tc(create_mode_command(obyt, Mode.ON, ComMode.RX_ONLY)) - if op_code == OpCode.NORMAL_RX_ONLY: + if cmd_str == OpCode.NORMAL_RX_ONLY: normal_mode_cmd(q, Info.NORMAL_RX_ONLY, ComMode.RX_ONLY) - if op_code == OpCode.NORMAL_RX_AND_TX_LOW_DATARATE: + if cmd_str == OpCode.NORMAL_RX_AND_TX_LOW_DATARATE: normal_mode_cmd( q, Info.NORMAL_RX_AND_TX_LOW_DATARATE, ComMode.RX_AND_TX_LOW_DATARATE ) - if op_code == OpCode.NORMAL_RX_AND_TX_DEF_DATARATE: + if cmd_str == OpCode.NORMAL_RX_AND_TX_DEF_DATARATE: normal_mode_cmd( q, Info.NORMAL_RX_AND_TX_DEF_DATARATE, ComMode.RX_AND_TX_DEF_DATARATE ) - if op_code == OpCode.NORMAL_RX_AND_TX_HIGH_DATARATE: + if cmd_str == OpCode.NORMAL_RX_AND_TX_HIGH_DATARATE: normal_mode_cmd( q, Info.NORMAL_RX_AND_TX_HIGH_DATARATE, ComMode.RX_AND_TX_HIGH_DATARATE ) - if op_code in OpCode.NORMAL_RX_AND_TX_CW: + if cmd_str in OpCode.NORMAL_RX_AND_TX_CW: normal_mode_cmd(q, Info.NORMAL_RX_AND_TX_CW, ComMode.RX_AND_TX_CARRIER_WAVE) - if op_code in OpCode.HK_RX_REGS: + if cmd_str in OpCode.HK_RX_REGS: q.add_log_cmd(f"{prefix}: {Info.HK_RX_REGS}") sid = make_sid(obyt, SetId.RX_REGISTERS_DATASET) q.add_pus_tc(create_request_one_diag_command(sid)) - if op_code in OpCode.HK_TEMPS: + if cmd_str in OpCode.HK_TEMPS: q.add_log_cmd(f"{prefix}: {Info.HK_TEMPS}") sid = make_sid(obyt, SetId.TEMPERATURE_SET_ID) q.add_pus_tc(create_request_one_hk_command(sid)) - if op_code in OpCode.ENABLE_HK_RX_REGS: + if cmd_str in OpCode.ENABLE_HK_RX_REGS: q.add_log_cmd(f"{prefix}: {Info.ENABLE_HK_RX_REGS}") sid = make_sid(obyt, SetId.RX_REGISTERS_DATASET) interval = float(input("HK interval in floating point seconds")) @@ -187,11 +187,11 @@ def pack_syrlinks_command( # noqa C901: Complexity okay here. ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCode.DISABLE_HK_RX_REGS: + if cmd_str in OpCode.DISABLE_HK_RX_REGS: q.add_log_cmd(f"{prefix}: {Info.DISABLE_HK_RX_REGS}") sid = make_sid(obyt, SetId.RX_REGISTERS_DATASET) q.add_pus_tc(create_disable_periodic_hk_command_with_diag(True, sid)) - if op_code in OpCode.ENABLE_HK_TX_REGS: + if cmd_str in OpCode.ENABLE_HK_TX_REGS: q.add_log_cmd(f"{prefix}: {Info.ENABLE_HK_TX_REGS}") sid = make_sid(obyt, SetId.TX_REGISTERS_DATASET) interval = float(input("HK interval in floating point seconds")) @@ -200,59 +200,59 @@ def pack_syrlinks_command( # noqa C901: Complexity okay here. ) for cmd in cmds: q.add_pus_tc(cmd) - if op_code in OpCode.DISABLE_HK_TX_REGS: + if cmd_str in OpCode.DISABLE_HK_TX_REGS: q.add_log_cmd(f"{prefix}: {Info.DISABLE_HK_TX_REGS}") sid = make_sid(obyt, SetId.TX_REGISTERS_DATASET) q.add_pus_tc(create_disable_periodic_hk_command_with_diag(True, sid)) - if op_code in OpCode.HK_TX_REGS: + if cmd_str in OpCode.HK_TX_REGS: q.add_log_cmd(f"{prefix}: {Info.HK_TX_REGS}") sid = make_sid(obyt, SetId.TX_REGISTERS_DATASET) q.add_pus_tc(create_request_one_diag_command(sid)) - if op_code in OpCode.TX_STATUS: + if cmd_str in OpCode.TX_STATUS: q.add_log_cmd(f"{prefix}: {Info.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": + if cmd_str == "9": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "10": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "11": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "12": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "13": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "14": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "15": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "16": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "17": q.add_log_cmd("Syrlinks: 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": + if cmd_str == "18": q.add_log_cmd("Syrlinks: Enable debug printout") command = obyt + struct.pack("!I", CommandId.ENABLE_DEBUG) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) - if op_code == "19": + if cmd_str == "19": q.add_log_cmd("Syrlinks: Disable debug printout") 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/tmtc/core.py b/eive_tmtc/tmtc/core.py index a8f5faf..d7b4170 100644 --- a/eive_tmtc/tmtc/core.py +++ b/eive_tmtc/tmtc/core.py @@ -245,22 +245,22 @@ def add_core_controller_definitions(defs: TmtcDefinitionWrapper): def pack_core_commands( # noqa C901 - q: DefaultPusQueueHelper, op_code: str + q: DefaultPusQueueHelper, cmd_str: str ): # noqa: C901 , complexity okay here - if op_code == OpCode.ANNOUNCE_VERSION: + if cmd_str == OpCode.ANNOUNCE_VERSION: q.add_log_cmd(f"{Info.ANNOUNCE_VERSION}") q.add_pus_tc(create_action_cmd(CORE_CONTROLLER_ID, ActionId.ANNOUNCE_VERSION)) - elif op_code == OpCode.ANNOUNCE_CURRENT_IMAGE: + elif cmd_str == OpCode.ANNOUNCE_CURRENT_IMAGE: q.add_log_cmd(f"{Info.ANNOUNCE_CURRENT_IMAGE}") q.add_pus_tc( create_action_cmd(CORE_CONTROLLER_ID, ActionId.ANNOUNCE_CURRENT_IMAGE) ) - elif op_code == OpCode.ANNOUNCE_BOOT_COUNTS: + elif cmd_str == OpCode.ANNOUNCE_BOOT_COUNTS: q.add_log_cmd(f"{Info.ANNOUNCE_BOOT_COUNTS}") q.add_pus_tc( create_action_cmd(CORE_CONTROLLER_ID, ActionId.ANNOUNCE_BOOT_COUNTS) ) - elif op_code in OpCode.REBOOT_XSC: + elif cmd_str in OpCode.REBOOT_XSC: reboot_self, chip_select, copy_select = determine_reboot_params() add_xsc_reboot_cmd( q=q, @@ -268,16 +268,16 @@ def pack_core_commands( # noqa C901 chip=chip_select, copy=copy_select, ) - elif op_code in OpCode.REBOOT_FULL: + elif cmd_str in OpCode.REBOOT_FULL: q.add_log_cmd(f"Core Command: {Info.REBOOT_FULL}") q.add_pus_tc( create_action_cmd( object_id=CORE_CONTROLLER_ID, action_id=ActionId.FULL_REBOOT ) ) - elif op_code in OpCode.XSC_REBOOT_SELF: + elif cmd_str in OpCode.XSC_REBOOT_SELF: add_xsc_reboot_cmd(q=q, reboot_self=True) - elif op_code == OpCode.SYSTEMCTL_CMD_EXECUTOR: + elif cmd_str == OpCode.SYSTEMCTL_CMD_EXECUTOR: print("systemctl command types: ") for entry in SystemctlCmd: print(f"{entry}: {entry.name}") @@ -286,7 +286,7 @@ def pack_core_commands( # noqa C901 ) unit_name = input("Specify unit name: ") q.add_pus_tc(create_systemctl_cmd(systemctl_cmd, unit_name)) - elif op_code == OpCode.EXECUTE_SHELL_CMD_BLOCKING: + elif cmd_str == OpCode.EXECUTE_SHELL_CMD_BLOCKING: custom_cmd = input("Please specify command to execute: ") q.add_pus_tc( create_action_cmd( @@ -295,7 +295,7 @@ def pack_core_commands( # noqa C901 user_data=custom_cmd.encode(), ) ) - elif op_code == OpCode.EXECUTE_SHELL_CMD_NON_BLOCKING: + elif cmd_str == OpCode.EXECUTE_SHELL_CMD_NON_BLOCKING: custom_cmd = input("Please specify command to execute: ") q.add_pus_tc( create_action_cmd( @@ -304,29 +304,29 @@ def pack_core_commands( # noqa C901 user_data=custom_cmd.encode(), ) ) - elif op_code in OpCode.XSC_REBOOT_0_0: + elif cmd_str in OpCode.XSC_REBOOT_0_0: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_0_NOM ) - elif op_code in OpCode.XSC_REBOOT_0_1: + elif cmd_str in OpCode.XSC_REBOOT_0_1: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_0, copy=Copy.COPY_1_GOLD, ) - elif op_code in OpCode.XSC_REBOOT_1_0: + elif cmd_str in OpCode.XSC_REBOOT_1_0: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, copy=Copy.COPY_0_NOM ) - elif op_code in OpCode.XSC_REBOOT_1_1: + elif cmd_str in OpCode.XSC_REBOOT_1_1: add_xsc_reboot_cmd( q=q, reboot_self=False, chip=Chip.CHIP_1, copy=Copy.COPY_1_GOLD, ) - elif op_code == OpCode.READ_REBOOT_MECHANISM_INFO: + elif cmd_str == OpCode.READ_REBOOT_MECHANISM_INFO: q.add_log_cmd(Info.READ_REBOOT_MECHANISM_INFO) q.add_pus_tc( create_action_cmd( @@ -334,7 +334,7 @@ def pack_core_commands( # noqa C901 action_id=ActionId.READ_REBOOT_MECHANISM_INFO, ) ) - elif op_code == OpCode.DISABLE_REBOOT_FILE_HANDLING: + elif cmd_str == OpCode.DISABLE_REBOOT_FILE_HANDLING: q.add_log_cmd("Disabling reboot file handling") user_data = bytearray([0]) q.add_pus_tc( @@ -344,7 +344,7 @@ def pack_core_commands( # noqa C901 user_data=user_data, ) ) - elif op_code == OpCode.ENABLE_REBOOT_FILE_HANDLING: + elif cmd_str == OpCode.ENABLE_REBOOT_FILE_HANDLING: q.add_log_cmd("Enabling reboot file handling") user_data = bytearray([1]) q.add_pus_tc( @@ -354,7 +354,7 @@ def pack_core_commands( # noqa C901 user_data=user_data, ) ) - elif op_code == OpCode.RESET_ALL_REBOOT_COUNTERS: + elif cmd_str == OpCode.RESET_ALL_REBOOT_COUNTERS: q.add_log_cmd("Resetting all reboot counters") q.add_pus_tc( create_action_cmd( @@ -362,15 +362,15 @@ def pack_core_commands( # noqa C901 action_id=ActionId.RESET_REBOOT_COUNTER, ) ) - elif op_code == OpCode.RWD_RESET_REBOOT_COUNTER_00: + elif cmd_str == OpCode.RWD_RESET_REBOOT_COUNTER_00: reset_specific_boot_counter(q, 0, 0) - elif op_code == OpCode.RWD_RESET_REBOOT_COUNTER_01: + elif cmd_str == OpCode.RWD_RESET_REBOOT_COUNTER_01: reset_specific_boot_counter(q, 0, 1) - elif op_code == OpCode.RWD_RESET_REBOOT_COUNTER_10: + elif cmd_str == OpCode.RWD_RESET_REBOOT_COUNTER_10: reset_specific_boot_counter(q, 1, 0) - elif op_code == OpCode.RWD_RESET_REBOOT_COUNTER_11: + elif cmd_str == OpCode.RWD_RESET_REBOOT_COUNTER_11: reset_specific_boot_counter(q, 1, 1) - elif op_code == OpCode.RWD_SET_MAX_REBOOT_CNT: + elif cmd_str == OpCode.RWD_SET_MAX_REBOOT_CNT: max_count = int(input("Set new maximum reboot threshold [1, 50]: ")) if max_count < 1 or max_count > 50: raise ValueError("Invalid value, must be in range 1 to 50") @@ -381,16 +381,16 @@ def pack_core_commands( # noqa C901 user_data=bytes([max_count]), ) ) - elif op_code in OpCode.OBSW_UPDATE_FROM_SD_0: + elif cmd_str 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(ActionId.UPDATE_OBSW_FROM_SD_0)) - elif op_code in OpCode.OBSW_UPDATE_FROM_SD_1: + elif cmd_str 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(ActionId.UPDATE_OBSW_FROM_SD_1)) - elif op_code in OpCode.OBSW_UPDATE_FROM_TMP: + elif cmd_str in OpCode.OBSW_UPDATE_FROM_TMP: q.add_log_cmd(Info.OBSW_UPDATE_FROM_TMP) q.add_pus_tc(pack_obsw_update_cmd(ActionId.UPDATE_OBSW_FROM_TMP)) - elif op_code in OpCode.AUTO_SWITCH_ENABLE: + elif cmd_str in OpCode.AUTO_SWITCH_ENABLE: q.add_log_cmd(Info.AUTO_SWITCH_ENABLE) chip, copy = determine_chip_and_copy() user_data = bytes([chip, copy]) @@ -399,26 +399,26 @@ def pack_core_commands( # noqa C901 CORE_CONTROLLER_ID, ActionId.AUTO_SWITCH_ENABLE, user_data ) ) - elif op_code in OpCode.AUTO_SWITCH_DISABLE: + elif cmd_str in OpCode.AUTO_SWITCH_DISABLE: q.add_log_cmd(Info.AUTO_SWITCH_DISABLE) q.add_pus_tc( create_action_cmd(CORE_CONTROLLER_ID, ActionId.AUTO_SWITCH_DISABLE) ) - elif op_code in OpCode.SWITCH_TO_SD_0: + elif cmd_str in OpCode.SWITCH_TO_SD_0: q.add_log_cmd(Info.SWITCH_TO_SD_0) q.add_pus_tc( create_action_cmd( object_id=CORE_CONTROLLER_ID, action_id=ActionId.SWITCH_TO_SD_0 ) ) - elif op_code in OpCode.SWITCH_TO_SD_1: + elif cmd_str in OpCode.SWITCH_TO_SD_1: q.add_log_cmd(Info.SWITCH_TO_SD_1) q.add_pus_tc( create_action_cmd( object_id=CORE_CONTROLLER_ID, action_id=ActionId.SWITCH_TO_SD_1 ) ) - elif op_code in OpCode.SWITCH_TO_BOTH_SD_CARDS: + elif cmd_str in OpCode.SWITCH_TO_BOTH_SD_CARDS: while True: active_sd_card = int(input("Please specify active SD card [0/1]: ")) if active_sd_card not in [0, 1]: @@ -432,11 +432,11 @@ def pack_core_commands( # noqa C901 user_data=bytes([active_sd_card]), ) ) - elif op_code in OpCode.GET_HK: + elif cmd_str in OpCode.GET_HK: q.add_log_cmd("Requesting housekeeping set") sid = make_sid(object_id=CORE_CONTROLLER_ID, set_id=SetId.HK) q.add_pus_tc(generate_one_hk_command(sid)) - elif op_code in OpCode.SET_PREF_SD: + elif cmd_str in OpCode.SET_PREF_SD: q.add_log_cmd("Set preferred SD card") pref_sd = int( input("Specify which SD card to set as the preferred one (0/1): ") @@ -453,7 +453,7 @@ def pack_core_commands( # noqa C901 ) ) ) - elif op_code == OpCode.CP_HELPER: + elif cmd_str == OpCode.CP_HELPER: cp_recursive = int(input("Copy recursively (0/1) ?: ")) if cp_recursive not in [0, 1]: raise ValueError("Invalid value, only 0 or 1 allowed") @@ -466,13 +466,13 @@ def pack_core_commands( # noqa C901 q.add_pus_tc( create_action_cmd(CORE_CONTROLLER_ID, ActionId.CP_HELPER, user_data) ) - elif op_code == OpCode.MV_HELPER: + elif cmd_str == OpCode.MV_HELPER: user_data = packet_source_dest_path("Move") q.add_log_cmd(Info.MV_HELPER) q.add_pus_tc( create_action_cmd(CORE_CONTROLLER_ID, ActionId.MV_HELPER, user_data) ) - elif op_code == OpCode.RM_HELPER: + elif cmd_str == OpCode.RM_HELPER: rm_recursive = int(input("Remove with recursive (-r) option (0/1) ?: ")) if rm_recursive not in [0, 1]: raise ValueError("Invalid value, only 0 or 1 allowed") @@ -487,7 +487,7 @@ def pack_core_commands( # noqa C901 q.add_pus_tc( create_action_cmd(CORE_CONTROLLER_ID, ActionId.RM_HELPER, user_data) ) - elif op_code == OpCode.LIST_DIR_INTO_FILE: + elif cmd_str == OpCode.LIST_DIR_INTO_FILE: q.add_log_cmd(Info.LIST_DIR_INTO_FILE) user_data = list_directory_base_user_data() dest_file_path = input("Destination file path: ") @@ -498,7 +498,7 @@ def pack_core_commands( # noqa C901 CORE_CONTROLLER_ID, ActionId.LIST_DIR_INTO_FILE, user_data ) ) - elif op_code == OpCode.LIST_DIR_DUMP_DIRECTLY: + elif cmd_str == OpCode.LIST_DIR_DUMP_DIRECTLY: q.add_log_cmd(Info.LIST_DIR_DUMP_DIRECTLY) user_data = list_directory_base_user_data() q.add_pus_tc( @@ -506,7 +506,7 @@ def pack_core_commands( # noqa C901 CORE_CONTROLLER_ID, ActionId.LIST_DIR_DUMP_DIRECTLY, user_data ) ) - elif op_code == OpCode.MKDIR_HELPER: + elif cmd_str == OpCode.MKDIR_HELPER: q.add_log_cmd(Info.MKDIR_HELPER) user_data = input("Specify absolute path of newly created directory: ") user_data = bytearray(user_data.encode()) @@ -516,7 +516,7 @@ def pack_core_commands( # noqa C901 ) else: _LOGGER.warning( - f"Unknown operation code {op_code} for core controller commands" + f"Unknown operation code {cmd_str} for core controller commands" ) diff --git a/eive_tmtc/tmtc/payload/plpcdu.py b/eive_tmtc/tmtc/payload/plpcdu.py index 53eb207..ea151bd 100644 --- a/eive_tmtc/tmtc/payload/plpcdu.py +++ b/eive_tmtc/tmtc/payload/plpcdu.py @@ -215,13 +215,13 @@ def add_pl_pcdu_cmds(defs: TmtcDefinitionWrapper): def pack_pl_pcdu_commands( # noqa C901: Complexity is okay here. - q: DefaultPusQueueHelper, op_code: str + q: DefaultPusQueueHelper, cmd_str: str ): # noqa C901: Complexity is okay here. - if op_code == OpCode.SWITCH_ON: + if cmd_str == OpCode.SWITCH_ON: pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_ON, mode=Mode.ON, submode=0) - if op_code == OpCode.SWITCH_OFF: + if cmd_str == OpCode.SWITCH_OFF: pack_pl_pcdu_mode_cmd(q=q, info=Info.SWITCH_OFF, mode=Mode.OFF, submode=0) - if op_code in OpCode.ENABLE_HK: + if cmd_str in OpCode.ENABLE_HK: interval = float( input("Please enter HK collection interval in floating point seconds: ") ) @@ -231,13 +231,13 @@ def pack_pl_pcdu_commands( # noqa C901: Complexity is okay here. 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 == OpCode.DISABLE_HK: + if cmd_str == OpCode.DISABLE_HK: cmd = disable_periodic_hk_command( 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 == OpCode.NORMAL_SSR: + if cmd_str == OpCode.NORMAL_SSR: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_SSR, @@ -246,49 +246,49 @@ def pack_pl_pcdu_commands( # noqa C901: Complexity is okay here. NormalSubmodesMask.SOLID_STATE_RELAYS_ADC_ON ), ) - if op_code == OpCode.NORMAL_DRO: + if cmd_str == OpCode.NORMAL_DRO: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_DRO, mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.DRO_ON), ) - if op_code == OpCode.NORMAL_X8: + if cmd_str == OpCode.NORMAL_X8: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_X8, mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.X8_ON), ) - if op_code == OpCode.NORMAL_TX: + if cmd_str == OpCode.NORMAL_TX: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_TX, mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.TX_ON), ) - if op_code == OpCode.NORMAL_MPA: + if cmd_str == OpCode.NORMAL_MPA: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_MPA, mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.MPA_ON), ) - if op_code == OpCode.NORMAL_HPA: + if cmd_str == OpCode.NORMAL_HPA: pack_pl_pcdu_mode_cmd( q=q, info=Info.NORMAL_HPA, mode=Mode.NORMAL, submode=submode_mask_to_submode(NormalSubmodesMask.HPA_ON), ) - if op_code == OpCode.REQ_OS_HK: + if cmd_str == 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=SetId.ADC) ) ) - if op_code == OpCode.UPDATE_I_UPPER_LIMIT: + if cmd_str == OpCode.UPDATE_I_UPPER_LIMIT: q.add_log_cmd(Info.UPDATE_I_UPPER_LIMIT) print("Select device to update lower current limit for: ") param_id = dev_select_to_upper_i_update_param_id(dev_select_prompt(True)) @@ -300,7 +300,7 @@ def pack_pl_pcdu_commands( # noqa C901: Complexity is okay here. create_scalar_double_parameter(PL_PCDU_ID, 0, param_id, new_param_value) ) ) - if op_code == OpCode.UPDATE_V_LOWER_LIMIT: + if cmd_str == OpCode.UPDATE_V_LOWER_LIMIT: q.add_log_cmd(Info.UPDATE_V_LOWER_LIMIT) print("Select device to update lower voltage limit for: ") param_id = dev_select_to_lower_u_update_param_id(dev_select_prompt(False)) @@ -312,7 +312,7 @@ def pack_pl_pcdu_commands( # noqa C901: Complexity is okay here. create_scalar_double_parameter(PL_PCDU_ID, 0, param_id, new_param_value) ) ) - if op_code == OpCode.UPDATE_V_UPPER_LIMIT: + if cmd_str == OpCode.UPDATE_V_UPPER_LIMIT: q.add_log_cmd(Info.UPDATE_V_UPPER_LIMIT) print("Select device to update upper voltage limit for: ") param_id = dev_select_to_upper_u_update_param_id(dev_select_prompt(False)) @@ -324,9 +324,9 @@ def pack_pl_pcdu_commands( # noqa C901: Complexity is okay here. create_scalar_double_parameter(PL_PCDU_ID, 0, param_id, new_param_value) ) ) - if op_code == OpCode.SWITCH_HPA_ON_PROC: + if cmd_str == OpCode.SWITCH_HPA_ON_PROC: hpa_on_procedure(q) - if op_code == OpCode.INJECT_ALL_ON_FAILURE: + if cmd_str == OpCode.INJECT_ALL_ON_FAILURE: pack_failure_injection_cmd( q=q, param_id=ParamId.INJECT_ALL_ON_FAILURE, diff --git a/eive_tmtc/tmtc/payload/rad_sensor.py b/eive_tmtc/tmtc/payload/rad_sensor.py index a8a3e22..e0b5386 100644 --- a/eive_tmtc/tmtc/payload/rad_sensor.py +++ b/eive_tmtc/tmtc/payload/rad_sensor.py @@ -66,27 +66,27 @@ def add_rad_sens_cmds(defs: TmtcDefinitionWrapper): ) -def pack_rad_sensor_test_into( - object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str +def create_rad_sensor_cmd( + object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str ): q.add_log_cmd(f"Commanding Radiation sensor handler {object_id}") - if op_code in OpCode.ON: + if cmd_str in OpCode.ON: rad_sensor_mode_cmd(object_id, Mode.ON, Info.ON, q) - if op_code in OpCode.NORMAL: + if cmd_str in OpCode.NORMAL: rad_sensor_mode_cmd(object_id, Mode.NORMAL, Info.NORMAL, q) - if op_code in OpCode.OFF: + if cmd_str in OpCode.OFF: rad_sensor_mode_cmd(object_id, Mode.OFF, Info.OFF, q) - if op_code in OpCode.REQ_HK_ONCE: + if cmd_str 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=SetId.HK)) ) - if op_code in OpCode.DEBUG_ON: + if cmd_str in OpCode.DEBUG_ON: q.add_log_cmd(f"Rad sensor: {Info.DEBUG_ON}") 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 OpCode.DEBUG_OFF: + if cmd_str in OpCode.DEBUG_OFF: q.add_log_cmd(f"Rad sensor: {Info.DEBUG_OFF}") 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/tmtc/payload/scex.py b/eive_tmtc/tmtc/payload/scex.py index b06e09a..2b5a198 100644 --- a/eive_tmtc/tmtc/payload/scex.py +++ b/eive_tmtc/tmtc/payload/scex.py @@ -6,7 +6,7 @@ from spacepackets.ecss import PusTelecommand from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.config.tmtc import tmtc_definitions_provider from tmtccmd.pus.s200_fsfw_mode import Mode, pack_mode_data, Subservice -from tmtccmd.tmtc import service_provider +from tmtccmd.tmtc import DefaultPusQueueHelper, service_provider from tmtccmd.tmtc.decorator import ServiceProviderParams from tmtccmd.pus.s8_fsfw_action import create_action_cmd from tmtccmd.config import OpCodeEntry, TmtcDefinitionWrapper @@ -79,11 +79,8 @@ def add_scex_cmds(defs: TmtcDefinitionWrapper): ) -@service_provider(CustomServiceList.SCEX.value) -def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 - op_code = p.op_code - q = p.queue_helper - if op_code == OpCode.ON: +def pack_scex_cmds(q: DefaultPusQueueHelper, cmd_str: str): # noqa C901 + if cmd_str == OpCode.ON: q.add_log_cmd(Info.SWITCH_ON) q.add_pus_tc( PusTelecommand( @@ -92,7 +89,7 @@ def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.ON, 0), ) ) - if op_code == OpCode.NORMAL: + if cmd_str == OpCode.NORMAL: q.add_log_cmd(Info.NORMAL) q.add_pus_tc( PusTelecommand( @@ -101,7 +98,7 @@ def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.NORMAL, 0), ) ) - if op_code == OpCode.OFF: + if cmd_str == OpCode.OFF: q.add_log_cmd(Info.SWITCH_OFF) q.add_pus_tc( PusTelecommand( @@ -110,20 +107,20 @@ def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 app_data=pack_mode_data(SCEX_HANDLER_ID, Mode.OFF, 0), ) ) - if op_code == OpCode.PING: + if cmd_str == OpCode.PING: q.add_log_cmd(Info.PING) app_data = bytes([0]) q.add_pus_tc(create_action_cmd(SCEX_HANDLER_ID, ActionId.PING, app_data)) - if op_code == OpCode.ION_CMD: + if cmd_str == OpCode.ION_CMD: q.add_log_cmd(Info.ION_CMD) app_data = bytes([0]) q.add_pus_tc(create_action_cmd(SCEX_HANDLER_ID, ActionId.ION_CMD, app_data)) - if op_code == OpCode.TEMP_CMD: + if cmd_str == OpCode.TEMP_CMD: q.add_log_cmd(Info.TEMP_CMD) app_data = bytes([0]) q.add_pus_tc(create_action_cmd(SCEX_HANDLER_ID, ActionId.TEMP_CMD, app_data)) - if op_code == OpCode.EXP_STATUS_CMD: + if cmd_str == OpCode.EXP_STATUS_CMD: q.add_log_cmd(Info.EXP_STATUS_CMD) app_data = bytes([0]) q.add_pus_tc( @@ -131,7 +128,7 @@ def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 ) # one cell - if op_code == OpCode.ONE_CELLS_CMD: + if cmd_str == OpCode.ONE_CELLS_CMD: q.add_log_cmd(Info.ONE_CELLS_CMD) app_data = bytearray([0]) @@ -178,7 +175,7 @@ def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 create_action_cmd(SCEX_HANDLER_ID, ActionId.ONE_CELLS_CMD, app_data) ) - if op_code == OpCode.ALL_CELLS_CMD: + if cmd_str == OpCode.ALL_CELLS_CMD: q.add_log_cmd(Info.ALL_CELLS_CMD) app_data = bytearray([0]) @@ -210,7 +207,7 @@ def pack_scex_cmds(p: ServiceProviderParams): # noqa C901 create_action_cmd(SCEX_HANDLER_ID, ActionId.ALL_CELLS_CMD, app_data) ) - if op_code == OpCode.FRAM: + if cmd_str == OpCode.FRAM: q.add_log_cmd(Info.FRAM) app_data = bytes([0]) q.add_pus_tc(create_action_cmd(SCEX_HANDLER_ID, ActionId.FRAM, app_data)) diff --git a/eive_tmtc/tmtc/power/acu.py b/eive_tmtc/tmtc/power/acu.py index d285b4f..ecfda8c 100644 --- a/eive_tmtc/tmtc/power/acu.py +++ b/eive_tmtc/tmtc/power/acu.py @@ -63,11 +63,11 @@ def add_acu_cmds(defs: TmtcDefinitionWrapper): ) -def pack_acu_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str): +def pack_acu_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str): q.add_log_cmd("Handling ACU command") - pack_common_power_cmds("ACU", object_id, q, op_code) - pack_common_gomspace_cmds("ACU", object_id, q, op_code) - acu_req_hk_cmds(q, op_code) + pack_common_power_cmds("ACU", object_id, q, cmd_str) + pack_common_gomspace_cmds("ACU", object_id, q, cmd_str) + acu_req_hk_cmds(q, cmd_str) pack_test_cmds(object_id=object_id, q=q) diff --git a/eive_tmtc/tmtc/power/p60dock.py b/eive_tmtc/tmtc/power/p60dock.py index 714221f..0fe3d3f 100644 --- a/eive_tmtc/tmtc/power/p60dock.py +++ b/eive_tmtc/tmtc/power/p60dock.py @@ -27,15 +27,15 @@ from eive_tmtc.config.object_ids import P60_DOCK_HANDLER from tmtccmd.util import ObjectIdU32 -class P60OpCode: - STACK_3V3_ON = ["stack_3v3_on", "1"] - STACK_3V3_OFF = ["stack_3v3_off", "2"] - STACK_5V_ON = ["stack_5v_on", "3"] - STACK_5V_OFF = ["stack_5v_off", "4"] - TEST = ["test", "0"] +class CmdString: + STACK_3V3_ON = "stack_3v3_on" + STACK_3V3_OFF = "stack_3v3_off" + STACK_5V_ON = "stack_5v_on" + STACK_5V_OFF = "stack_5v_off" + TEST = "test" -class P60Info: +class CmdInfo: PREFIX = "P60 Dock" STACK_3V3_ON = f"{PREFIX}: Turn Stack 3V3 on" STACK_3V3_OFF = f"{PREFIX}: Turn Stack 3V3 off" @@ -99,14 +99,14 @@ class P60DockHkTable: def pack_p60dock_cmds( # noqa C901: Complexity okay here. - object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str + object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str ): objb = object_id.as_bytes - 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 P60OpCode.STACK_3V3_ON: - q.add_log_cmd(P60Info.STACK_3V3_ON) + pack_common_power_cmds("P60 Dock", object_id, q, cmd_str) + pack_common_gomspace_cmds("P60 Dock", object_id, q, cmd_str) + p60_dock_req_hk_cmds(q, cmd_str) + if cmd_str == CmdString.STACK_3V3_ON: + q.add_log_cmd(CmdInfo.STACK_3V3_ON) q.add_pus_tc( pack_set_u8_param_command( objb, @@ -114,8 +114,8 @@ def pack_p60dock_cmds( # noqa C901: Complexity okay here. Channel.on, ) ) - if op_code in P60OpCode.STACK_3V3_OFF: - q.add_log_cmd(P60Info.STACK_3V3_OFF) + if cmd_str == CmdString.STACK_3V3_OFF: + q.add_log_cmd(CmdInfo.STACK_3V3_OFF) q.add_pus_tc( pack_set_u8_param_command( objb, @@ -123,8 +123,8 @@ def pack_p60dock_cmds( # noqa C901: Complexity okay here. Channel.off, ) ) - if op_code in P60OpCode.STACK_5V_ON: - q.add_log_cmd(P60Info.STACK_5V_ON) + if cmd_str == CmdString.STACK_5V_ON: + q.add_log_cmd(CmdInfo.STACK_5V_ON) q.add_pus_tc( pack_set_u8_param_command( objb, @@ -132,8 +132,8 @@ def pack_p60dock_cmds( # noqa C901: Complexity okay here. Channel.on, ) ) - if op_code in P60OpCode.STACK_5V_OFF: - q.add_log_cmd(P60Info.STACK_5V_OFF) + if cmd_str == CmdString.STACK_5V_OFF: + q.add_log_cmd(CmdInfo.STACK_5V_OFF) q.add_pus_tc( pack_set_u8_param_command( objb, diff --git a/eive_tmtc/tmtc/power/pdu1.py b/eive_tmtc/tmtc/power/pdu1.py index 16bc2b3..fb3c627 100644 --- a/eive_tmtc/tmtc/power/pdu1.py +++ b/eive_tmtc/tmtc/power/pdu1.py @@ -75,13 +75,13 @@ class PDU1TestProcedure: turn_channel_3_off = False -def pack_pdu1_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str): +def pack_pdu1_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str): q.add_log_cmd("Commanding PDU1") objb = object_id.as_bytes - pdu1_switch_cmds(q, op_code) - pdu1_req_hk_cmds(q, op_code) - pack_common_power_cmds("PDU1", object_id, q, op_code) - pack_common_gomspace_cmds("PDU1", object_id, q, op_code) + pdu1_switch_cmds(q, cmd_str) + pdu1_req_hk_cmds(q, cmd_str) + pack_common_power_cmds("PDU1", object_id, q, cmd_str) + pack_common_gomspace_cmds("PDU1", object_id, q, cmd_str) if PDU1TestProcedure.all or PDU1TestProcedure.ping: q.add_log_cmd("PDU1: Ping Test") ping_data = bytearray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) @@ -111,39 +111,39 @@ def info_off_pdu1(base: str) -> str: def pdu1_switch_cmds( # noqa C901: Complexity is okay here. - q: DefaultPusQueueHelper, op_code: str + q: DefaultPusQueueHelper, cmd_str: str ): # noqa C901: Complexity okay here - if op_code in PowerOpCodes.TCS_ON: + if cmd_str in PowerOpCodes.TCS_ON: tcs_on_cmd(q) - elif op_code in PowerOpCodes.TCS_OFF: + elif cmd_str in PowerOpCodes.TCS_OFF: tcs_off_cmd(q) - elif op_code in PowerOpCodes.SYRLINKS_ON: + elif cmd_str in PowerOpCodes.SYRLINKS_ON: syrlinks_on_cmd(q) - elif op_code in PowerOpCodes.SYRLINKS_OFF: + elif cmd_str in PowerOpCodes.SYRLINKS_OFF: syrlinks_off_cmd(q) - elif op_code in PowerOpCodes.STAR_TRACKER_ON: + elif cmd_str in PowerOpCodes.STAR_TRACKER_ON: startracker_on_cmd(q) - elif op_code in PowerOpCodes.STAR_TRACKER_OFF: + elif cmd_str in PowerOpCodes.STAR_TRACKER_OFF: startracker_off_cmd(q) - elif op_code in PowerOpCodes.MGT_ON: + elif cmd_str in PowerOpCodes.MGT_ON: mgt_on_cmd(q) - elif op_code in PowerOpCodes.MGT_OFF: + elif cmd_str in PowerOpCodes.MGT_OFF: mgt_off_cmd(q) - elif op_code in PowerOpCodes.SUS_N_ON: + elif cmd_str in PowerOpCodes.SUS_N_ON: sun_sensor_nominal_on_cmd(q) - elif op_code in PowerOpCodes.SUS_N_OFF: + elif cmd_str in PowerOpCodes.SUS_N_OFF: sun_sensor_nominal_off_cmd(q) - elif op_code in PowerOpCodes.SCEX_ON: + elif cmd_str in PowerOpCodes.SCEX_ON: solar_cell_experiment_on_cmd(q) - elif op_code in PowerOpCodes.SCEX_OFF: + elif cmd_str in PowerOpCodes.SCEX_OFF: solar_cell_experiment_off_cmd(q) - elif op_code in PowerOpCodes.PLOC_ON: + elif cmd_str in PowerOpCodes.PLOC_ON: ploc_on_cmd(q) - elif op_code in PowerOpCodes.PLOC_OFF: + elif cmd_str in PowerOpCodes.PLOC_OFF: ploc_off_cmd(q) - elif op_code in PowerOpCodes.ACS_A_ON: + elif cmd_str in PowerOpCodes.ACS_A_ON: acs_board_a_on_cmd(q) - elif op_code in PowerOpCodes.ACS_A_OFF: + elif cmd_str in PowerOpCodes.ACS_A_OFF: acs_board_a_off_cmd(q) diff --git a/eive_tmtc/tmtc/power/pdu2.py b/eive_tmtc/tmtc/power/pdu2.py index 69c54e2..82aa898 100644 --- a/eive_tmtc/tmtc/power/pdu2.py +++ b/eive_tmtc/tmtc/power/pdu2.py @@ -88,13 +88,13 @@ class PDU2TestProcedure: request_hk_table = False -def pack_pdu2_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str): +def pack_pdu2_commands(object_id: ObjectIdU32, q: DefaultPusQueueHelper, cmd_str: str): q.add_log_cmd("Testing PDU2") objb = object_id.as_bytes - pdu2_switch_cmds(q, op_code) - pdu2_req_hk_cmds(q, op_code) - pack_common_power_cmds("PDU2", object_id, q, op_code) - pack_common_gomspace_cmds("PDU2", object_id, q, op_code) + pdu2_switch_cmds(q, cmd_str) + pdu2_req_hk_cmds(q, cmd_str) + pack_common_power_cmds("PDU2", object_id, q, cmd_str) + pack_common_gomspace_cmds("PDU2", object_id, q, cmd_str) if PDU2TestProcedure.all or PDU2TestProcedure.reboot: q.add_log_cmd("PDU2: Reboot") q.add_pus_tc(pack_reboot_command(object_id)) diff --git a/eive_tmtc/tmtc/power/power.py b/eive_tmtc/tmtc/power/power.py index 9a0643a..64ce23f 100644 --- a/eive_tmtc/tmtc/power/power.py +++ b/eive_tmtc/tmtc/power/power.py @@ -30,7 +30,7 @@ from eive_tmtc.tmtc.power.pdu2 import ( from tmtccmd.config import TmtcDefinitionWrapper, OpCodeEntry from eive_tmtc.config.object_ids import PCDU_HANDLER_ID -from eive_tmtc.tmtc.power.p60dock import P60OpCode, P60Info, p60_dock_req_hk_cmds +from eive_tmtc.tmtc.power.p60dock import CmdString, CmdInfo, p60_dock_req_hk_cmds from eive_tmtc.tmtc.power.acu import add_acu_cmds, acu_req_hk_cmds from tmtccmd.pus.tc.s3_fsfw_hk import ( create_request_one_diag_command, @@ -73,29 +73,29 @@ class PcduSwitches(enum.IntEnum): P60_DOCK_3V3_STACK = 19 -def pack_power_commands(q: DefaultPusQueueHelper, op_code: str): - pdu1_switch_cmds(q, op_code) - pdu2_switch_cmds(q, op_code) - if op_code in PowerOpCodes.SWITCHER_HK: +def pack_power_commands(q: DefaultPusQueueHelper, cmd_str: str): + pdu1_switch_cmds(q, cmd_str) + pdu2_switch_cmds(q, cmd_str) + if cmd_str in PowerOpCodes.SWITCHER_HK: q.add_log_cmd("Requesting switcher state HK") q.add_pus_tc( create_request_one_diag_command( make_sid(PCDU_HANDLER_ID, PcduSetIds.SWITCHER_SET) ) ) - if op_code in PowerOpCodes.INFO_CORE: + if cmd_str in PowerOpCodes.INFO_CORE: pdu1_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) pdu2_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) p60_dock_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) acu_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) q.add_wait_seconds(8.0) - elif op_code in PowerOpCodes.INFO_AUX: + elif cmd_str in PowerOpCodes.INFO_AUX: pdu1_req_hk_cmds(q, PowerOpCodes.REQUEST_AUX_HK_ONCE[0]) pdu2_req_hk_cmds(q, PowerOpCodes.REQUEST_AUX_HK_ONCE[0]) p60_dock_req_hk_cmds(q, PowerOpCodes.REQUEST_AUX_HK_ONCE[0]) acu_req_hk_cmds(q, PowerOpCodes.REQUEST_AUX_HK_ONCE[0]) q.add_wait_seconds(8.0) - elif op_code in PowerOpCodes.INFO_ALL: + elif cmd_str in PowerOpCodes.INFO_ALL: pdu1_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) pdu2_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) pdu1_req_hk_cmds(q, PowerOpCodes.REQUEST_AUX_HK_ONCE[0]) @@ -105,7 +105,7 @@ def pack_power_commands(q: DefaultPusQueueHelper, op_code: str): acu_req_hk_cmds(q, PowerOpCodes.REQUEST_CORE_HK_ONCE[0]) acu_req_hk_cmds(q, PowerOpCodes.REQUEST_AUX_HK_ONCE[0]) q.add_wait_seconds(8.0) - elif op_code in PowerOpCodes.RESET_ALL_GND_WDTS: + elif cmd_str in PowerOpCodes.RESET_ALL_GND_WDTS: oids = get_object_ids() pack_reset_gnd_wdt_cmd(q, "P60 Dock", oids[P60_DOCK_HANDLER]) pack_reset_gnd_wdt_cmd(q, "ACU", oids[ACU_HANDLER_ID]) @@ -114,19 +114,19 @@ def pack_power_commands(q: DefaultPusQueueHelper, op_code: str): q.add_wait_seconds(5.0) if q.empty(): logging.getLogger(__name__).info( - f"Queue is empty, no stack for op code {op_code}" + f"Queue is empty, no stack for op code {cmd_str}" ) @tmtc_definitions_provider def add_p60_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - 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) + oce.add(keys=CmdString.STACK_3V3_ON, info=CmdInfo.STACK_3V3_ON) + oce.add(keys=CmdString.STACK_3V3_OFF, info=CmdInfo.STACK_3V3_OFF) + oce.add(keys=CmdString.STACK_5V_ON, info=CmdInfo.STACK_5V_ON) + oce.add(keys=CmdString.STACK_5V_OFF, info=CmdInfo.STACK_5V_OFF) add_gomspace_cmd_defs(oce) - oce.add(keys=P60OpCode.TEST, info="P60 Tests") + oce.add(keys=CmdString.TEST, info="P60 Tests") defs.add_service( name=CustomServiceList.P60DOCK.value, info="P60 Device", op_code_entry=oce ) diff --git a/eive_tmtc/tmtc/tcs/ctrl.py b/eive_tmtc/tmtc/tcs/ctrl.py index 3c3b906..4f644f8 100644 --- a/eive_tmtc/tmtc/tcs/ctrl.py +++ b/eive_tmtc/tmtc/tcs/ctrl.py @@ -17,7 +17,7 @@ from tmtccmd.pus.tc.s3_fsfw_hk import ( ) -class OpCode: +class CmdStr: REQUEST_PRIMARY_TEMP_SET = "temp" ENABLE_TEMP_SET = "enable_temp_set" REQUEST_DEVICE_TEMP_SET = "temp_devs" @@ -26,7 +26,7 @@ class OpCode: REQUEST_TCS_CTRL_INFO = "tcs_ctrl_info" -class Info: +class CmdInfo: ENABLE_TEMP_SET = "Enable Primary Temperature Set" REQUEST_PRIMARY_TEMP_SET = "Request HK set of primary sensor temperatures" REQUEST_DEVICE_TEMP_SET = "Request HK set of device sensor temperatures" @@ -35,56 +35,56 @@ class Info: REQUEST_TCS_CTRL_INFO = "Request TCS controller information" -def pack_tcs_ctrl_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code == OpCode.REQUEST_PRIMARY_TEMP_SET: +def pack_tcs_ctrl_commands(q: DefaultPusQueueHelper, cmd_str: str): + if cmd_str == CmdStr.REQUEST_PRIMARY_TEMP_SET: sensor_set_sid = make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS) - q.add_log_cmd(Info.REQUEST_PRIMARY_TEMP_SET) + q.add_log_cmd(CmdInfo.REQUEST_PRIMARY_TEMP_SET) q.add_pus_tc(generate_one_hk_command(sensor_set_sid)) - if op_code == OpCode.REQUEST_DEVICE_TEMP_SET: - q.add_log_cmd(Info.REQUEST_DEVICE_TEMP_SET) + if cmd_str == CmdStr.REQUEST_DEVICE_TEMP_SET: + q.add_log_cmd(CmdInfo.REQUEST_DEVICE_TEMP_SET) q.add_pus_tc( generate_one_hk_command(make_sid(TCS_CONTROLLER, CtrlSetId.DEVICE_SENSORS)) ) - if op_code == OpCode.REQUEST_DEVICE_SUS_SET: - q.add_log_cmd(Info.REQUEST_DEVICE_SUS_SET) + if cmd_str == CmdStr.REQUEST_DEVICE_SUS_SET: + q.add_log_cmd(CmdInfo.REQUEST_DEVICE_SUS_SET) q.add_pus_tc( generate_one_hk_command( make_sid(TCS_CONTROLLER, CtrlSetId.SUS_TEMP_SENSORS) ) ) - if op_code == OpCode.REQUEST_HEATER_INFO: - q.add_log_cmd(Info.REQUEST_HEATER_INFO) + if cmd_str == CmdStr.REQUEST_HEATER_INFO: + q.add_log_cmd(CmdInfo.REQUEST_HEATER_INFO) q.add_pus_tc( create_request_one_diag_command( make_sid(TCS_CONTROLLER, CtrlSetId.HEATER_INFO) ) ) - if op_code == OpCode.REQUEST_TCS_CTRL_INFO: - q.add_log_cmd(Info.REQUEST_TCS_CTRL_INFO) + if cmd_str == CmdStr.REQUEST_TCS_CTRL_INFO: + q.add_log_cmd(CmdInfo.REQUEST_TCS_CTRL_INFO) q.add_pus_tc( create_request_one_hk_command( make_sid(TCS_CONTROLLER, CtrlSetId.TCS_CTRL_INFO) ) ) - if op_code == OpCode.ENABLE_TEMP_SET: + if cmd_str == CmdStr.ENABLE_TEMP_SET: interval_seconds = float(input("Please specify interval in seconds: ")) cmds = create_enable_periodic_hk_command_with_interval_with_diag( False, make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS), interval_seconds ) for cmd in cmds: q.add_pus_tc(cmd) - pack_tcs_ass_cmds(q, op_code) + pack_tcs_ass_cmds(q, cmd_str) @tmtc_definitions_provider def add_tcs_ctrl_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCode.ENABLE_TEMP_SET, info=Info.ENABLE_TEMP_SET) - 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) - oce.add(keys=OpCode.REQUEST_HEATER_INFO, info=Info.REQUEST_HEATER_INFO) - oce.add(keys=OpCode.REQUEST_TCS_CTRL_INFO, info=Info.REQUEST_TCS_CTRL_INFO) + oce.add(keys=CmdStr.ENABLE_TEMP_SET, info=CmdInfo.ENABLE_TEMP_SET) + oce.add(keys=CmdStr.REQUEST_PRIMARY_TEMP_SET, info=CmdInfo.REQUEST_PRIMARY_TEMP_SET) + oce.add(keys=CmdStr.REQUEST_DEVICE_TEMP_SET, info=CmdInfo.REQUEST_DEVICE_TEMP_SET) + oce.add(keys=CmdStr.REQUEST_DEVICE_SUS_SET, info=CmdInfo.REQUEST_DEVICE_SUS_SET) + oce.add(keys=CmdStr.REQUEST_HEATER_INFO, info=CmdInfo.REQUEST_HEATER_INFO) + oce.add(keys=CmdStr.REQUEST_TCS_CTRL_INFO, info=CmdInfo.REQUEST_TCS_CTRL_INFO) defs.add_service( name=CustomServiceList.TCS_CTRL, info="TCS controller", diff --git a/eive_tmtc/tmtc/tcs/heater.py b/eive_tmtc/tmtc/tcs/heater.py index dd6352a..0ce09ae 100644 --- a/eive_tmtc/tmtc/tcs/heater.py +++ b/eive_tmtc/tmtc/tcs/heater.py @@ -69,8 +69,8 @@ def add_heater_cmds(defs: TmtcDefinitionWrapper): ) -def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelper): - if op_code in OpCode.HEATER_CMD: +def pack_heater_cmds(object_id: bytes, cmd_str: str, q: DefaultPusQueueHelper): + if cmd_str in OpCode.HEATER_CMD: q.add_log_cmd("Heater Switching") heater_number = prompt_heater() while True: @@ -90,7 +90,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 OpCode.HEATER_EXT_CTRL: + if cmd_str in OpCode.HEATER_EXT_CTRL: heater_number = prompt_heater() obj_id = heater_idx_to_obj(heater_number) health_cmd( @@ -100,7 +100,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 OpCode.HEATER_FAULTY_CMD: + if cmd_str in OpCode.HEATER_FAULTY_CMD: heater_number = prompt_heater() obj_id = heater_idx_to_obj(heater_number) health_cmd( @@ -110,7 +110,7 @@ def pack_heater_cmds(object_id: bytearray, op_code: str, q: DefaultPusQueueHelpe health_str="Faulty", heater_idx=heater_number, ) - if op_code in OpCode.HEATER_HEALTHY_CMD: + if cmd_str in OpCode.HEATER_HEALTHY_CMD: heater_number = prompt_heater() obj_id = heater_idx_to_obj(heater_number) health_cmd( diff --git a/eive_tmtc/tmtc/tcs/rtd.py b/eive_tmtc/tmtc/tcs/rtd.py index fd3b727..5c24dea 100644 --- a/eive_tmtc/tmtc/tcs/rtd.py +++ b/eive_tmtc/tmtc/tcs/rtd.py @@ -81,14 +81,14 @@ class SetId(enum.IntEnum): TEMPERATURE = 1 -class OpCode: - ON = ["0", "on"] - OFF = ["1", "off"] - NORMAL = ["2", "normal"] - WRITE_CONFIG = ["3", "Write config"] +class CmdStr: + ON = "on" + OFF = "off" + NORMAL = "normal" + WRITE_CONFIG = "write_cfg" -class Info: +class CmdInfo: ON = "Switch handler on" OFF = "Switch handler off" NORMAL = "Switch handler normal" @@ -98,17 +98,17 @@ class Info: @tmtc_definitions_provider def specify_rtd_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(keys=OpCode.ON, info=Info.ON) - oce.add(keys=OpCode.NORMAL, info=Info.NORMAL) - oce.add(keys=OpCode.OFF, info=Info.OFF) - oce.add(keys=OpCode.WRITE_CONFIG, info=Info.WRITE_CONFIG) + oce.add(keys=CmdStr.ON, info=CmdInfo.ON) + oce.add(keys=CmdStr.NORMAL, info=CmdInfo.NORMAL) + oce.add(keys=CmdStr.OFF, info=CmdInfo.OFF) + oce.add(keys=CmdStr.WRITE_CONFIG, info=CmdInfo.WRITE_CONFIG) defs.add_service( name=CustomServiceList.RTD.value, info="RTD commands", op_code_entry=oce ) def pack_rtd_commands( - op_code: str, object_id: Optional[ObjectIdU32], q: DefaultPusQueueHelper + cmd_str: str, object_id: Optional[ObjectIdU32], q: DefaultPusQueueHelper ): if object_id is not None and object_id not in RTD_IDS: print("Specified object ID not a valid RTD ID") @@ -117,14 +117,14 @@ 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 OpCode.ON: + if cmd_str == CmdStr.ON: app_data = pack_mode_data(object_id=object_id.as_bytes, mode=Mode.ON, submode=0) q.add_pus_tc( PusTelecommand( service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=app_data ) ) - if op_code in OpCode.NORMAL: + if cmd_str == CmdStr.NORMAL: app_data = pack_mode_data( object_id=object_id.as_bytes, mode=Mode.NORMAL, submode=0 ) @@ -133,7 +133,7 @@ def pack_rtd_commands( service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=app_data ) ) - if op_code in OpCode.OFF: + if cmd_str == CmdStr.OFF: app_data = pack_mode_data( object_id=object_id.as_bytes, mode=Mode.OFF, submode=0 ) @@ -142,7 +142,7 @@ def pack_rtd_commands( service=200, subservice=Subservice.TC_MODE_COMMAND, app_data=app_data ) ) - if op_code in OpCode.WRITE_CONFIG: + if cmd_str in CmdStr.WRITE_CONFIG: command = object_id.as_bytes + struct.pack("!I", CommandId.WRITE_CONFIG) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command)) diff --git a/eive_tmtc/tmtc/tcs/subsystem.py b/eive_tmtc/tmtc/tcs/subsystem.py index 4ae5697..affa01d 100644 --- a/eive_tmtc/tmtc/tcs/subsystem.py +++ b/eive_tmtc/tmtc/tcs/subsystem.py @@ -23,17 +23,17 @@ class InfoSys: ANNOUNCE_MODES = "Announce Modes recursively" -def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code == OpCode.OFF: +def pack_tcs_sys_commands(q: DefaultPusQueueHelper, cmd_str: str): + if cmd_str == OpCode.OFF: q.add_log_cmd(InfoSys.OFF) pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.OFF, 0, q, InfoSys.OFF) - if op_code == OpCode.NML: + if cmd_str == OpCode.NML: q.add_log_cmd(InfoSys.NML) pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.NORMAL, 0, q, InfoSys.OFF) - if op_code == OpCode.ANNOUNCE_MODES: + if cmd_str == OpCode.ANNOUNCE_MODES: q.add_log_cmd(InfoSys.ANNOUNCE_MODES) q.add_pus_tc(create_announce_mode_recursive_command(TCS_SUBSYSTEM_ID)) - pack_tcs_ass_cmds(q, op_code) + pack_tcs_ass_cmds(q, cmd_str) @tmtc_definitions_provider diff --git a/eive_tmtc/tmtc/tcs/tmp1075.py b/eive_tmtc/tmtc/tcs/tmp1075.py index e7905bc..5b89251 100644 --- a/eive_tmtc/tmtc/tcs/tmp1075.py +++ b/eive_tmtc/tmtc/tcs/tmp1075.py @@ -23,14 +23,14 @@ from tmtccmd.pus.tc.s3_fsfw_hk import create_request_one_hk_command, make_sid from tmtccmd.util import ObjectIdU32 -class OpCode: +class CmdStr: OFF = "off" ON = "on" NML = "nml" HK = "hk" -class Info: +class CmdInfo: OFF = "Off" ON = "On" NML = "Normal" @@ -47,25 +47,25 @@ class SetId(enum.IntEnum): def pack_tmp1075_test_into( - object_id: ObjectIdU32, op_code: str, q: DefaultPusQueueHelper + object_id: ObjectIdU32, cmd_str: str, q: DefaultPusQueueHelper ): q.add_log_cmd( f"Testing Tmp1075 Temperature Sensor Handler with object id: {object_id}" ) obyt = object_id.as_bytes - if op_code == OpCode.OFF: + if cmd_str == CmdStr.OFF: q.add_log_cmd("TMP1075: Set Normal Off") mode_data = pack_mode_data(obyt, Mode.OFF, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) - if op_code == OpCode.NML: + if cmd_str == CmdStr.NML: q.add_log_cmd("TMP1075: Set Mode Normal") mode_data = pack_mode_data(obyt, Mode.NORMAL, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) - if op_code == OpCode.ON: + if cmd_str == CmdStr.ON: q.add_log_cmd("TMP1075: Set Mode On") mode_data = pack_mode_data(obyt, Mode.ON, 0) q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data)) - if op_code == OpCode.HK: + if cmd_str == CmdStr.HK: q.add_log_cmd("TMP1075: Request One-Shot HK") q.add_pus_tc(create_request_one_hk_command(make_sid(obyt, SetId.TEMPERATURE))) return q @@ -74,10 +74,10 @@ def pack_tmp1075_test_into( @tmtc_definitions_provider def add_tmp_sens_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() - oce.add(OpCode.OFF, Info.OFF) - oce.add(OpCode.ON, Info.ON) - oce.add(OpCode.NML, Info.NML) - oce.add(OpCode.HK, Info.HK) + oce.add(CmdStr.OFF, CmdInfo.OFF) + oce.add(CmdStr.ON, CmdInfo.ON) + oce.add(CmdStr.NML, CmdInfo.NML) + oce.add(CmdStr.HK, CmdInfo.HK) defs.add_service(CustomServiceList.TMP1075.value, "TMP1075 Temperature Sensor", oce) diff --git a/eive_tmtc/tmtc/time.py b/eive_tmtc/tmtc/time.py index fcb301e..23f9b90 100644 --- a/eive_tmtc/tmtc/time.py +++ b/eive_tmtc/tmtc/time.py @@ -2,16 +2,10 @@ import enum import logging from datetime import datetime -from eive_tmtc.config.definitions import CustomServiceList from spacepackets.ecss import PusTelecommand, PusService -from tmtccmd.config.tmtc import ( - tmtc_definitions_provider, - TmtcDefinitionWrapper, - OpCodeEntry, -) -from tmtccmd.tmtc import service_provider -from tmtccmd.tmtc.decorator import ServiceProviderParams +from tmtccmd.tmtc import DefaultPusQueueHelper +from tmtccmd.config import CmdTreeNode class Subservice(enum.IntEnum): @@ -19,9 +13,9 @@ class Subservice(enum.IntEnum): DUMP_TIME = 129 -class OpCode: - SET_CURRENT_TIME = ["set_curr_time"] - DUMP_TIME = ["dump_time"] +class CmdStr: + SET_CURRENT_TIME = "set_curr_time" + DUMP_TIME = "dump_time" class Info: @@ -29,11 +23,8 @@ class Info: DUMP_TIME = "Dump system time as event" -@service_provider(CustomServiceList.TIME.value) -def pack_set_current_time_ascii_command(p: ServiceProviderParams): - q = p.queue_helper - o = p.op_code - if o in OpCode.SET_CURRENT_TIME: +def pack_time_management_cmd(q: DefaultPusQueueHelper, cmd_str: str): + if cmd_str == CmdStr.SET_CURRENT_TIME: current_time = datetime.utcnow().isoformat() + "Z" + "\0" current_time_ascii = current_time.encode("ascii") logging.getLogger(__name__).info( @@ -47,7 +38,7 @@ def pack_set_current_time_ascii_command(p: ServiceProviderParams): app_data=current_time_ascii, ) ) - elif o in OpCode.DUMP_TIME: + elif cmd_str == CmdStr.DUMP_TIME: q.add_log_cmd(Info.DUMP_TIME) q.add_pus_tc( PusTelecommand( @@ -56,16 +47,8 @@ def pack_set_current_time_ascii_command(p: ServiceProviderParams): ) -@tmtc_definitions_provider -def add_time_cmds(defs: TmtcDefinitionWrapper): - oce = OpCodeEntry() - oce.add( - keys=OpCode.SET_CURRENT_TIME, - info=Info.SET_CURRENT_TIME, - ) - oce.add(keys=OpCode.DUMP_TIME, info=Info.DUMP_TIME) - defs.add_service( - name=CustomServiceList.TIME.value, - info="Time Service", - op_code_entry=oce, - ) +def return_time_node() -> CmdTreeNode: + time_node = CmdTreeNode("time", "Time Management") + time_node.add_child(CmdTreeNode(CmdStr.SET_CURRENT_TIME, "Set current time")) + time_node.add_child(CmdTreeNode(CmdStr.DUMP_TIME, "Dumpy current time")) + return time_node diff --git a/eive_tmtc/tmtc/wdt.py b/eive_tmtc/tmtc/wdt.py index abb4ee1..ac827ab 100644 --- a/eive_tmtc/tmtc/wdt.py +++ b/eive_tmtc/tmtc/wdt.py @@ -26,10 +26,10 @@ class ActionId(enum.IntEnum): DISABLE = 1 -def pack_wdt_commands(q: DefaultPusQueueHelper, op_code: str): - if op_code == OpCode.ENABLE: +def pack_wdt_commands(q: DefaultPusQueueHelper, cmd_str: str): + if cmd_str == OpCode.ENABLE: q.add_pus_tc(create_action_cmd(XIPHOS_WDT_ID, ActionId.ENABLE)) - if op_code == OpCode.DISABLE: + if cmd_str == OpCode.DISABLE: q.add_pus_tc(create_action_cmd(XIPHOS_WDT_ID, ActionId.DISABLE)) diff --git a/pyproject.toml b/pyproject.toml index b9017d4..3bb074a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,9 +29,9 @@ classifiers = [ "Topic :: Scientific/Engineering" ] dependencies = [ - "tmtccmd ~= 7.0", + # "tmtccmd ~= 8.0.0rc0", + "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main", "python-dateutil ~= 2.8", - # "tmtccmd @ git+https://github.com/robamu-org/tmtccmd@main" ] [project.urls]