various fixes for ACS subsystem
All checks were successful
EIVE/-/pipeline/head This commit looks good

This commit is contained in:
Robin Müller 2024-01-25 10:22:04 +01:00
parent 202a824d31
commit 3d007c32a3
Signed by: muellerr
GPG Key ID: A649FB78196E3849
4 changed files with 32 additions and 29 deletions

View File

@ -32,7 +32,7 @@ from eive_tmtc.config.object_ids import (
TMP1075_HANDLER_TCS_BRD_1_ID, TMP1075_HANDLER_TCS_BRD_1_ID,
get_object_ids, get_object_ids,
) )
from eive_tmtc.tmtc.acs.acs_board import pack_acs_command from eive_tmtc.tmtc.acs.acs_board import pack_acs_board_command
from eive_tmtc.tmtc.acs.acs_ctrl import pack_acs_ctrl_command from eive_tmtc.tmtc.acs.acs_ctrl import pack_acs_ctrl_command
from eive_tmtc.tmtc.acs.gps import pack_gps_command from eive_tmtc.tmtc.acs.gps import pack_gps_command
from eive_tmtc.tmtc.acs.gyros import handle_gyr_cmd from eive_tmtc.tmtc.acs.gyros import handle_gyr_cmd
@ -44,6 +44,7 @@ from eive_tmtc.tmtc.acs.reaction_wheels import (
) )
from eive_tmtc.tmtc.acs.star_tracker import pack_star_tracker_commands from eive_tmtc.tmtc.acs.star_tracker import pack_star_tracker_commands
from eive_tmtc.tmtc.acs.str_img_helper import pack_str_img_helper_command from eive_tmtc.tmtc.acs.str_img_helper import pack_str_img_helper_command
from eive_tmtc.tmtc.acs.subsystem import build_acs_subsystem_cmd
from eive_tmtc.tmtc.com.ccsds_handler import pack_ccsds_handler_command from eive_tmtc.tmtc.com.ccsds_handler import pack_ccsds_handler_command
from eive_tmtc.tmtc.com.pdec_handler import pack_pdec_handler_commands from eive_tmtc.tmtc.com.pdec_handler import pack_pdec_handler_commands
from eive_tmtc.tmtc.com.subsystem import build_com_subsystem_procedure from eive_tmtc.tmtc.com.subsystem import build_com_subsystem_procedure
@ -182,7 +183,7 @@ def handle_tcs_procedure(queue_helper: DefaultPusQueueHelper, cmd_path_list: Lis
def handle_acs_procedure(queue_helper: DefaultPusQueueHelper, cmd_path_list: List[str]): def handle_acs_procedure(queue_helper: DefaultPusQueueHelper, cmd_path_list: List[str]):
obj_id_man = get_object_ids() obj_id_man = get_object_ids()
if len(cmd_path_list) == 1: if len(cmd_path_list) == 1:
return pack_acs_command(q=queue_helper, cmd_str=cmd_path_list[0]) return build_acs_subsystem_cmd(queue_helper, cmd_path_list[0])
assert len(cmd_path_list) >= 2 assert len(cmd_path_list) >= 2
if cmd_path_list[0] == "mgt": if cmd_path_list[0] == "mgt":
object_id = cast(ObjectIdU32, obj_id_man.get(IMTQ_HANDLER_ID)) object_id = cast(ObjectIdU32, obj_id_man.get(IMTQ_HANDLER_ID))
@ -228,7 +229,9 @@ def handle_acs_procedure(queue_helper: DefaultPusQueueHelper, cmd_path_list: Lis
object_id=oids.GPS_CONTROLLER, q=queue_helper, cmd_str=cmd_path_list[1] object_id=oids.GPS_CONTROLLER, q=queue_helper, cmd_str=cmd_path_list[1]
) )
if cmd_path_list[0] == "acs_brd_assy": if cmd_path_list[0] == "acs_brd_assy":
assert len(cmd_path_list) >= 3 if len(cmd_path_list) == 2:
return pack_acs_board_command(q=queue_helper, cmd_str=cmd_path_list[1])
else:
if cmd_path_list[1] == "mgm_devs": if cmd_path_list[1] == "mgm_devs":
return handle_mgm_cmd(q=queue_helper, cmd_str=cmd_path_list[2]) return handle_mgm_cmd(q=queue_helper, cmd_str=cmd_path_list[2])
if cmd_path_list[1] == "gyro_devs": if cmd_path_list[1] == "gyro_devs":

