Compare commits
10 Commits
7c98e0c570
...
37c1a68da1
Author | SHA1 | Date | |
---|---|---|---|
37c1a68da1 | |||
![]() |
54b319a487 | ||
![]() |
b0cfe20a77 | ||
![]() |
867c6226d9 | ||
![]() |
d3074701a7 | ||
![]() |
8e0821ceaa | ||
![]() |
847e2a4c15 | ||
![]() |
3c3a5ab03c | ||
![]() |
74f5ebd4e5 | ||
![]() |
3190d796e1 |
2
.idea/runConfigurations/tmtcclient_CLI.xml
generated
2
.idea/runConfigurations/tmtcclient_CLI.xml
generated
@@ -15,7 +15,7 @@
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/tmtccli.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="true" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
|
@@ -109,6 +109,36 @@ def add_pl_pcdu_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
keys=OpCodes.UPDATE_DRO_TO_X8_WAIT,
|
||||
info="Update DRO to X8 wait time",
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=OpCodes.INJECT_SSR_TO_DRO_FAILURE,
|
||||
info="Inject failure SSR to DRO transition"
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=OpCodes.INJECT_DRO_TO_X8_FAILURE,
|
||||
info="Inject failure in DRO to X8 transition"
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=OpCodes.INJECT_X8_TO_TX_FAILURE,
|
||||
info="Inject failure in X8 to TX transition"
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=OpCodes.INJECT_TX_TO_MPA_FAILURE,
|
||||
info="Inject failure in TX to MPA transition"
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=OpCodes.INJECT_MPA_TO_HPA_FAILURE,
|
||||
info="Inject failure in MPA to HPA transition"
|
||||
)
|
||||
add_op_code_entry(
|
||||
op_code_dict=op_code_dict,
|
||||
keys=OpCodes.INJECT_ALL_ON_FAILURE,
|
||||
info="Inject failure in all on mode"
|
||||
)
|
||||
add_service_op_code_entry(
|
||||
srv_op_code_dict=cmd_dict,
|
||||
name=CustomServiceList.PL_PCDU.value,
|
||||
@@ -302,3 +332,172 @@ def add_pcdu_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
info="PDU2 Device",
|
||||
op_code_entry=op_code_dict,
|
||||
)
|
||||
|
||||
|
||||
def add_imtq_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
op_code_dict_srv_imtq = {
|
||||
"0": ("IMTQ Tests All", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("IMTQ perform pos X self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("IMTQ perform neg X self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"3": ("IMTQ perform pos Y self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"4": ("IMTQ perform neg Y self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"5": ("IMTQ perform pos Z self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"6": ("IMTQ perform neg Z self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"7": ("IMTQ command dipole", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"8": ("IMTQ get commanded dipole", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_imtq_tuple = ("IMTQ Device", op_code_dict_srv_imtq)
|
||||
cmd_dict[CustomServiceList.IMTQ.value] = service_imtq_tuple
|
||||
|
||||
|
||||
def add_rw_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
op_code_dict_srv_rw = {
|
||||
"0": ("Reaction Wheel: Run all commands", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("Reaction Wheel: Set speed", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("Reaction Wheel: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"3": ("Reaction Wheel: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"4": ("Reaction Wheel: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"5": (
|
||||
"Reaction Wheel: Send get-telemetry-command",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
}
|
||||
service_rw_tuple = ("Reaction Wheel", op_code_dict_srv_rw)
|
||||
cmd_dict[CustomServiceList.REACTION_WHEEL_1.value] = service_rw_tuple
|
||||
cmd_dict[CustomServiceList.REACTION_WHEEL_2.value] = service_rw_tuple
|
||||
cmd_dict[CustomServiceList.REACTION_WHEEL_3.value] = service_rw_tuple
|
||||
cmd_dict[CustomServiceList.REACTION_WHEEL_4.value] = service_rw_tuple
|
||||
|
||||
|
||||
def add_rad_sens_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
op_code_dict_srv_rad_sensor = {
|
||||
"0": ("Radiation Sensor: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("Radiation Sensor: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("Radiation Sensor: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_rad_sensor_tuple = ("Radiation Sensor", op_code_dict_srv_rad_sensor)
|
||||
cmd_dict[CustomServiceList.RAD_SENSOR.value] = service_rad_sensor_tuple
|
||||
|
||||
|
||||
def add_ploc_cmds(cmd_dict: ServiceOpCodeDictT):
|
||||
op_code_dict_ploc_mem_dumper = {
|
||||
"0": ("PLOC Memory Dumper: MRAM dump", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_ploc_memory_dumper_tuple = (
|
||||
"PLOC Memory Dumper",
|
||||
op_code_dict_ploc_mem_dumper,
|
||||
)
|
||||
|
||||
op_code_dict_srv_ploc_supv = {
|
||||
"0": ("PLOC Supervisor: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("PLOC Supervisor: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("PLOC Supervisor: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"3": ("PLOC Supervisor: Get HK Report", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"4": ("PLOC Supervisor: Restart MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"5": ("PLOC Supervisor: Start MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"6": ("PLOC Supervisor: Shutdown MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"7": (
|
||||
"PLOC Supervisor: Select MPSoC boot image",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"8": ("PLOC Supervisor: Set max restart tries", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"9": ("PLOC Supervisor: Reset MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"10": ("PLOC Supervisor: Set time reference", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"11": ("PLOC Supervisor: Set boot timeout", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"12": ("PLOC Supervisor: Disable Hk", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"13": (
|
||||
"PLOC Supervisor: Request boot status report",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"14": ("PLOC Supervisor: Update available", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"15": ("PLOC Supervisor: Watchdogs enable", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"16": (
|
||||
"PLOC Supervisor: Watchdog Configure Timeout",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"17": ("PLOC Supervisor: Enable latchup alert", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"18": ("PLOC Supervisor: Disable latchup alert", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"19": ("PLOC Supervisor: Auto calibrate alert", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"20": ("PLOC Supervisor: Set alert limit", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"21": ("PLOC Supervisor: Set alert irq filter", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"22": ("PLOC Supervisor: Set ADC sweep period", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"23": (
|
||||
"PLOC Supervisor: Set ADC enabled channels",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"24": (
|
||||
"PLOC Supervisor: Set ADC window and stride",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"25": ("PLOC Supervisor: Set ADC threshold", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"26": (
|
||||
"PLOC Supervisor: Request latchup status report",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"27": ("PLOC Supervisor: Copy ADC data to MRAM", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"28": (
|
||||
"PLOC Supervisor: Enable/Disable NVM0/1/3",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"29": ("PLOC Supervisor: Select NVM", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"30": ("PLOC Supervisor: Run auto EM tests", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"31": ("PLOC Supervisor: MRAM Wipe", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"33": ("PLOC Supervisor: Print CPU stats", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"34": ("PLOC Supervisor: Set debug verbosity", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"35": ("PLOC Supervisor: Set GPIO", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"36": ("PLOC Supervisor: Read GPIO", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"37": ("PLOC Supervisor: Restart supervisor", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"38": (
|
||||
"PLOC Supervisor: Factory reset clear all",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"39": (
|
||||
"PLOC Supervisor: Factory reset clear mirror entries",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"40": (
|
||||
"PLOC Supervisor: Factory reset clear circular entries",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"41": ("PLOC Supervisor: CAN loopback test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_ploc_supv_tuple = ("PLOC Supervisor", op_code_dict_srv_ploc_supv)
|
||||
|
||||
op_code_dict_srv_ploc_updater = {
|
||||
"0": (
|
||||
"Ploc Updater: Update uboot on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"1": (
|
||||
"Ploc Updater: Update bitstream on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"2": (
|
||||
"Ploc Updater: Update linux on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"3": (
|
||||
"Ploc Updater: Update application on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"4": (
|
||||
"Ploc Updater: Update uboot on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"5": (
|
||||
"Ploc Updater: Update bitstream on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"6": (
|
||||
"Ploc Updater: Update linux on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"7": (
|
||||
"Ploc Updater: Update application on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
}
|
||||
service_ploc_updater_tuple = ("Ploc Updater", op_code_dict_srv_ploc_updater)
|
||||
cmd_dict[CustomServiceList.PLOC_SUPV.value] = service_ploc_supv_tuple
|
||||
cmd_dict[CustomServiceList.PLOC_UPDATER.value] = service_ploc_updater_tuple
|
||||
cmd_dict[CustomServiceList.PLOC_MEMORY_DUMPER.value] = service_ploc_memory_dumper_tuple
|
||||
|
@@ -115,12 +115,21 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT):
|
||||
add_core_controller_definitions,
|
||||
add_pcdu_cmds,
|
||||
add_pl_pcdu_cmds,
|
||||
add_imtq_cmds,
|
||||
add_rw_cmds,
|
||||
add_rad_sens_cmds,
|
||||
add_ploc_cmds,
|
||||
)
|
||||
from pus_tc.gps import GpsOpCodes
|
||||
|
||||
add_bpx_cmd_definitions(cmd_dict=service_op_code_dict)
|
||||
add_core_controller_definitions(cmd_dict=service_op_code_dict)
|
||||
add_pl_pcdu_cmds(cmd_dict=service_op_code_dict)
|
||||
add_pcdu_cmds(cmd_dict=service_op_code_dict)
|
||||
add_imtq_cmds(cmd_dict=service_op_code_dict)
|
||||
add_rad_sens_cmds(cmd_dict=service_op_code_dict)
|
||||
add_rw_cmds(cmd_dict=service_op_code_dict)
|
||||
add_ploc_cmds(cmd_dict=service_op_code_dict)
|
||||
|
||||
op_code_dict = {
|
||||
GpsOpCodes.RESET_GNSS.value: ("Reset GPS", {OpCodeDictKeys.TIMEOUT: 2.0})
|
||||
@@ -144,165 +153,11 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT):
|
||||
service_tuple = ("TMP1075 2", op_code_dict)
|
||||
service_op_code_dict[CustomServiceList.TMP1075_2.value] = service_tuple
|
||||
|
||||
add_pcdu_cmds(cmd_dict=service_op_code_dict)
|
||||
|
||||
op_code_dict_srv_heater = {
|
||||
"0": ("Heater Tests", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_heater_tuple = ("Heater Device", op_code_dict_srv_heater)
|
||||
|
||||
op_code_dict_srv_imtq = {
|
||||
"0": ("IMTQ Tests All", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("IMTQ perform pos X self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("IMTQ perform neg X self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"3": ("IMTQ perform pos Y self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"4": ("IMTQ perform neg Y self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"5": ("IMTQ perform pos Z self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"6": ("IMTQ perform neg Z self test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"7": ("IMTQ command dipole", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"8": ("IMTQ get commanded dipole", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_imtq_tuple = ("IMTQ Device", op_code_dict_srv_imtq)
|
||||
|
||||
op_code_dict_srv_rw = {
|
||||
"0": ("Reaction Wheel: Run all commands", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("Reaction Wheel: Set speed", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("Reaction Wheel: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"3": ("Reaction Wheel: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"4": ("Reaction Wheel: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"5": (
|
||||
"Reaction Wheel: Send get-telemetry-command",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
}
|
||||
service_rw_tuple = ("Reaction Wheel", op_code_dict_srv_rw)
|
||||
|
||||
op_code_dict_srv_rad_sensor = {
|
||||
"0": ("Radiation Sensor: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("Radiation Sensor: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("Radiation Sensor: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_rad_sensor_tuple = ("Radiation Sensor", op_code_dict_srv_rad_sensor)
|
||||
|
||||
op_code_dict_ploc_mem_dumper = {
|
||||
"0": ("PLOC Memory Dumper: MRAM dump", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_ploc_memory_dumper_tuple = (
|
||||
"Radiation Sensor",
|
||||
op_code_dict_ploc_mem_dumper,
|
||||
)
|
||||
|
||||
op_code_dict_srv_ploc_supv = {
|
||||
"0": ("PLOC Supervisor: Set mode on", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"1": ("PLOC Supervisor: Set mode normal", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"2": ("PLOC Supervisor: Set mode off", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"3": ("PLOC Supervisor: Get HK Report", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"4": ("PLOC Supervisor: Restart MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"5": ("PLOC Supervisor: Start MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"6": ("PLOC Supervisor: Shutdown MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"7": (
|
||||
"PLOC Supervisor: Select MPSoC boot image",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"8": ("PLOC Supervisor: Set max restart tries", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"9": ("PLOC Supervisor: Reset MPSoC", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"10": ("PLOC Supervisor: Set time reference", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"11": ("PLOC Supervisor: Set boot timeout", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"12": ("PLOC Supervisor: Disable Hk", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"13": (
|
||||
"PLOC Supervisor: Request boot status report",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"14": ("PLOC Supervisor: Update available", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"15": ("PLOC Supervisor: Watchdogs enable", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"16": (
|
||||
"PLOC Supervisor: Watchdog Configure Timeout",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"17": ("PLOC Supervisor: Enable latchup alert", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"18": ("PLOC Supervisor: Disable latchup alert", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"19": ("PLOC Supervisor: Auto calibrate alert", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"20": ("PLOC Supervisor: Set alert limit", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"21": ("PLOC Supervisor: Set alert irq filter", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"22": ("PLOC Supervisor: Set ADC sweep period", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"23": (
|
||||
"PLOC Supervisor: Set ADC enabled channels",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"24": (
|
||||
"PLOC Supervisor: Set ADC window and stride",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"25": ("PLOC Supervisor: Set ADC threshold", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"26": (
|
||||
"PLOC Supervisor: Request latchup status report",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"27": ("PLOC Supervisor: Copy ADC data to MRAM", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"28": (
|
||||
"PLOC Supervisor: Enable/Disable NVM0/1/3",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"29": ("PLOC Supervisor: Select NVM", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"30": ("PLOC Supervisor: Run auto EM tests", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"31": ("PLOC Supervisor: MRAM Wipe", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"33": ("PLOC Supervisor: Print CPU stats", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"34": ("PLOC Supervisor: Set debug verbosity", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"35": ("PLOC Supervisor: Set GPIO", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"36": ("PLOC Supervisor: Read GPIO", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"37": ("PLOC Supervisor: Restart supervisor", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
"38": (
|
||||
"PLOC Supervisor: Factory reset clear all",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"39": (
|
||||
"PLOC Supervisor: Factory reset clear mirror entries",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"40": (
|
||||
"PLOC Supervisor: Factory reset clear circular entries",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"41": ("PLOC Supervisor: CAN loopback test", {OpCodeDictKeys.TIMEOUT: 2.0}),
|
||||
}
|
||||
service_ploc_supv_tuple = ("PLOC Supervisor", op_code_dict_srv_ploc_supv)
|
||||
|
||||
op_code_dict_srv_ploc_updater = {
|
||||
"0": (
|
||||
"Ploc Updater: Update uboot on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"1": (
|
||||
"Ploc Updater: Update bitstream on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"2": (
|
||||
"Ploc Updater: Update linux on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"3": (
|
||||
"Ploc Updater: Update application on partition A",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"4": (
|
||||
"Ploc Updater: Update uboot on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"5": (
|
||||
"Ploc Updater: Update bitstream on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"6": (
|
||||
"Ploc Updater: Update linux on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
"7": (
|
||||
"Ploc Updater: Update application on partition B",
|
||||
{OpCodeDictKeys.TIMEOUT: 2.0},
|
||||
),
|
||||
}
|
||||
service_ploc_updater_tuple = ("Ploc Updater", op_code_dict_srv_ploc_updater)
|
||||
|
||||
op_code_dict_srv_star_tracker = {
|
||||
"0": (
|
||||
"Star Tracker: Mode On, Submode Bootloader",
|
||||
@@ -488,22 +343,9 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT):
|
||||
op_code_dict_srv_syrlinks_handler,
|
||||
)
|
||||
service_op_code_dict[CustomServiceList.HEATER.value] = service_heater_tuple
|
||||
service_op_code_dict[CustomServiceList.IMTQ.value] = service_imtq_tuple
|
||||
service_op_code_dict[CustomServiceList.REACTION_WHEEL_1.value] = service_rw_tuple
|
||||
service_op_code_dict[CustomServiceList.REACTION_WHEEL_2.value] = service_rw_tuple
|
||||
service_op_code_dict[CustomServiceList.REACTION_WHEEL_3.value] = service_rw_tuple
|
||||
service_op_code_dict[CustomServiceList.REACTION_WHEEL_4.value] = service_rw_tuple
|
||||
service_op_code_dict[CustomServiceList.RAD_SENSOR.value] = service_rad_sensor_tuple
|
||||
service_op_code_dict[CustomServiceList.PLOC_SUPV.value] = service_ploc_supv_tuple
|
||||
service_op_code_dict[
|
||||
CustomServiceList.PLOC_UPDATER.value
|
||||
] = service_ploc_updater_tuple
|
||||
service_op_code_dict[
|
||||
CustomServiceList.STAR_TRACKER.value
|
||||
] = service_star_tracker_tuple
|
||||
service_op_code_dict[
|
||||
CustomServiceList.PLOC_MEMORY_DUMPER.value
|
||||
] = service_ploc_memory_dumper_tuple
|
||||
service_op_code_dict[
|
||||
CustomServiceList.CCSDS_HANDLER.value
|
||||
] = service_ccsds_handler_tuple
|
||||
|
112
pus_tc/plpcdu.py
112
pus_tc/plpcdu.py
@@ -7,6 +7,7 @@ from tmtccmd.tc.service_200_mode import pack_mode_data, Modes, Subservices
|
||||
from tmtccmd.tc.service_20_parameter import (
|
||||
pack_scalar_double_param_app_data,
|
||||
pack_fsfw_load_param_cmd,
|
||||
pack_boolean_parameter_app_data
|
||||
)
|
||||
from tmtccmd.utility.logger import get_console_logger
|
||||
from spacepackets.ecss.tc import PusTelecommand
|
||||
@@ -19,6 +20,16 @@ class OpCodes:
|
||||
SWITCH_ADC_ON = ["0", "switch-adc-on"]
|
||||
SWITCH_ALL_ON = ["1", "switch-all-on"]
|
||||
UPDATE_DRO_TO_X8_WAIT = ["2", "dro-to-x8-wait"]
|
||||
UPDATE_X8_TO_TX_WAIT_TIME = ["3", "x8-to-tx-wait"]
|
||||
UPDATE_TX_TO_MPA_WAIT_TIME = ["4", "tx-to-mpa-wait"]
|
||||
UPDATE_MPA_TO_HPA_WAIT_TIME = ["5", "mpa-to-hpa-wait"]
|
||||
|
||||
INJECT_SSR_TO_DRO_FAILURE = ["6", "inject-ssr-dro-fault"]
|
||||
INJECT_DRO_TO_X8_FAILURE = ["7", "inject-dro-x8-fault"]
|
||||
INJECT_X8_TO_TX_FAILURE = ["8", "inject-x8-tx-fault"]
|
||||
INJECT_TX_TO_MPA_FAILURE = ["9", "inject-tx-mpa-fault"]
|
||||
INJECT_MPA_TO_HPA_FAILURE = ["10", "inject-mpa-hpa-fault"]
|
||||
INJECT_ALL_ON_FAILURE = ["11", "inject-all-on-fault"]
|
||||
|
||||
|
||||
class Submodes(enum.IntEnum):
|
||||
@@ -27,8 +38,41 @@ class Submodes(enum.IntEnum):
|
||||
|
||||
|
||||
class ParamIds(enum.IntEnum):
|
||||
NEG_V_LOWER_BOUND = 0
|
||||
NEG_V_UPPER_BOUND = 1
|
||||
|
||||
DRO_U_LOWER_BOUND = 2
|
||||
DRO_U_UPPER_BOUND = 3
|
||||
DRO_I_UPPER_BOUND = 4
|
||||
|
||||
X8_U_LOWER_BOUND = 5
|
||||
X8_U_UPPER_BOUND = 6
|
||||
X8_I_UPPER_BOUND = 7
|
||||
|
||||
TX_U_LOWER_BOUND = 8
|
||||
TX_U_UPPER_BOUND = 9
|
||||
TX_I_UPPER_BOUND = 10
|
||||
|
||||
MPA_U_LOWER_BOUND = 11
|
||||
MPA_U_UPPER_BOUND = 12
|
||||
MPA_I_UPPER_BOUND = 13
|
||||
|
||||
HPA_U_LOWER_BOUND = 14
|
||||
HPA_U_UPPER_BOUND = 15
|
||||
HPA_I_UPPER_BOUND = 16
|
||||
|
||||
SSR_TO_DRO_WAIT_TIME = 17
|
||||
DRO_TO_X8_WAIT_TIME = 18
|
||||
X8_TO_TX_WAIT_TIME = 19
|
||||
TX_TO_MPA_WAIT_TIME = 20
|
||||
MPA_TO_HPA_WAIT_TIME = 21
|
||||
|
||||
INJECT_SSR_TO_DRO_FAILURE = 30
|
||||
INJECT_DRO_TO_X8_FAILURE = 31
|
||||
INJECT_X8_TO_TX_FAILURE = 32
|
||||
INJECT_TX_TO_MPA_FAILURE = 33
|
||||
INJECT_MPA_TO_HPA_FAILURE = 34
|
||||
INJECT_ALL_ON_FAILURE = 35
|
||||
|
||||
|
||||
def pack_pl_pcdu_commands(tc_queue: TcQueueT, op_code: str):
|
||||
@@ -51,20 +95,35 @@ def pack_pl_pcdu_commands(tc_queue: TcQueueT, op_code: str):
|
||||
)
|
||||
tc_queue.appendleft(mode_cmd.pack_command_tuple())
|
||||
if op_code in OpCodes.UPDATE_DRO_TO_X8_WAIT:
|
||||
wait_time = request_wait_time()
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, f"Updating DRO to X8 wait time to {wait_time}")
|
||||
pack_wait_time_cmd(
|
||||
tc_queue=tc_queue,
|
||||
param_id=ParamIds.DRO_TO_X8_WAIT_TIME,
|
||||
print_str="DRO to X8",
|
||||
)
|
||||
if wait_time is None:
|
||||
return
|
||||
param_data = pack_scalar_double_param_app_data(
|
||||
object_id=PL_PCDU_ID,
|
||||
domain_id=0,
|
||||
unique_id=ParamIds.DRO_TO_X8_WAIT_TIME,
|
||||
parameter=wait_time,
|
||||
if op_code in OpCodes.UPDATE_X8_TO_TX_WAIT_TIME:
|
||||
pack_wait_time_cmd(
|
||||
tc_queue=tc_queue,
|
||||
param_id=ParamIds.X8_TO_TX_WAIT_TIME,
|
||||
print_str="X8 to TX",
|
||||
)
|
||||
if op_code in OpCodes.UPDATE_TX_TO_MPA_WAIT_TIME:
|
||||
pack_wait_time_cmd(
|
||||
tc_queue=tc_queue,
|
||||
param_id=ParamIds.TX_TO_MPA_WAIT_TIME,
|
||||
print_str="TX to MPA",
|
||||
)
|
||||
if op_code in OpCodes.UPDATE_MPA_TO_HPA_WAIT_TIME:
|
||||
pack_wait_time_cmd(
|
||||
tc_queue=tc_queue,
|
||||
param_id=ParamIds.MPA_TO_HPA_WAIT_TIME,
|
||||
print_str="MPA to HPA",
|
||||
)
|
||||
if op_code in OpCodes.INJECT_ALL_ON_FAILURE:
|
||||
pack_failure_injection_cmd(
|
||||
tc_queue=tc_queue,
|
||||
param_id=ParamIds.INJECT_ALL_ON_FAILURE,
|
||||
print_str="All On"
|
||||
)
|
||||
cmd = pack_fsfw_load_param_cmd(ssc=0, app_data=param_data)
|
||||
tc_queue.appendleft(cmd.pack_command_tuple())
|
||||
|
||||
|
||||
def request_wait_time() -> Optional[float]:
|
||||
@@ -81,3 +140,32 @@ def request_wait_time() -> Optional[float]:
|
||||
LOGGER.warning("Invalid input")
|
||||
else:
|
||||
return wait_time
|
||||
|
||||
|
||||
def pack_wait_time_cmd(tc_queue: TcQueueT, param_id: int, print_str: str):
|
||||
wait_time = request_wait_time()
|
||||
tc_queue.appendleft(
|
||||
(QueueCommands.PRINT, f"Updating {print_str} wait time to {wait_time}")
|
||||
)
|
||||
if wait_time is None:
|
||||
return
|
||||
param_data = pack_scalar_double_param_app_data(
|
||||
object_id=PL_PCDU_ID,
|
||||
domain_id=0,
|
||||
unique_id=param_id,
|
||||
parameter=wait_time,
|
||||
)
|
||||
cmd = pack_fsfw_load_param_cmd(ssc=0, app_data=param_data)
|
||||
tc_queue.appendleft(cmd.pack_command_tuple())
|
||||
|
||||
|
||||
def pack_failure_injection_cmd(tc_queue: TcQueueT, param_id: int, print_str: str):
|
||||
tc_queue.appendleft((QueueCommands.PRINT, f"Inserting {print_str} error"))
|
||||
param_data = pack_boolean_parameter_app_data(
|
||||
object_id=PL_PCDU_ID,
|
||||
domain_id=0,
|
||||
unique_id=param_id,
|
||||
parameter=True
|
||||
)
|
||||
cmd = pack_fsfw_load_param_cmd(ssc=0, app_data=param_data)
|
||||
tc_queue.appendleft(cmd.pack_command_tuple())
|
||||
|
2
tmtccmd
2
tmtccmd
Submodule tmtccmd updated: c9e0373e90...81a88435a5
Reference in New Issue
Block a user