From 7898dc2c16841d09962e31ce3a6479ab005b7198 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 14 Mar 2022 10:03:50 +0100 Subject: [PATCH] added commands to request HKs from GOmSpace devices --- gomspace/gomspace_common.py | 11 ++++++++++- pus_tc/cmd_definitions.py | 37 +++++++++++++++++++++++-------------- pus_tc/devs/p60dock.py | 7 +++++++ pus_tc/devs/pdu1.py | 35 +++++++++++++---------------------- pus_tc/devs/pdu2.py | 7 +++++++ pus_tc/system/acs.py | 24 ++++++++++++++++++------ pus_tc/system/core.py | 2 +- pus_tm/hk_handling.py | 2 +- 8 files changed, 80 insertions(+), 45 deletions(-) diff --git a/gomspace/gomspace_common.py b/gomspace/gomspace_common.py index 38242c9..54d80bf 100644 --- a/gomspace/gomspace_common.py +++ b/gomspace/gomspace_common.py @@ -23,7 +23,16 @@ class GomspaceDeviceActionIds(enum.IntEnum): class GomspaceOpCodes(enum.Enum): - PRINT_SWITCH_V_I = "32" + # Request HK + REQUEST_HK_ONCE = "128" + PRINT_SWITCH_V_I = "129" + + +class SetIds: + PDU_1 = 0x01 + PDU_2 = 0x02 + P60_DOCK = 0x03 + ACU = 0x04 class TableIds: diff --git a/pus_tc/cmd_definitions.py b/pus_tc/cmd_definitions.py index 40a0ec8..21019a9 100644 --- a/pus_tc/cmd_definitions.py +++ b/pus_tc/cmd_definitions.py @@ -187,6 +187,11 @@ def add_pcdu_cmds(cmd_dict: ServiceOpCodeDictT): keys=P60OpCodes.STACK_5V_OFF.value, info="P60 Dock: Turn stack 5V off", ) + add_op_code_entry( + op_code_dict=op_code_dict, + keys=GomspaceOpCodes.REQUEST_HK_ONCE.value, + info="P60 Dock: Request HK once", + ) add_op_code_entry( op_code_dict=op_code_dict, keys=GomspaceOpCodes.PRINT_SWITCH_V_I.value, @@ -272,15 +277,17 @@ def add_pcdu_cmds(cmd_dict: ServiceOpCodeDictT): ) add_op_code_entry( op_code_dict=op_code_dict, - keys=Pdu1OpCodes.REQUEST_HK_ONCE.value, - info="PDU1: Request HK once" + keys=GomspaceOpCodes.REQUEST_HK_ONCE.value, + info="PDU1: Request HK once", ) add_op_code_entry( op_code_dict=op_code_dict, keys=GomspaceOpCodes.PRINT_SWITCH_V_I.value, info="PDU1: Print Switches, Voltages, Currents", ) - add_op_code_entry(op_code_dict=op_code_dict, keys=Pdu1OpCodes.TESTS.value, info="PDU1 Tests") + add_op_code_entry( + op_code_dict=op_code_dict, keys=Pdu1OpCodes.TESTS.value, info="PDU1 Tests" + ) add_service_op_code_entry( srv_op_code_dict=cmd_dict, name=CustomServiceList.PDU1.value, @@ -333,9 +340,8 @@ def add_pcdu_cmds(cmd_dict: ServiceOpCodeDictT): ) add_op_code_entry( op_code_dict=op_code_dict, - keys=Pdu2OpCodes.Q7S_OFF.value, - info="Q7S Off", - options={OpCodeDictKeys.TIMEOUT: 2.0}, + keys=GomspaceOpCodes.REQUEST_HK_ONCE.value, + info="PDU2: Request HK once", ) add_op_code_entry( op_code_dict=op_code_dict, @@ -525,49 +531,52 @@ def add_ploc_cmds(cmd_dict: ServiceOpCodeDictT): def add_system_cmds(cmd_dict: ServiceOpCodeDictT): from pus_tc.system.acs import AcsOpCodes - default_opts = generate_op_code_options(enter_listener_mode=False, custom_timeout=8.0) + + default_opts = generate_op_code_options( + enter_listener_mode=False, custom_timeout=8.0 + ) op_code_dict = dict() add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_A_SIDE, info="Switch to ACS board A side", - options=default_opts + options=default_opts, ) add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_B_SIDE, info="Switch to ACS board B side", - options=default_opts + options=default_opts, ) add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_DUAL_MODE, info="Switch to ACS board dual mode", - options=default_opts + options=default_opts, ) add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_A_ON, info="Switch ACS board A side on", - options=default_opts + options=default_opts, ) add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_B_ON, info="Switch ACS board B side on", - options=default_opts + options=default_opts, ) add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_DUAL_ON, info="Switch ACS board dual mode on", - options=default_opts + options=default_opts, ) add_op_code_entry( op_code_dict=op_code_dict, keys=AcsOpCodes.ACS_ASS_OFF, info="Switch off ACS board", - options=default_opts + options=default_opts, ) add_service_op_code_entry( srv_op_code_dict=cmd_dict, diff --git a/pus_tc/devs/p60dock.py b/pus_tc/devs/p60dock.py index d4ccdca..1d48504 100644 --- a/pus_tc/devs/p60dock.py +++ b/pus_tc/devs/p60dock.py @@ -7,7 +7,9 @@ """ from tmtccmd.config.definitions import QueueCommands from tmtccmd.tc.packer import TcQueueT +from tmtccmd.tc.service_3_housekeeping import generate_one_hk_command, make_sid from gomspace.gomspace_common import * +from config.object_ids import P60_DOCK_HANDLER class P60OpCodes(enum.Enum): @@ -110,6 +112,11 @@ def pack_p60dock_test_into(object_id: bytearray, tc_queue: TcQueueT, op_code: st Channel.off, ) tc_queue.appendleft(command.pack_command_tuple()) + if op_code == GomspaceOpCodes.REQUEST_HK_ONCE.value: + tc_queue.appendleft((QueueCommands.PRINT, "P60 Dock: Requesting HK Table Once")) + hk_sid = make_sid(object_id=P60_DOCK_HANDLER, set_id=SetIds.P60_DOCK) + command = generate_one_hk_command(sid=hk_sid, ssc=0) + tc_queue.appendleft(command.pack_command_tuple()) if op_code == GomspaceOpCodes.PRINT_SWITCH_V_I.value: tc_queue.appendleft( (QueueCommands.PRINT, "P60 Dock: Print Switches, Voltages, Currents") diff --git a/pus_tc/devs/pdu1.py b/pus_tc/devs/pdu1.py index 121ecf7..02026c6 100644 --- a/pus_tc/devs/pdu1.py +++ b/pus_tc/devs/pdu1.py @@ -28,18 +28,9 @@ class Pdu1OpCodes(enum.Enum): SCEX_ON = "12" SCEX_OFF = "13" - # Request HK - REQUEST_HK_ONCE = "16" TESTS = "32" -class SetIds: - PDU_1 = 0x01 - PDU_2 = 0x02 - P60_DOCK = 0x03 - ACU = 0x04 - - class PDU1TestProcedure: """ @brief Use this class to define the tests to perform for the PDU2. @@ -163,19 +154,6 @@ def pack_pdu1_commands(object_id: bytearray, tc_queue: TcQueueT, op_code: str): Channel.off, ) tc_queue.appendleft(command.pack_command_tuple()) - if op_code == Pdu1OpCodes.REQUEST_HK_ONCE.value: - tc_queue.appendleft((QueueCommands.PRINT, "PDU1: Requesting HK Table Once")) - hk_sid = make_sid(object_id=PDU_1_HANDLER_ID, set_id=SetIds.PDU_1) - command = generate_one_hk_command(sid=hk_sid, ssc=0) - tc_queue.appendleft(command.pack_command_tuple()) - if op_code == GomspaceOpCodes.PRINT_SWITCH_V_I.value: - tc_queue.appendleft( - (QueueCommands.PRINT, "PDU1: Print Switches, Voltages, Currents") - ) - command = generate_action_command( - object_id=object_id, action_id=GomspaceDeviceActionIds.PRINT_SWITCH_V_I - ) - tc_queue.appendleft(command.pack_command_tuple()) if op_code == Pdu1OpCodes.SYRLINKS_ON.value: tc_queue.appendleft((QueueCommands.PRINT, "PDU1: Turn Syrlinks on")) command = pack_set_param_command( @@ -212,6 +190,19 @@ def pack_pdu1_commands(object_id: bytearray, tc_queue: TcQueueT, op_code: str): Channel.off, ) tc_queue.appendleft(command.pack_command_tuple()) + if op_code == GomspaceOpCodes.REQUEST_HK_ONCE.value: + tc_queue.appendleft((QueueCommands.PRINT, "PDU1: Requesting HK Table Once")) + hk_sid = make_sid(object_id=PDU_1_HANDLER_ID, set_id=SetIds.PDU_1) + command = generate_one_hk_command(sid=hk_sid, ssc=0) + tc_queue.appendleft(command.pack_command_tuple()) + if op_code == GomspaceOpCodes.PRINT_SWITCH_V_I.value: + tc_queue.appendleft( + (QueueCommands.PRINT, "PDU1: Print Switches, Voltages, Currents") + ) + command = generate_action_command( + object_id=object_id, action_id=GomspaceDeviceActionIds.PRINT_SWITCH_V_I + ) + tc_queue.appendleft(command.pack_command_tuple()) if PDU1TestProcedure.all or PDU1TestProcedure.ping: tc_queue.appendleft((QueueCommands.PRINT, "PDU1: Ping Test")) ping_data = bytearray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) diff --git a/pus_tc/devs/pdu2.py b/pus_tc/devs/pdu2.py index 6b2b83c..d2619c3 100644 --- a/pus_tc/devs/pdu2.py +++ b/pus_tc/devs/pdu2.py @@ -8,8 +8,10 @@ """ from tmtccmd.config.definitions import QueueCommands from tmtccmd.tc.packer import TcQueueT +from tmtccmd.tc.service_3_housekeeping import generate_one_hk_command, make_sid from gomspace.gomspace_common import * from gomspace.gomspace_pdu_definitions import * +from config.object_ids import PDU_2_HANDLER_ID class Pdu2OpCodes(enum.Enum): @@ -118,6 +120,11 @@ def pack_pdu2_commands(object_id: bytearray, tc_queue: TcQueueT, op_code: str): Channel.off, ) tc_queue.appendleft(command.pack_command_tuple()) + if op_code == GomspaceOpCodes.REQUEST_HK_ONCE.value: + tc_queue.appendleft((QueueCommands.PRINT, "PDU2: Requesting HK Table Once")) + hk_sid = make_sid(object_id=PDU_2_HANDLER_ID, set_id=SetIds.PDU_2) + command = generate_one_hk_command(sid=hk_sid, ssc=0) + tc_queue.appendleft(command.pack_command_tuple()) if op_code == GomspaceOpCodes.PRINT_SWITCH_V_I.value: tc_queue.appendleft( (QueueCommands.PRINT, "PDU2: Print Switches, Currents, Voltahes") diff --git a/pus_tc/system/acs.py b/pus_tc/system/acs.py index 8b8cc6d..3b97caf 100644 --- a/pus_tc/system/acs.py +++ b/pus_tc/system/acs.py @@ -26,32 +26,44 @@ def pack_acs_command(tc_queue: TcQueueT, op_code: str): tc_queue.appendleft( (QueueCommands.PRINT, "Switching to ACS board assembly A side") ) - command_acs_board(mode=Modes.NORMAL, submode=AcsBoardSubmodes.A_SIDE, tc_queue=tc_queue) + command_acs_board( + mode=Modes.NORMAL, submode=AcsBoardSubmodes.A_SIDE, tc_queue=tc_queue + ) if op_code in AcsOpCodes.ACS_ASS_B_SIDE: tc_queue.appendleft( (QueueCommands.PRINT, "Switching to ACS board assembly B side") ) - command_acs_board(mode=Modes.NORMAL, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue) + command_acs_board( + mode=Modes.NORMAL, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue + ) if op_code in AcsOpCodes.ACS_ASS_DUAL_MODE: tc_queue.appendleft( (QueueCommands.PRINT, "Switching to ACS board assembly dual mode") ) - command_acs_board(mode=Modes.NORMAL, submode=AcsBoardSubmodes.DUAL_SIDE, tc_queue=tc_queue) + command_acs_board( + mode=Modes.NORMAL, submode=AcsBoardSubmodes.DUAL_SIDE, tc_queue=tc_queue + ) if op_code in AcsOpCodes.ACS_ASS_A_ON: tc_queue.appendleft( (QueueCommands.PRINT, "Switching ACS board assembly A side on") ) - command_acs_board(mode=Modes.ON, submode=AcsBoardSubmodes.A_SIDE, tc_queue=tc_queue) + command_acs_board( + mode=Modes.ON, submode=AcsBoardSubmodes.A_SIDE, tc_queue=tc_queue + ) if op_code in AcsOpCodes.ACS_ASS_B_ON: tc_queue.appendleft( (QueueCommands.PRINT, "Switching ACS board assembly B side on") ) - command_acs_board(mode=Modes.ON, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue) + command_acs_board( + mode=Modes.ON, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue + ) if op_code in AcsOpCodes.ACS_ASS_DUAL_ON: tc_queue.appendleft( (QueueCommands.PRINT, "Switching ACS board assembly dual side on") ) - command_acs_board(mode=Modes.ON, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue) + command_acs_board( + mode=Modes.ON, submode=AcsBoardSubmodes.B_SIDE, tc_queue=tc_queue + ) if op_code in AcsOpCodes.ACS_ASS_OFF: tc_queue.appendleft( (QueueCommands.PRINT, "Switching to ACS board assembly off") diff --git a/pus_tc/system/core.py b/pus_tc/system/core.py index f98742c..61103f9 100644 --- a/pus_tc/system/core.py +++ b/pus_tc/system/core.py @@ -23,7 +23,7 @@ class ActionIds(enum.IntEnum): class SetIds(enum.IntEnum): - HK = 5 + HK = 5 class OpCodes: diff --git a/pus_tm/hk_handling.py b/pus_tm/hk_handling.py index aab0366..6e23ac0 100644 --- a/pus_tm/hk_handling.py +++ b/pus_tm/hk_handling.py @@ -15,7 +15,7 @@ from config.object_ids import ( GPS_HANDLER_0_ID, GPS_HANDLER_1_ID, BPX_HANDLER_ID, - CORE_CONTROLLER_ID + CORE_CONTROLLER_ID, ) LOGGER = get_console_logger()