View File

@ -34,7 +34,7 @@ from eive_tmtc.pus_tc.system.controllers import (
pack_cmd_ctrl_to_off, pack_cmd_ctrl_to_off,
pack_cmd_ctrl_to_nml, pack_cmd_ctrl_to_nml,
) )
from eive_tmtc.tmtc.acs.acs_board import pack_acs_command from eive_tmtc.tmtc.acs.acs_board import pack_acs_board_command
from eive_tmtc.tmtc.acs.sus_board import pack_sus_cmds from eive_tmtc.tmtc.acs.sus_board import pack_sus_cmds
from eive_tmtc.tmtc.acs.imtq import create_imtq_command, 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.star_tracker import pack_star_tracker_commands
@ -337,7 +337,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
] ]
d_side_pairs = a_side_pairs + b_side_pairs d_side_pairs = a_side_pairs + b_side_pairs
diag_list = [False, False, True, False, False] diag_list = [False, False, True, False, False]
pack_acs_command(q=q, cmd_str="acs-a") pack_acs_board_command(q=q, cmd_str="acs-a")
for a_side_dev in a_side_pairs: for a_side_dev in a_side_pairs:
oid = a_side_dev[0] oid = a_side_dev[0]
@ -351,9 +351,9 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
cfg=GenericHkListeningCfg.default(), cfg=GenericHkListeningCfg.default(),
) )
pack_acs_command(q=q, cmd_str="acs-off") pack_acs_board_command(q=q, cmd_str="acs-off")
q.add_wait_seconds(5.0) q.add_wait_seconds(5.0)
pack_acs_command(q=q, cmd_str="acs-b") pack_acs_board_command(q=q, cmd_str="acs-b")
sid_list.clear() sid_list.clear()
diag_list = [False, False, True, False, False] diag_list = [False, False, True, False, False]
@ -370,9 +370,9 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
cfg=GenericHkListeningCfg.default(), cfg=GenericHkListeningCfg.default(),
) )
pack_acs_command(q=q, cmd_str="acs-off") pack_acs_board_command(q=q, cmd_str="acs-off")
q.add_wait_seconds(5.0) q.add_wait_seconds(5.0)
pack_acs_command(q=q, cmd_str="acs-d") pack_acs_board_command(q=q, cmd_str="acs-d")
sid_list.clear() sid_list.clear()
@ -400,7 +400,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
cfg=GenericHkListeningCfg.default(), cfg=GenericHkListeningCfg.default(),
) )
pack_acs_command(q=q, cmd_str="acs-off") pack_acs_board_command(q=q, cmd_str="acs-off")
if op_code in OpCode.MGT_FT: if op_code in OpCode.MGT_FT:
key = KAI.MGT_FT[0] key = KAI.MGT_FT[0]
@ -472,7 +472,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
True, True,
True, True,
] ]
pack_acs_command(q=q, cmd_str="acs-d") pack_acs_board_command(q=q, cmd_str="acs-d")
# Command MGT to mode on # Command MGT to mode on
create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="1") create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="1")
q.add_wait_seconds(20.0) q.add_wait_seconds(20.0)
@ -495,7 +495,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
) )
create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="0") create_imtq_command(oids.IMTQ_HANDLER_ID, q=q, cmd_str="0")
pack_acs_command(q=q, cmd_str="acs-off") pack_acs_board_command(q=q, cmd_str="acs-off")
if op_code in OpCode.SUS_FT: if op_code in OpCode.SUS_FT:
key = KAI.SUS_FT[0] key = KAI.SUS_FT[0]
@ -538,7 +538,7 @@ def pack_proc_commands( # noqa C901: Complexity is okay here.
cfg=GenericHkListeningCfg.default(), cfg=GenericHkListeningCfg.default(),
) )
pack_acs_command(q=q, cmd_str="sus-off") pack_acs_board_command(q=q, cmd_str="sus-off")
q.add_wait_seconds(5.0) q.add_wait_seconds(5.0)
pack_sus_cmds(q=q, op_code="sus-red") 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(), cfg=GenericHkListeningCfg.default(),
) )
pack_acs_command(q=q, cmd_str="sus-off") pack_acs_board_command(q=q, cmd_str="sus-off")
q.add_wait_seconds(5.0) q.add_wait_seconds(5.0)
pack_sus_cmds(q=q, op_code="sus-d") 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(), cfg=GenericHkListeningCfg.default(),
) )
pack_acs_command(q=q, cmd_str="sus-off") pack_acs_board_command(q=q, cmd_str="sus-off")
if op_code in OpCode.SYRLINKS_FT: if op_code in OpCode.SYRLINKS_FT:
key = KAI.SYRLINKS_FT[0] key = KAI.SYRLINKS_FT[0]

