rework read and write prompts for MPSoC

This commit is contained in:
Robin Müller 2023-05-15 13:43:26 +02:00
parent dd3e4c649b
commit 14c42a91ff
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814

View File

@ -31,14 +31,24 @@ _LOGGER = logging.getLogger(__name__)
MANUAL_INPUT = "1"
FLASH_WRITE_FILE_DICT = {
OBC_WRITE_FILE_DICT = {
MANUAL_INPUT: ("manual input", ""),
"2": ("/mnt/sd0/ploc/mpsoc/flash_write.bin", "/mnt/sd0/ploc/mpsoc/flash_write.bin"),
}
MPSOC_FILE_DICT = {
OBC_READ_FILE_DICT = {
MANUAL_INPUT: ("manual input", ""),
"2": ("0:/flash", "0:/flash"),
"2": ("/mnt/sd0/ploc/mpsoc/flash_read.bin", "/mnt/sd0/ploc/mpsoc/flash_read.bin"),
}
MPSOC_WRITE_FILE_DICT = {
MANUAL_INPUT: ("manual input", ""),
"2": ("0:/", "0:/"),
}
MPSOC_READ_FILE_DICT = {
MANUAL_INPUT: ("manual input", ""),
"2": ("0:/PICA", "0:/PICA"),
}
SEQ_FILE_NAMES = ["0:/EM16/231", "0:/EQ04/E-75", "0:/EQ01/E130"]
@ -337,31 +347,39 @@ def prepare_mem_read_command(object_id: bytes) -> bytearray:
return bytearray(command)
def prepare_flash_base_cmd(action_id: int, object_id: bytes) -> bytearray:
obc_file = get_obc_file()
mpsoc_file = get_mpsoc_file()
def prepare_flash_base_cmd(
obc_filename: str, mpsoc_filename: str, action_id: int, object_id: bytes
) -> bytearray:
command = bytearray(object_id)
command.extend(struct.pack("!I", action_id))
command.extend(obc_file.encode("utf-8"))
command.extend(obc_filename.encode("utf-8"))
command.append(0)
command.extend(mpsoc_file.encode("utf-8"))
command.extend(mpsoc_filename.encode("utf-8"))
command.append(0)
return command
def prepare_flash_write_cmd(object_id: bytes) -> bytearray:
return prepare_flash_base_cmd(ActionId.TC_FLASH_WRITE_FULL_FILE, object_id)
obc_file = get_obc_file(OBC_WRITE_FILE_DICT)
mpsoc_file = get_mpsoc_file(MPSOC_WRITE_FILE_DICT)
return prepare_flash_base_cmd(
obc_file, mpsoc_file, ActionId.TC_FLASH_WRITE_FULL_FILE, object_id
)
def prepare_flash_read_cmd(object_id: bytes) -> bytearray:
cmd = prepare_flash_base_cmd(ActionId.TC_FLASH_READ_FULL_FILE, object_id)
mpsoc_file = get_mpsoc_file(MPSOC_READ_FILE_DICT)
obc_file = get_obc_file(OBC_READ_FILE_DICT)
cmd = prepare_flash_base_cmd(
mpsoc_file, obc_file, ActionId.TC_FLASH_READ_FULL_FILE, object_id
)
file_size = get_mpsoc_file_size()
cmd.extend(struct.pack("!I", file_size))
return cmd
def prepare_flash_delete_cmd(object_id: bytes) -> bytearray:
file = get_mpsoc_file()
file = get_mpsoc_file(MPSOC_READ_FILE_DICT)
command = (
object_id + struct.pack("!I", ActionId.TC_FLASH_DELETE) + file.encode("utf-8")
)
@ -466,30 +484,30 @@ def prepare_downlink_data_modulate_cmd(object_id: bytes) -> bytearray:
return bytearray(command)
def get_obc_file() -> str:
_LOGGER.info("Specify OBC file ")
input_helper = InputHelper(FLASH_WRITE_FILE_DICT)
def get_obc_file(input_dict: dict) -> str:
_LOGGER.info("Specify OBC filename")
input_helper = InputHelper(input_dict)
key = input_helper.get_key()
if key == MANUAL_INPUT:
file = input("Ploc MPSoC: Specify absolute name of flash file: ")
else:
file = FLASH_WRITE_FILE_DICT[key][1]
file = input_dict[key][1]
return file
def get_mpsoc_file() -> str:
_LOGGER.info("Specify MPSoC file")
input_helper = InputHelper(MPSOC_FILE_DICT)
def get_mpsoc_file(input_dict: dict) -> str:
_LOGGER.info("Specify MPSoC filename")
input_helper = InputHelper(input_dict)
key = input_helper.get_key()
if key == MANUAL_INPUT:
file = input("Ploc MPSoC: Specify absolute name file: ")
else:
file = MPSOC_FILE_DICT[key][1]
file = input_dict[key][1]
return file
def get_mpsoc_file_size() -> int:
file_size = int(input("Specify MPSoC file size"))
file_size = int(input("Specify MPSoC file size: "))
if file_size <= 0:
raise ValueError("Invalid file size")
return file_size