diff --git a/obsw_tmtc_client.py b/obsw_tmtc_client.py index 7a6cb3da69a33c685677b87cd3ac5280362408ce..c5405fc9f869a8b73e2d1784f2ddb11084e44745 100755 --- a/obsw_tmtc_client.py +++ b/obsw_tmtc_client.py @@ -205,7 +205,7 @@ class TmTcHandler: elif self.mode == g.ModeList.BinaryUploadMode: # Upload binary, prompt user for input, in the end prompt for new mode and enter that # mode - perform_binary_upload(self.communication_interface) + perform_binary_upload(self.communication_interface, self.tmtc_printer) self.command_received = True self.mode = g.ModeList.ListenerMode diff --git a/tc/obsw_tc_service23.py b/tc/obsw_tc_service23.py index b4cd8502aa98ccc453381f6254fcf865b45d45fe..513c87d7f3f42acf5b89eec0a21e32a8d332cc81 100644 --- a/tc/obsw_tc_service23.py +++ b/tc/obsw_tc_service23.py @@ -165,6 +165,7 @@ class FileTransferHelper: packet_sequence_number = 0 for i in range(number_of_packets): + print("appending split") 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] diff --git a/tmtc_core b/tmtc_core index 5313a6e1fbc3e15d3b5145c6c7a1b741b843b2f9..156030a9485ee7607b1b82711f37cf5bf91d25a3 160000 --- a/tmtc_core +++ b/tmtc_core @@ -1 +1 @@ -Subproject commit 5313a6e1fbc3e15d3b5145c6c7a1b741b843b2f9 +Subproject commit 156030a9485ee7607b1b82711f37cf5bf91d25a3 diff --git a/utility/obsw_binary_uploader.py b/utility/obsw_binary_uploader.py index 2af1725191e073d05a78a218bec15ede2b04d52e..c489847206e65d2852a4115111de26a9ba92f1ba 100644 --- a/utility/obsw_binary_uploader.py +++ b/utility/obsw_binary_uploader.py @@ -15,12 +15,13 @@ from tmtc_core.comIF.obsw_com_interface import CommunicationInterface from tc.obsw_tc_service23 import FileTransferHelper, generate_generic_folder_structure import config.obsw_config as g from tmtc_core.tc.obsw_pus_tc_base import PusTelecommand +from tmtc_core.utility.obsw_tmtc_printer import TmTcPrinter, DisplayMode from tmtc_core.utility.obsw_logger import get_logger LOGGER = get_logger() -def perform_binary_upload(com_if: CommunicationInterface): +def perform_binary_upload(com_if: CommunicationInterface, tmtc_printer: TmTcPrinter): print("Please select file to upload") root = tk.Tk() root.withdraw() @@ -54,30 +55,44 @@ def perform_binary_upload(com_if: CommunicationInterface): print("Generating folder structure..") tc_queue = deque() - generate_generic_folder_structure(tc_queue, 0) + + # generate_generic_folder_structure(tc_queue, 0) + # while tc_queue: + # (tc_packet, tc_info) = tc_queue.pop() + # if not isinstance(tc_packet, str): + # com_if.send_telecommand(tc_packet, tc_info) + # elif tc_packet == "print": + # LOGGER.info(tc_info) + # + # time.sleep(0.5) + # tm_list = com_if.receive_telemetry() + # LOGGER.info(str(len(tm_list)) + " TM packets received..") + + # Delete existing binary file first, otherwise data might be appended to otherwise + # valid file which already exists. + file_transfer_helper = FileTransferHelper( + tc_queue=tc_queue, max_size_of_app_data=1500, target_repository="BIN/AT91/BL", + target_filename="bl.bin") + + init_ssc = 0 + tmtc_printer.set_display_mode(DisplayMode.SHORT) + file_transfer_helper.set_data_from_file(file_path) + file_transfer_helper.set_to_delete_old_file() + file_transfer_helper.generate_packets(init_ssc) + + idx = 1 while tc_queue: (tc_packet, tc_info) = tc_queue.pop() if not isinstance(tc_packet, str): + print_string = "Sending packet " + str(idx) + LOGGER.info(print_string) com_if.send_telecommand(tc_packet, tc_info) elif tc_packet == "print": LOGGER.info(tc_info) - time.sleep(0.2) + time.sleep(5.0) tm_list = com_if.receive_telemetry() - LOGGER.info(str(len(tm_list)) + " TM packets received..") - - # Delete existing binary file first, otherwise data might be appended to otherwise - # valid file which already exists. - # file_transfer_helper = FileTransferHelper( - # tc_queue=tc_queue, max_size_of_app_data=1500, target_repository="BIN/AT91/BL", - # target_filename="bl.bin") - # - # file_transfer_helper.generate_packets(1) - # file_transfer_helper.set_to_delete_old_file() - # # We have to split the binary here first - # # generate_append_to_file_packets_automatically(tc_queue, ,, 1024, data_to_read) - # while tc_queue: - # (tc_packet, tc_info) = tc_queue.pop() - # com_if.send_telecommand(tc_packet, tc_info) - # print("Sending..") - # time.sleep(30.0) + for tm_packet in tm_list: + # gotta configure tm listener for this to work.. + tmtc_printer.print_telemetry(tm_packet) + LOGGER.info("All binary packets sent!")