View File

@ -30,7 +30,7 @@ class DualSideSubmode(enum.IntEnum):
DUAL_SIDE = 2 DUAL_SIDE = 2
def pack_acs_command(q: DefaultPusQueueHelper, cmd_str: str): def pack_acs_board_command(q: DefaultPusQueueHelper, cmd_str: str):
if cmd_str in AcsOpCodes.ACS_ASS_A_SIDE: if cmd_str in AcsOpCodes.ACS_ASS_A_SIDE:
pack_mode_cmd_with_info( pack_mode_cmd_with_info(
object_id=ACS_BOARD_ASS_ID, object_id=ACS_BOARD_ASS_ID,
@ -93,43 +93,43 @@ def create_acs_board_node() -> CmdTreeNode:
node = CmdTreeNode("acs_brd", "ACS Board", hide_children_which_are_leaves=True) node = CmdTreeNode("acs_brd", "ACS Board", hide_children_which_are_leaves=True)
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_A_SIDE[0], AcsOpCodes.ACS_ASS_A_SIDE[1],
"Switch to ACS board A side", "Switch to ACS board A side",
) )
) )
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_B_SIDE[0], AcsOpCodes.ACS_ASS_B_SIDE[1],
"Switch to ACS board B side", "Switch to ACS board B side",
) )
) )
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_DUAL_MODE[0], AcsOpCodes.ACS_ASS_DUAL_MODE[1],
"Switch to ACS board dual mode", "Switch to ACS board dual mode",
) )
) )
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_A_ON[0], AcsOpCodes.ACS_ASS_A_ON[1],
"Switch ACS board A side on", "Switch ACS board A side on",
) )
) )
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_B_ON[0], AcsOpCodes.ACS_ASS_B_ON[1],
"Switch ACS board B side on", "Switch ACS board B side on",
) )
) )
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_DUAL_ON[0], AcsOpCodes.ACS_ASS_DUAL_ON[1],
"Switch ACS board dual mode on", "Switch ACS board dual mode on",
) )
) )
node.add_child( node.add_child(
CmdTreeNode( CmdTreeNode(
AcsOpCodes.ACS_ASS_OFF[0], AcsOpCodes.ACS_ASS_OFF[1],
"Switch off ACS board", "Switch off ACS board",
) )
) )

View File

@ -171,7 +171,7 @@ if PERFORM_MGM_CALIBRATION:
def create_acs_ctrl_node() -> CmdTreeNode: def create_acs_ctrl_node() -> CmdTreeNode:
# Zip the two classes together into a dictionary # Zip the two classes together into a dictionary
op_code_strs = [ op_code_strs = [
getattr(OpCodes, key)[0] for key in dir(OpCodes) if not key.startswith("__") getattr(OpCodes, key) for key in dir(OpCodes) if not key.startswith("__")
] ]
info_strs = [getattr(Info, key) for key in dir(OpCodes) if not key.startswith("__")] info_strs = [getattr(Info, key) for key in dir(OpCodes) if not key.startswith("__")]
combined_dict = dict(zip(op_code_strs, info_strs)) combined_dict = dict(zip(op_code_strs, info_strs))