From 755644e6fa8ec9e23d79f645dbf5edea863259b5 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" <robin.mueller.m@gmail.com> Date: Tue, 6 Oct 2020 16:01:58 +0200 Subject: [PATCH] some SD commands added --- .../tmtcclient_Clear_SD_Card_.xml | 2 +- .../tmtcclient_Format_SD_Card_.xml | 2 +- .../tmtcclient_Print_SD_Card.xml | 2 +- config/obsw_config.py | 9 +++- tc/obsw_pus_tc_packer.py | 2 +- tc/obsw_tc_service23.py | 52 +++++++++++-------- tc/obsw_tc_service8.py | 5 ++ utility/obsw_args_parser.py | 2 +- 8 files changed, 48 insertions(+), 28 deletions(-) diff --git a/.idea/runConfigurations/tmtcclient_Clear_SD_Card_.xml b/.idea/runConfigurations/tmtcclient_Clear_SD_Card_.xml index ef06fbd..c9f7b28 100644 --- a/.idea/runConfigurations/tmtcclient_Clear_SD_Card_.xml +++ b/.idea/runConfigurations/tmtcclient_Clear_SD_Card_.xml @@ -13,7 +13,7 @@ <option name="ADD_SOURCE_ROOTS" value="true" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> <option name="SCRIPT_NAME" value="$PROJECT_DIR$/obsw_tmtc_client.py" /> - <option name="PARAMETERS" value="-m 3 -s 23 -o 181 -c 1 -t 2.5" /> + <option name="PARAMETERS" value="-m 3 -s SD -o A20 -c 1 -t 2.5" /> <option name="SHOW_COMMAND_LINE" value="false" /> <option name="EMULATE_TERMINAL" value="true" /> <option name="MODULE_MODE" value="false" /> diff --git a/.idea/runConfigurations/tmtcclient_Format_SD_Card_.xml b/.idea/runConfigurations/tmtcclient_Format_SD_Card_.xml index e0e21bc..229b06b 100644 --- a/.idea/runConfigurations/tmtcclient_Format_SD_Card_.xml +++ b/.idea/runConfigurations/tmtcclient_Format_SD_Card_.xml @@ -13,7 +13,7 @@ <option name="ADD_SOURCE_ROOTS" value="true" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> <option name="SCRIPT_NAME" value="$PROJECT_DIR$/obsw_tmtc_client.py" /> - <option name="PARAMETERS" value="-m 3 -s 23 -o 182 -c 1 -t 2.5" /> + <option name="PARAMETERS" value="-m 3 -s SD -o A21 -c 1 -t 2.5" /> <option name="SHOW_COMMAND_LINE" value="false" /> <option name="EMULATE_TERMINAL" value="true" /> <option name="MODULE_MODE" value="false" /> diff --git a/.idea/runConfigurations/tmtcclient_Print_SD_Card.xml b/.idea/runConfigurations/tmtcclient_Print_SD_Card.xml index 4a9950b..79c0da7 100644 --- a/.idea/runConfigurations/tmtcclient_Print_SD_Card.xml +++ b/.idea/runConfigurations/tmtcclient_Print_SD_Card.xml @@ -13,7 +13,7 @@ <option name="ADD_SOURCE_ROOTS" value="true" /> <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" /> <option name="SCRIPT_NAME" value="$PROJECT_DIR$/obsw_tmtc_client.py" /> - <option name="PARAMETERS" value="-m 3 -s 23 -o 133 -c 1 -t 2.5" /> + <option name="PARAMETERS" value="-m 3 -s SD -o A2 -c 1 -t 2.5" /> <option name="SHOW_COMMAND_LINE" value="false" /> <option name="EMULATE_TERMINAL" value="true" /> <option name="MODULE_MODE" value="false" /> diff --git a/config/obsw_config.py b/config/obsw_config.py index 24dd993..929e190 100644 --- a/config/obsw_config.py +++ b/config/obsw_config.py @@ -154,6 +154,13 @@ def set_globals(args): G_SERVICE = int(args.service) else: G_SERVICE = args.service + + G_OP_CODE = args.op_code + if G_OP_CODE.isdigit(): + G_OP_CODE = int(G_OP_CODE) + else: + G_OP_CODE = str(G_OP_CODE) + G_MODE_ID = G_MODE_ID G_PRINT_HK_DATA = args.print_hk G_PRINT_TM = args.print_tm @@ -162,7 +169,7 @@ def set_globals(args): G_COM_PORT = args.com_port G_TM_TIMEOUT = args.tm_timeout G_RESEND_TC = args.resend_tc - G_OP_CODE = args.op_code + from obsw_user_code import global_setup_hook global_setup_hook() diff --git a/tc/obsw_pus_tc_packer.py b/tc/obsw_pus_tc_packer.py index 9e009a2..5af7472 100644 --- a/tc/obsw_pus_tc_packer.py +++ b/tc/obsw_pus_tc_packer.py @@ -47,7 +47,7 @@ class ServiceQueuePacker: return pack_service17_test_into(service_queue) if service == 20: return pack_service20_test_into(service_queue) - if service == 23: + if service == 23 or service == "SD": return pack_service23_commands_into(service_queue, op_code) if service == 200: return pack_service200_test_into(service_queue) diff --git a/tc/obsw_tc_service23.py b/tc/obsw_tc_service23.py index 01d0315..5db47d7 100644 --- a/tc/obsw_tc_service23.py +++ b/tc/obsw_tc_service23.py @@ -11,6 +11,7 @@ import config.obsw_config as g from typing import Deque, Union from tc.obsw_pus_tc_packer import PusTelecommand, TcQueueT +from tc.obsw_tc_service8 import make_action_id from tmtc_core.utility.obsw_logger import get_logger LOGGER = get_logger() @@ -190,90 +191,93 @@ class FileTransferHelper: def generate_print_sd_card_packet( ssc: int, object_id: bytearray = g.SD_CARD_HANDLER_ID) -> PusTelecommand: app_data = bytearray(object_id) - return PusTelecommand(service=23, subservice=133, ssc=ssc, app_data=app_data) + app_data += make_action_id(2) + return PusTelecommand(service=8, subservice=128, ssc=ssc, app_data=app_data) def generate_clear_sd_card_packet( ssc: int, object_id: bytearray = g.SD_CARD_HANDLER_ID) -> PusTelecommand: app_data = bytearray(object_id) - return PusTelecommand(service=23, subservice=181, ssc=ssc, app_data=app_data) + app_data += make_action_id(20) + return PusTelecommand(service=8, subservice=128, ssc=ssc, app_data=app_data) def generate_format_sd_card_packet( ssc: int, object_id: bytearray = g.SD_CARD_HANDLER_ID) -> PusTelecommand: app_data = bytearray(object_id) - return PusTelecommand(service=23, subservice=182, ssc=ssc, app_data=app_data) + app_data += make_action_id(21) + return PusTelecommand(service=8, subservice=128, ssc=ssc, app_data=app_data) def generate_generic_folder_structure( tc_queue: Deque, init_ssc: int, object_id: bytearray = g.SD_CARD_HANDLER_ID, iobc: bool = False): tc_queue.appendleft(("print", "Creating TC folder")) - command = generate_mkdir_srv23_9_packet("TC", ssc=init_ssc) + command = generate_mkdir_srv23_9_packet("TC", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="TC", directory_name="LARGE", ssc=init_ssc) + repository_path="TC", directory_name="LARGE", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="TC", directory_name="SMALL", ssc=init_ssc) + repository_path="TC", directory_name="SMALL", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 tc_queue.appendleft(("print", "Creating TM folder")) - command = generate_mkdir_srv23_9_packet("TM", ssc=init_ssc) + command = generate_mkdir_srv23_9_packet("TM", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="TM", directory_name="HK", ssc=init_ssc) + repository_path="TM", directory_name="HK", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="TM", directory_name="SC", ssc=init_ssc) + repository_path="TM", directory_name="SC", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) command = generate_mkdir_srv23_9_packet( - repository_path="TM/SC", directory_name="LARGE", ssc=init_ssc) + repository_path="TM/SC", directory_name="LARGE", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="TM/SC", directory_name="SMALL", ssc=init_ssc) + repository_path="TM/SC", directory_name="SMALL", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 tc_queue.appendleft(("print", "Creating BIN folder")) - command = generate_mkdir_srv23_9_packet("BIN", ssc=init_ssc) + command = generate_mkdir_srv23_9_packet("BIN", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 if iobc: command = generate_mkdir_srv23_9_packet( - repository_path="BIN", directory_name="IOBC", ssc=init_ssc) + repository_path="BIN", directory_name="IOBC", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="BIN/IOBC", directory_name="BL", ssc=init_ssc) + repository_path="BIN/IOBC", directory_name="BL", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="BIN/IOBC", directory_name="OBSW", ssc=init_ssc) + repository_path="BIN/IOBC", directory_name="OBSW", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 else: command = generate_mkdir_srv23_9_packet( - repository_path="BIN", directory_name="AT91", ssc=init_ssc) + repository_path="BIN", directory_name="AT91", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="BIN/AT91", directory_name="BL", ssc=init_ssc) + repository_path="BIN/AT91", directory_name="BL", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 command = generate_mkdir_srv23_9_packet( - repository_path="BIN/AT91", directory_name="OBSW", ssc=init_ssc) + repository_path="BIN/AT91", directory_name="OBSW", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) init_ssc += 1 tc_queue.appendleft(("print", "Creating MISC folder")) - command = generate_mkdir_srv23_9_packet("MISC", ssc=init_ssc) + command = generate_mkdir_srv23_9_packet("MISC", ssc=init_ssc, object_id=object_id) tc_queue.appendleft(command.pack_command_tuple()) @@ -444,18 +448,22 @@ def pack_service23_commands_into(tc_queue: Deque, op_code: int) -> Deque: command = generate_rmdir_srv23_10_packet(directory_name="test", repository_path="/", ssc=2306) tc_queue.appendleft(command.pack_command_tuple()) - elif op_code == 133: + elif op_code == "A2": tc_queue.append(("print", "Printing active file system")) command = generate_print_sd_card_packet(ssc=2300) tc_queue.appendleft(command.pack_command_tuple()) - elif op_code == 181: + elif op_code == "A20": tc_queue.append(("print", "Clearing active file system")) command = generate_clear_sd_card_packet(ssc=2300) tc_queue.appendleft(command.pack_command_tuple()) - elif op_code == 182: + elif op_code == "A21": tc_queue.append(("print", "Formatting active file system")) command = generate_format_sd_card_packet(ssc=2300) tc_queue.appendleft(command.pack_command_tuple()) + elif op_code == "C0A": + generate_generic_folder_structure(tc_queue, init_ssc=0, iobc=False) + elif op_code == "C0I": + generate_generic_folder_structure(tc_queue, init_ssc=0, iobc=True) return tc_queue diff --git a/tc/obsw_tc_service8.py b/tc/obsw_tc_service8.py index 130bc49..9166214 100644 --- a/tc/obsw_tc_service8.py +++ b/tc/obsw_tc_service8.py @@ -5,6 +5,7 @@ @author R. Mueller @date 01.11.2019 """ +import struct from typing import Deque import config.obsw_config as g @@ -62,3 +63,7 @@ def pack_service8_test_into(tc_queue: Deque, called_externally: bool = False) -> if called_externally is False: tc_queue.appendleft(("export", "log/tmtc_log_service8.txt")) return tc_queue + + +def make_action_id(action_id: int) -> bytearray: + return bytearray(struct.pack('!I', action_id)) diff --git a/utility/obsw_args_parser.py b/utility/obsw_args_parser.py index 3769416..d226d02 100644 --- a/utility/obsw_args_parser.py +++ b/utility/obsw_args_parser.py @@ -25,7 +25,7 @@ def parse_input_arguments(): '-c', '--com_if', type=int, help='Communication Interface. 0: Dummy Interface, 1: Serial, ' '2: QEMU, 3: UDP', default=2) arg_parser.add_argument( - '-o', '--op_code', type=int, help='Operation code, which is passed to the TC ' + '-o', '--op_code', help='Operation code, which is passed to the TC ' 'packer functions', default=0) arg_parser.add_argument('--clientIP', help='Client(Computer) IP. Default:\'\'', default='') arg_parser.add_argument( -- GitLab