From 53a69d81835de1f5ef4874a7798f8d65695342c6 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" <robin.mueller.m@gmail.com> Date: Mon, 5 Oct 2020 12:11:48 +0200 Subject: [PATCH] bugfix for object ID assignemtn --- tc/obsw_tc_service23.py | 46 ++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/tc/obsw_tc_service23.py b/tc/obsw_tc_service23.py index e4a2340..9fb9862 100644 --- a/tc/obsw_tc_service23.py +++ b/tc/obsw_tc_service23.py @@ -162,11 +162,11 @@ class FileTransferHelper: @param init_ssc: The ssc of the first command, will be incremented by one for each packet. """ number_of_packets = math.floor(len(data) / size_of_data_blocks) - packet_number = 0 + packet_sequence_number = 0 for i in range(number_of_packets): - header.append(packet_number >> 8) - header.append(0xFF & packet_number) + header.append(packet_sequence_number >> 8) + header.append(0xFF & packet_sequence_number) header += data[i * size_of_data_blocks:(i + 1) * size_of_data_blocks] commands = PusTelecommand(service=23, subservice=128, ssc=init_ssc + i, @@ -175,23 +175,23 @@ class FileTransferHelper: # Remove everything except the header header = header[:len(header) - size_of_data_blocks - 2] - packet_number = packet_number + 1 - header.append(packet_number >> 8) - header.append(0xFF & packet_number) + packet_sequence_number = packet_sequence_number + 1 + header.append(packet_sequence_number >> 8) + header.append(0xFF & packet_sequence_number) header += data[number_of_packets * size_of_data_blocks:len(data)] - commands = PusTelecommand(service=23, subservice=128, ssc=init_ssc + packet_number, + commands = PusTelecommand(service=23, subservice=128, ssc=init_ssc + packet_sequence_number, app_data=header) self.tc_queue.appendleft(commands.pack_command_tuple()) def generate_create_file_srv23_1_packet( filename: str, repository_path: str, ssc: int, max_size_of_app_data: int, - initial_data=bytearray([]), object_id=g.SD_CARD_HANDLER_ID): + initial_data: bytearray = bytearray([]), object_id: bytearray = g.SD_CARD_HANDLER_ID): if len(initial_data) > calculate_allowed_file_data_size( max_size_of_app_data, filename, repository_path): LOGGER.error("generate_create_file_srv23_1_packet: Initial data too large!") return None - data_to_pack = object_id + data_to_pack = bytearray(object_id) data_to_pack += bytearray(repository_path, 'utf-8') # Add string terminator to repository_path data_to_pack.append(0) @@ -214,7 +214,7 @@ def generate_rm_file_srv23_2_packet(filename: str, repository_path: str, @param object_id: The object ID of the memory handler which manages the file system :return The TC[23,2] PUS packet """ - data_to_pack = object_id + data_to_pack = bytearray(object_id) data_to_pack += bytearray(repository_path, 'utf-8') # Add string terminator to repository_path data_to_pack.append(0) @@ -225,7 +225,7 @@ def generate_rm_file_srv23_2_packet(filename: str, repository_path: str, def generate_mkdir_srv23_9_packet(directory_name: str, ssc: int, repository_path: str = "/", - object_id=g.SD_CARD_HANDLER_ID): + object_id: bytearray = g.SD_CARD_HANDLER_ID): """ This function generates a packet which is used to create directories on file systems. @param directory_name: The path where the directory shall be created @@ -234,7 +234,7 @@ def generate_mkdir_srv23_9_packet(directory_name: str, ssc: int, repository_path @param object_id: The object ID of the memory handler which manages the file system :return """ - data_to_pack = object_id + data_to_pack = bytearray(object_id) data_to_pack += bytearray(repository_path, 'utf-8') # Add string terminator to repository path data_to_pack.append(0) @@ -245,7 +245,7 @@ def generate_mkdir_srv23_9_packet(directory_name: str, ssc: int, repository_path def generate_rmdir_srv23_10_packet(directory_name: str, repository_path: str, ssc: int, - object_id=g.SD_CARD_HANDLER_ID): + object_id: bytearray = g.SD_CARD_HANDLER_ID): """ This function generates a packet which deletes the a directory at the specified repository path. @param directory_name: Name of the directory to delete @@ -254,7 +254,7 @@ def generate_rmdir_srv23_10_packet(directory_name: str, repository_path: str, ss @param object_id: object ID of the memory handler (e.g. SD Card Handler) @return The application data field of the (23,10) PUS packet """ - data_to_pack = object_id + data_to_pack = bytearray(object_id) data_to_pack += bytearray(repository_path, 'utf-8') # Add string terminator of repository path data_to_pack.append(0) @@ -265,9 +265,10 @@ def generate_rmdir_srv23_10_packet(directory_name: str, repository_path: str, ss def generate_append_to_file_srv23_128_packet( - filename: str, repository_path: str, ssc: int, file_data: bytearray = bytearray([]), - object_id=g.SD_CARD_HANDLER_ID): - data_to_pack = object_id + filename: str, repository_path: str, packet_sequence_number: int, + ssc: int, file_data: bytearray = bytearray([]), + object_id: bytearray = g.SD_CARD_HANDLER_ID): + data_to_pack = bytearray(object_id) data_to_pack += bytearray(repository_path, 'utf-8') # Add string terminator of repository path data_to_pack.append(0) @@ -275,6 +276,8 @@ def generate_append_to_file_srv23_128_packet( # Add string terminator of filename data_to_pack.append(0) data_to_pack += file_data + data_to_pack.append(packet_sequence_number >> 8) + data_to_pack.append(packet_sequence_number & 0xff) return PusTelecommand(service=23, subservice=128, ssc=ssc, app_data=data_to_pack) @@ -289,7 +292,7 @@ def generate_read_file_srv23_129_packet(repository_path: str, filename: str, ssc @param object_id: object ID of the memory handler (e.g. SD Card Handler) @return: The application data field of the (23,129) PUS packet """ - data_to_pack = object_id + data_to_pack = bytearray(object_id) data_to_pack += bytearray(repository_path, 'utf-8') # Add string terminator of repository paht data_to_pack.append(0) @@ -307,13 +310,14 @@ def pack_service23_test_into(tc_queue: Deque) -> Deque: tc_queue.appendleft(command.pack_command_tuple()) tc_queue.append(("print", "Create subdirectory 'subdir' in 'test'")) command = generate_mkdir_srv23_9_packet(repository_path="test", ssc=2301, - directory_name="subdir") + directory_name="subdir") tc_queue.appendleft(command.pack_command_tuple()) tc_queue.appendleft(("print", "Create test.bin")) command = generate_create_file_srv23_1_packet( - filename="test.bin", repository_path="test/subdir", ssc=2302, - initial_data=bytearray([0x01, 0x00, 0x01, 0x00]), max_size_of_app_data=1024) + filename="test.bin", repository_path="test/subdir", ssc=2302, + initial_data=bytearray([0x01, 0x00, 0x01, 0x00]), + max_size_of_app_data=1024) tc_queue.appendleft(command.pack_command_tuple()) # tc_queue.appendleft(("print", "Read data of test.bin")) # command = generate_service23_subservice129_packet("test/subdir", "test.bin", sd_handler_id) -- GitLab