OOF
This commit is contained in:
parent
07b13c153d
commit
b3920524ab
@ -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__)
|
||||
|
@ -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):
|
||||
|
@ -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}"
|
||||
)
|
||||
|
@ -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(
|
||||
|
@ -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 (
|
||||
|
@ -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,
|
||||
|
@ -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):
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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"
|
||||
)
|
||||
|
||||
|
||||
|
@ -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(
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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()
|
||||
)
|
||||
|
@ -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(
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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"
|
||||
)
|
||||
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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",
|
||||
|
@ -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(
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
||||
|
||||
|
@ -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]
|
||||
|
Loading…
x
Reference in New Issue
Block a user