TV test procedures #83

Merged
muellerr merged 17 commits from kranz/master into develop 2022-05-24 17:24:39 +02:00
Showing only changes of commit b8e61b38b0 - Show all commits

View File

@ -1,6 +1,7 @@
from tmtccmd.config import QueueCommands from tmtccmd.config import QueueCommands
from tmtccmd.tc.definitions import TcQueueT from tmtccmd.tc.definitions import TcQueueT
from tmtccmd.tc.pus_3_fsfw_hk import * from tmtccmd.tc.pus_3_fsfw_hk import *
"""
from config.object_ids import ( from config.object_ids import (
BPX_HANDLER_ID, BPX_HANDLER_ID,
P60_DOCK_HANDLER, P60_DOCK_HANDLER,
@ -9,10 +10,14 @@ from config.object_ids import (
ACU_HANDLER_ID, ACU_HANDLER_ID,
CORE_CONTROLLER_ID, CORE_CONTROLLER_ID,
) )
"""
import config.object_ids as oids import config.object_ids as oids
from pus_tc.devs.bpx_batt import BpxSetIds from pus_tc.devs.bpx_batt import BpxSetIds
from pus_tc.system.core import SetIds as CoreSetIds from pus_tc.system.core import SetIds as CoreSetIds
from gomspace.gomspace_common import SetIds as GsSetIds from gomspace.gomspace_common import SetIds as GsSetIds
from pus_tc.devs.rad_sensor import CommandIds as RadSetIds
from pus_tc.system.tcs import pack_tcs_sys_commands
from pus_tc.system.controllers import pack_controller_commands
class OpCodes: class OpCodes:
@ -20,56 +25,57 @@ class OpCodes:
BAT_FT = ["bat-ft"] BAT_FT = ["bat-ft"]
CORE_FT = ["core-ft"] CORE_FT = ["core-ft"]
PCDU_FT = ["pcdu-ft"] PCDU_FT = ["pcdu-ft"]
RAD_SEN_FT = ["rad-sen-ft"]
TCS_FT = ["tcs-ft-on"]
class KeyAndInfo: class KeyAndInfo:
HEATER = ["Heater", "heater procedure"] HEATER = ["Heater", "heater procedure"]
BAT_FT = ["BPX Battery", "battery functional test"] BAT_FT = ["BPX Battery", "battery functional test"]
PCDU_FT = ["PCDU", "PCDU functional test"]
CORE_FT = ["OBC", "OBC functional test"] CORE_FT = ["OBC", "OBC functional test"]
PCDU_FT = ["PCDU", "PCDU functional test"]
RAD_SEN_FT = ["Radiation Sensor", "Radiation Sensor functional test"]
TCS_FT = ["TCS Act.", "TCS functional test activation"]
KAI = KeyAndInfo KAI = KeyAndInfo
PROC_INFO_DICT = { PROC_INFO_DICT = {
KAI.BAT_FT[0]: [OpCodes.BAT_FT, KAI.BAT_FT[1], 120.0, 10.0], KAI.BAT_FT[0]: [OpCodes.BAT_FT, KAI.BAT_FT[1], 120.0, 10.0],
KAI.PCDU_FT[0]: [OpCodes.PCDU_FT, KeyAndInfo.PCDU_FT[1], 120.0, 10.0], KAI.CORE_FT[0]: [OpCodes.CORE_FT, KAI.CORE_FT[1], 120.0, 10.0],
KAI.CORE_FT[0]: [OpCodes.CORE_FT, KeyAndInfo.CORE_FT[1], 120.0, 10.0], KAI.PCDU_FT[0]: [OpCodes.PCDU_FT, KAI.PCDU_FT[1], 120.0, 10.0],
KAI.RAD_SEN_FT[0]: [OpCodes.RAD_SEN_FT, KAI.RAD_SEN_FT[1], 120.0, 10.0],
KAI.TCS_FT[0]: [OpCodes.TCS_FT, KAI.TCS_FT[1], 1800.0, 10.0],
} }
def generic_print(tc_queue: TcQueueT, key: str): def generic_print(tc_queue: TcQueueT, info: dict):
info = PROC_INFO_DICT[key]
tc_queue.appendleft( tc_queue.appendleft(
(QueueCommands.PRINT, f"Executing {info[0]} Procedure (OpCodes: {info[1]})") (QueueCommands.PRINT, f"Executing {info[1]} Procedure (OpCodes: {info[0]})")
) )
def pack_generic_hk_listening_cmds( def pack_generic_hk_listening_cmds(
tc_queue: TcQueueT, proc_key: str, sid: bytes, diag: bool tc_queue: TcQueueT, proc_key: str, sid: bytes, diag: bool
): ):
generic_print(tc_queue=tc_queue, key=proc_key) info = PROC_INFO_DICT[proc_key]
generic_print(tc_queue=tc_queue, info=info)
listen_to_hk_for_x_seconds( listen_to_hk_for_x_seconds(
diag=diag, diag=diag,
tc_queue=tc_queue, tc_queue=tc_queue,
device=proc_key, device=proc_key,
sid=sid, sid=sid,
interval_seconds=10.0, interval_seconds=info[3],
collection_time=120.0, collection_time=info[2],
) )
def pack_proc_commands(tc_queue: TcQueueT, op_code: str): def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
if op_code in OpCodes.BAT_FT: if op_code in OpCodes.BAT_FT:
key = KAI.BAT_FT[0] key = KAI.BAT_FT[0]
sid = make_sid(BPX_HANDLER_ID, BpxSetIds.GET_HK_SET) sid = make_sid(oids.BPX_HANDLER_ID, BpxSetIds.GET_HK_SET)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
if op_code in OpCodes.PCDU_FT:
key = KAI.PCDU_FT[0]
sid = make_sid(P60_DOCK_HANDLER, GsSetIds.P60_CORE)
pack_generic_hk_listening_cmds( pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
) )
@ -81,6 +87,63 @@ def pack_proc_commands(tc_queue: TcQueueT, op_code: str):
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
) )
# PCDU
if op_code in OpCodes.PCDU_FT:
key = KAI.PCDU_FT[0]
sid = make_sid(oids.P60_DOCK_HANDLER, GsSetIds.P60_CORE)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
sid = make_sid(oids.PDU_1_HANDLER_ID, GsSetIds.PDU_1_CORE)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
sid = make_sid(oids.PDU_2_HANDLER_ID, GsSetIds.PDU_2_CORE)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
sid = make_sid(oids.ACU_HANDLER_ID, GsSetIds.ACU)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
# AUX und 2er
sid = make_sid(oids.P60_DOCK_HANDLER, GsSetIds.P60_AUX)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
sid = make_sid(oids.PDU_1_HANDLER_ID, GsSetIds.PDU_1_AUX)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
sid = make_sid(oids.PDU_2_HANDLER_ID, GsSetIds.PDU_2_AUX)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
if op_code in OpCodes.RAD_SEN_FT:
key = KAI.CORE_FT[0]
sid = make_sid(oids.RAD_SENSOR_ID, RadSetIds.READ_CONVERSIONS)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
if op_code in OpCodes.TCS_FT:
pack_tcs_sys_commands(tc_queue=tc_queue, op_code="tcs-normal")
pack_controller_commands(tc_queue=tc_queue, op_code="thermal_controller")
key = KAI.CORE_FT[0]
# Ids for TCS Board missing. No HK generation?
sid = make_sid(oids.TCS_BOARD_ASS_ID, RadSetIds.READ_CONVERSIONS)
pack_generic_hk_listening_cmds(
tc_queue=tc_queue, proc_key=key, sid=sid, diag=False
)
pack_tcs_sys_commands(tc_queue=tc_queue, op_code="tcs-off")
pack_controller_commands(tc_queue=tc_queue, op_code="thermal_controller")
def listen_to_hk_for_x_seconds( def listen_to_hk_for_x_seconds(
tc_queue: TcQueueT, tc_queue: TcQueueT,
@ -90,20 +153,6 @@ def listen_to_hk_for_x_seconds(
interval_seconds: float, interval_seconds: float,
collection_time: float, collection_time: float,
): ):
"""
enable_periodic_hk_command_with_interval(
diag: bool, sid: bytes, interval_seconds: float, ssc: int
"""
"""
function with periodic HK generation
interval_seconds = at which rate HK is saved
collection_time = how long the HK is saved for
device = for which device the HK is saved
functional_test =
diagnostic Hk = yes diagnostic or no diagnostic
sid = structural ID for specific device
device Hk set ID
"""
tc_queue.appendleft((QueueCommands.PRINT, f"Enabling periodic HK for {device}")) tc_queue.appendleft((QueueCommands.PRINT, f"Enabling periodic HK for {device}"))
cmd_tuple = enable_periodic_hk_command_with_interval( cmd_tuple = enable_periodic_hk_command_with_interval(