add new mem check cmd for plocsupv
This commit is contained in:
@ -19,6 +19,7 @@ from tmtccmd.logging import get_console_logger
|
||||
from tmtccmd.tc import service_provider
|
||||
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||
from tmtccmd.tc.pus_200_fsfw_modes import pack_mode_data, Modes
|
||||
from tmtccmd.tc.pus_8_funccmd import make_fsfw_action_cmd
|
||||
from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
||||
from utility.input_helper import InputHelper
|
||||
|
||||
@ -106,6 +107,7 @@ class SupvActionIds:
|
||||
RESET_PL = 58
|
||||
ENABLE_NVMS = 59
|
||||
CONTINUE_UPDATE = 60
|
||||
MEM_CHECK = 61
|
||||
|
||||
|
||||
class SetIds:
|
||||
@ -127,6 +129,7 @@ class OpCodes:
|
||||
STOP_MPSOC = ["6", "mpsoc-stop"]
|
||||
START_UPDATE = ["42", "start-update"]
|
||||
PERFORM_UPDATE = ["update"]
|
||||
MEM_CHECK = ["mem-check"]
|
||||
|
||||
|
||||
class Info(str, enum.Enum):
|
||||
@ -136,6 +139,7 @@ class Info(str, enum.Enum):
|
||||
NML = "Switch Normal"
|
||||
HK_TO_OBC = "Request HK from PLOC SUPV"
|
||||
REQUEST_HK = "Request HK set from PLOC Handler"
|
||||
MEM_CHECK = "Memory Check"
|
||||
|
||||
|
||||
@tmtc_definitions_provider
|
||||
@ -187,6 +191,7 @@ def add_ploc_supv_cmds(defs: TmtcDefinitionWrapper):
|
||||
oce.add("56", "PLOC Supervisor: Reset PL")
|
||||
oce.add("57", "PLOC Supervisor: Enable NVMs")
|
||||
oce.add("58", "PLOC Supervisor: Continue update")
|
||||
oce.add(OpCodes.MEM_CHECK, Info.MEM_CHECK)
|
||||
defs.add_service(CustomServiceList.PLOC_SUPV.value, "PLOC Supervisor", oce)
|
||||
|
||||
|
||||
@ -424,6 +429,22 @@ def pack_ploc_supv_commands(p: ServiceProviderParams):
|
||||
q.add_log_cmd("PLOC Supervisor: Continue update")
|
||||
command = object_id.as_bytes + struct.pack("!I", SupvActionIds.CONTINUE_UPDATE)
|
||||
q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))
|
||||
if op_code in OpCodes.MEM_CHECK:
|
||||
custom_data = bytearray()
|
||||
memory_id = int(input("Specify memory ID: "))
|
||||
start_address = int(input("Specify start address: 0x"), 16)
|
||||
check_size = int(input("Specify check size: 0x"))
|
||||
custom_data.extend(struct.pack("!B", memory_id))
|
||||
custom_data.extend(struct.pack("!I", start_address))
|
||||
custom_data.extend(struct.pack("!I", check_size))
|
||||
q.add_log_cmd(
|
||||
f"{prefix}: {Info.MEM_CHECK} for memory ID {memory_id} at start "
|
||||
f"address {start_address} with check size {check_size}"
|
||||
)
|
||||
command = make_fsfw_action_cmd(
|
||||
object_id.as_bytes, SupvActionIds.MEM_CHECK, custom_data
|
||||
)
|
||||
q.add_pus_tc(command)
|
||||
|
||||
|
||||
def pack_sel_boot_image_cmd(
|
||||
|
Reference in New Issue
Block a user