diff --git a/.idea/runConfigurations/Star_Tracker.xml b/.idea/runConfigurations/Star_Tracker.xml deleted file mode 100644 index bb2cf5e..0000000 --- a/.idea/runConfigurations/Star_Tracker.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - \ No newline at end of file diff --git a/config/hook_implementations.py b/config/hook_implementations.py index 471355e..aefbd7f 100644 --- a/config/hook_implementations.py +++ b/config/hook_implementations.py @@ -302,7 +302,10 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT): service_ploc_updater_tuple = ("Ploc Updater", op_code_dict_srv_ploc_updater) op_code_dict_srv_star_tracker = { - "0": ("Star Tracker: Mode On, Submode Bootloader", {OpCodeDictKeys.TIMEOUT: 2.0}), + "0": ( + "Star Tracker: Mode On, Submode Bootloader", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), "1": ("Star Tracker: Mode On, Submode Firmware", {OpCodeDictKeys.TIMEOUT: 2.0}), "2": ("Star Tracker: Mode Normal", {OpCodeDictKeys.TIMEOUT: 2.0}), "3": ("Star Tracker: Mode Off", {OpCodeDictKeys.TIMEOUT: 2.0}), @@ -316,7 +319,10 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT): "8": ("Star Tracker: Request version", {OpCodeDictKeys.TIMEOUT: 2.0}), "9": ("Star Tracker: Request interface", {OpCodeDictKeys.TIMEOUT: 2.0}), "10": ("Star Tracker: Request power", {OpCodeDictKeys.TIMEOUT: 2.0}), - "11": ("Star Tracker: Subscribe to telemetry", {OpCodeDictKeys.TIMEOUT: 2.0}), + "11": ( + "Star Tracker: Set subscription parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), "12": ( "Star Tracker: Boot image (requires bootloader mode)", {OpCodeDictKeys.TIMEOUT: 2.0}, @@ -325,19 +331,23 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT): "14": ("Star Tracker: Request solution", {OpCodeDictKeys.TIMEOUT: 2.0}), "15": ("Star Tracker: Upload image", {OpCodeDictKeys.TIMEOUT: 2.0}), "16": ("Star Tracker: Download image", {OpCodeDictKeys.TIMEOUT: 2.0}), - "17": ("Star Tracker: Limits", {OpCodeDictKeys.TIMEOUT: 2.0}), - "18": ("Star Tracker: Tracking", {OpCodeDictKeys.TIMEOUT: 2.0}), - "19": ("Star Tracker: Mounting", {OpCodeDictKeys.TIMEOUT: 2.0}), - "20": ("Star Tracker: Camera", {OpCodeDictKeys.TIMEOUT: 2.0}), - "21": ("Star Tracker: Blob", {OpCodeDictKeys.TIMEOUT: 2.0}), - "22": ("Star Tracker: Centroiding", {OpCodeDictKeys.TIMEOUT: 2.0}), - "23": ("Star Tracker: LISA", {OpCodeDictKeys.TIMEOUT: 2.0}), - "24": ("Star Tracker: Matching", {OpCodeDictKeys.TIMEOUT: 2.0}), - "25": ("Star Tracker: Validation", {OpCodeDictKeys.TIMEOUT: 2.0}), - "26": ("Star Tracker: Algo", {OpCodeDictKeys.TIMEOUT: 2.0}), + "17": ("Star Tracker: Set limit parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "18": ("Star Tracker: Set tracking parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "19": ("Star Tracker: Set mounting parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "20": ("Star Tracker: Set camera parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "22": ( + "Star Tracker: Set centroiding parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "23": ("Star Tracker: Set LISA parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "24": ("Star Tracker: Set matching parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "25": ( + "Star Tracker: Set validation parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "26": ("Star Tracker: Set algo parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), "27": ("Star Tracker: Take image", {OpCodeDictKeys.TIMEOUT: 2.0}), "28": ("Star Tracker: Stop str helper", {OpCodeDictKeys.TIMEOUT: 2.0}), - "29": ("Star Tracker: Reset error signal", {OpCodeDictKeys.TIMEOUT: 2.0}), "30": ( "Star Tracker: Set name of download image", {OpCodeDictKeys.TIMEOUT: 2.0}, @@ -345,47 +355,74 @@ def get_eive_service_op_code_dict(service_op_code_dict: ServiceOpCodeDictT): "31": ("Star Tracker: Request histogram", {OpCodeDictKeys.TIMEOUT: 2.0}), "32": ("Star Tracker: Request contrast", {OpCodeDictKeys.TIMEOUT: 2.0}), "33": ("Star Tracker: Set json filename", {OpCodeDictKeys.TIMEOUT: 2.0}), - "34": ("Star Tracker: Write", {OpCodeDictKeys.TIMEOUT: 2.0}), - "35": ("Star Tracker: Read", {OpCodeDictKeys.TIMEOUT: 2.0}), - "36": ("Star Tracker: Set Read filename", {OpCodeDictKeys.TIMEOUT: 2.0}), + "35": ("Star Tracker: Flash read", {OpCodeDictKeys.TIMEOUT: 2.0}), + "36": ("Star Tracker: Set flash read filename", {OpCodeDictKeys.TIMEOUT: 2.0}), "37": ("Star Tracker: Get checksum", {OpCodeDictKeys.TIMEOUT: 2.0}), - "38": ("Star Tracker: Set time", {OpCodeDictKeys.TIMEOUT: 2.0}), - "39": ("Star Tracker: Download centroid", {OpCodeDictKeys.TIMEOUT: 2.0}), - "40": ( - "Star Tracker: Upload centroid (not implemented?)", - {OpCodeDictKeys.TIMEOUT: 2.0}, - ), - "41": ("Star Tracker: Download matched star", {OpCodeDictKeys.TIMEOUT: 2.0}), - "42": ("Star Tracker: Download DB Image", {OpCodeDictKeys.TIMEOUT: 2.0}), - "43": ("Star Tracker: Download Blob Pixel", {OpCodeDictKeys.TIMEOUT: 2.0}), - "44": ("Star Tracker: Download FPGA Image", {OpCodeDictKeys.TIMEOUT: 2.0}), - "45": ( - "Star Tracker: Change download FPGA image name", - {OpCodeDictKeys.TIMEOUT: 2.0}, - ), - "46": ("Star Tracker: Upload FPGA image", {OpCodeDictKeys.TIMEOUT: 2.0}), - "47": ("Star Tracker: FPGA action", {OpCodeDictKeys.TIMEOUT: 2.0}), - "48": ("Star Tracker: Unlock", {OpCodeDictKeys.TIMEOUT: 2.0}), "49": ("Star Tracker: Request camera parameter", {OpCodeDictKeys.TIMEOUT: 2.0}), "50": ("Star Tracker: Request limits", {OpCodeDictKeys.TIMEOUT: 2.0}), - "51": ("Star Tracker: Set image processor parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "52": ("Star Tracker: (EGSE only) Load camera ground config ", {OpCodeDictKeys.TIMEOUT: 2.0}), - "53": ("Star Tracker: (EGSE only) Load camera flight config", {OpCodeDictKeys.TIMEOUT: 2.0}), - "54": ("Star Tracker: Request log level parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "55": ("Star Tracker: Request mounting parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "56": ("Star Tracker: Request image processor parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "57": ("Star Tracker: Request centroiding parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "51": ( + "Star Tracker: Set image processor parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "52": ( + "Star Tracker: (EGSE only) Load camera ground config ", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "53": ( + "Star Tracker: (EGSE only) Load camera flight config", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "54": ( + "Star Tracker: Request log level parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "55": ( + "Star Tracker: Request mounting parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "56": ( + "Star Tracker: Request image processor parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "57": ( + "Star Tracker: Request centroiding parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), "58": ("Star Tracker: Request lisa parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "59": ("Star Tracker: Request matching parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "60": ("Star Tracker: Request tracking parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "61": ("Star Tracker: Request validation parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "59": ( + "Star Tracker: Request matching parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "60": ( + "Star Tracker: Request tracking parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "61": ( + "Star Tracker: Request validation parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), "62": ("Star Tracker: Request algo parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "63": ("Star Tracker: Request subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "64": ("Star Tracker: Request log subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "65": ("Star Tracker: Request debug camera parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "63": ( + "Star Tracker: Request subscription parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "64": ( + "Star Tracker: Request log subscription parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "65": ( + "Star Tracker: Request debug camera parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), "66": ("Star Tracker: Set log level parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "67": ("Star Tracker: Set log subscription parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), - "68": ("Star Tracker: Set debug camera parameters", {OpCodeDictKeys.TIMEOUT: 2.0}), + "67": ( + "Star Tracker: Set log subscription parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), + "68": ( + "Star Tracker: Set debug camera parameters", + {OpCodeDictKeys.TIMEOUT: 2.0}, + ), "69": ("Star Tracker: Firmware update", {OpCodeDictKeys.TIMEOUT: 2.0}), } service_star_tracker_tuple = ("Star tracker", op_code_dict_srv_star_tracker) diff --git a/pus_tc/pdu1.py b/pus_tc/pdu1.py index 95419f6..1df00fe 100644 --- a/pus_tc/pdu1.py +++ b/pus_tc/pdu1.py @@ -134,7 +134,9 @@ def pack_pdu1_commands(object_id: bytearray, tc_queue: TcQueueT, op_code: str): ) tc_queue.appendleft(command.pack_command_tuple()) if op_code == Pdu1OpCodes.SCEX_ON.value: - tc_queue.appendleft((QueueCommands.PRINT, "PDU1: Turn Solar Cell Experiment on")) + tc_queue.appendleft( + (QueueCommands.PRINT, "PDU1: Turn Solar Cell Experiment on") + ) command = pack_set_param_command( object_id, PDUConfigTable.out_en_5.parameter_address, @@ -143,7 +145,9 @@ def pack_pdu1_commands(object_id: bytearray, tc_queue: TcQueueT, op_code: str): ) tc_queue.appendleft(command.pack_command_tuple()) if op_code == Pdu1OpCodes.SCEX_OFF.value: - tc_queue.appendleft((QueueCommands.PRINT, "PDU1: Turn Solar Cell Experiment off")) + tc_queue.appendleft( + (QueueCommands.PRINT, "PDU1: Turn Solar Cell Experiment off") + ) command = pack_set_param_command( object_id, PDUConfigTable.out_en_5.parameter_address, diff --git a/pus_tc/star_tracker.py b/pus_tc/star_tracker.py index e9e4d43..42b7dbf 100644 --- a/pus_tc/star_tracker.py +++ b/pus_tc/star_tracker.py @@ -49,14 +49,14 @@ class StarTrackerActionIds: VALIDATION = 48 ALGO = 49 CHECKSUM = 50 - READ = 51 - WRITE = 52 + FLASH_READ = 51 + FLASH_WRITE = 52 DOWNLOAD_MATCHED_STAR = 53 STOP_STR_HELPER = 55 RESET_ERROR = 56 CHANGE_DOWNLOAD_IMAGE = 57 SET_JSON_FILE_NAME = 58 - SET_READ_FILENAME = 59 + SET_FLASH_READ_FILENAME = 59 SET_TIME = 60 DOWNLOAD_DBIMAGE = 61 DOWNLOAD_BLOBPIXEL = 62 @@ -85,30 +85,31 @@ class StarTrackerActionIds: class FileDefs: - uploadFile = "/mnt/sd0/startracker/gemma.bin" - downloadFile = "test_image.bin" - downloadPath = "/mnt/sd0/startracker" - jsonFile = "/mnt/sd0/startracker/full.json" - flashFile = "/mnt/sd0/startracker/flash.bin" - flashReadPath = "/mnt/sd0/startracker" - uploadCentroidJson = "/mnt/sd0/startracker/upload-centroid.json" - downloadFpgaImagePath = "/mnt/sd0/startracker" - downloadFpgaImageName = "testname" - uploadFpgaImageName = "/mnt/sd0/startracker/fpga-image.bin" - egseGroundConfig = "/home/pi/arcsec/ground-config.json" - egseFlightConfig = "/home/pi/arcsec/flight-config.json" - q7sGroundConfig = "/mnt/sd0/startracker/ground-config.json" - q7sFlightConfig = "/mnt/sd0/startracker/flight-config.json" - firmware2_1 = "/home/pi/arcsec/firmware/sagitta2-1.bin" - firmware22_1 = "/home/pi/arcsec/firmware/sagitta-22.1.bin" - firmware_origin = "/home/arcsec/21-921600/sagitta.bin" + download_path = "/mnt/sd0/startracker" + json_file = "/mnt/sd0/startracker/full.json" + egse_ground_config = "/home/pi/arcsec/json/ground-config.json" + egse_flight_config = "/home/pi/arcsec/json/flight-config.json" + egse_solution_upload_img_config = "/home/pi/arcsec/json/upload-image-solution.json" + egse_histogram_upload_img_config = ( + "/home/pi/arcsec/json/upload-image-histogram.json" + ) + q7s_ground_config = "/mnt/sd0/startracker/json/ground-config.json" + q7s_flight_config = "/mnt/sd0/startracker/flight-config.json" json_dict = { - "1": ["Q7S flight config", FileDefs.q7sFlightConfig], - "2": ["Q7S ground config", FileDefs.q7sGroundConfig], - "3": ["EGSE flight config", FileDefs.egseFlightConfig], - "4": ["EGSE ground config", FileDefs.egseGroundConfig] + "1": ["Q7S flight config", FileDefs.q7s_flight_config], + "2": ["Q7S ground config", FileDefs.q7s_ground_config], + "3": ["EGSE flight config", FileDefs.egse_flight_config], + "4": ["EGSE ground config", FileDefs.egse_ground_config], + "5": [ + "EGSE get solution, upload image config", + FileDefs.egse_solution_upload_img_config, + ], + "6": [ + "EGSE get histogram, upload image config", + FileDefs.egse_solution_upload_img_config, + ], } firmware_dict = { @@ -117,20 +118,23 @@ firmware_dict = { "3": ["Firmware Origin", FileDefs.firmware_origin], } +upload_image_dict = { + "1": ["q7s gemma", "/mnt/sd0/startracker/gemma.bin"], + "2": ["egse gemma", "/home/pi/arcsec/star-images/gemma.bin"], + "3": ["q7s polaris", "/mnt/sd0/startracker/polaris.bin"], + "4": ["egse polaris", "/home/pi/arcsec/star-images/polaris.bin"], +} -class Region: + +class StartRegion: # Definition according to datasheet (which turned out to be partially faulty) BOOTLOADER = 0 STAR_TRACKER_FIRMWARE = 1 - FREE_1 = 2 - FREE_2 = 3 class PartitionSize: - BOOTLOADER = 128000 - STAR_TRACKER_FIRMWARE = 896000 - FREE_1 = 128000 - FREE_2 = 896000 + # Size of most recent firmware image + STAR_TRACKER_FIRMWARE = 464572 class Submode: @@ -139,7 +143,7 @@ class Submode: def pack_star_tracker_commands( - object_id: bytearray, tc_queue: TcQueueT, op_code: str + object_id: bytearray, tc_queue: TcQueueT, op_code: str ) -> TcQueueT: tc_queue.appendleft( ( @@ -149,12 +153,16 @@ def pack_star_tracker_commands( ) if op_code == "0": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Mode On, Submode Bootloader")) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Mode On, Submode Bootloader") + ) command = pack_mode_data(object_id, Modes.ON, Submode.BOOTLOADER) command = PusTelecommand(service=200, subservice=1, ssc=9, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "1": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Mode On, Submode Firmware")) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Mode On, Submode Firmware") + ) command = pack_mode_data(object_id, Modes.ON, Submode.FIRMWARE) command = PusTelecommand(service=200, subservice=1, ssc=10, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -211,11 +219,11 @@ def pack_star_tracker_commands( tc_queue.appendleft( (QueueCommands.PRINT, "Star tracker: Set subscription parameters") ) - jsonfile = get_config_file() + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.SUBSCRIPTION) - + bytearray(jsonfile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.SUBSCRIPTION) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=36, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -236,10 +244,11 @@ def pack_star_tracker_commands( tc_queue.appendleft(command.pack_command_tuple()) if op_code == "15": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Upload image")) + image = get_upload_image() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.UPLOAD_IMAGE) - + bytearray(FileDefs.uploadFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.UPLOAD_IMAGE) + + bytearray(image, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=40, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -247,20 +256,21 @@ def pack_star_tracker_commands( tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Download image")) path = input("Specify storage location (default - /mnt/sd0/startracker): ") if not path: - path = FileDefs.downloadPath + path = FileDefs.download_path command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_IMAGE) - + bytearray(path, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_IMAGE) + + bytearray(path, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=53, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "17": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set limits")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.LIMITS) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.LIMITS) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=42, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -268,93 +278,91 @@ def pack_star_tracker_commands( tc_queue.appendleft( (QueueCommands.PRINT, "Star tracker: Set tracking parameters") ) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.TRACKING) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.TRACKING) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=43, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "19": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Mounting")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.MOUNTING) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.MOUNTING) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=44, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "20": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Camera")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.CAMERA) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.CAMERA) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=45, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) - if op_code == "21": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Blob")) - command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.BLOB) - + bytearray(FileDefs.jsonFile, "utf-8") - ) - command = PusTelecommand(service=8, subservice=128, ssc=46, app_data=command) - tc_queue.appendleft(command.pack_command_tuple()) if op_code == "22": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Centroiding")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.CENTROIDING) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.CENTROIDING) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=47, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "23": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: LISA")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.LISA) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.LISA) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=48, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "24": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Matching")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.MATCHING) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.MATCHING) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=49, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "25": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Validation")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.VALIDATION) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.VALIDATION) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=50, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "26": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Algo")) - jsonfile = get_config_file() + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.ALGO) - + bytearray(jsonfile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.ALGO) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=51, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "27": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Take image")) - actionid = int(input("Specify parameter ID (nominal - 4): ")) + actionid = int(input("Specify parameter ID (take image - 4): ")) command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.TAKE_IMAGE) - + struct.pack("!B", actionid) + object_id + + struct.pack("!I", StarTrackerActionIds.TAKE_IMAGE) + + struct.pack("!B", actionid) ) command = PusTelecommand(service=8, subservice=128, ssc=52, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -363,20 +371,15 @@ def pack_star_tracker_commands( command = object_id + struct.pack("!I", StarTrackerActionIds.STOP_STR_HELPER) command = PusTelecommand(service=8, subservice=128, ssc=54, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) - if op_code == "29": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Reset error signal")) - command = object_id + struct.pack("!I", StarTrackerActionIds.RESET_ERROR) - command = PusTelecommand(service=8, subservice=128, ssc=54, app_data=command) - tc_queue.appendleft(command.pack_command_tuple()) if op_code == "30": tc_queue.appendleft( (QueueCommands.PRINT, "Star tracker: Set name of download image") ) filename = input("Specify download image name: ") command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.CHANGE_DOWNLOAD_IMAGE) - + bytearray(filename, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.CHANGE_DOWNLOAD_IMAGE) + + bytearray(filename, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=54, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -392,30 +395,28 @@ def pack_star_tracker_commands( tc_queue.appendleft(command.pack_command_tuple()) if op_code == "33": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set json filename")) + json_file = get_config_file() command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.SET_JSON_FILE_NAME) - + bytearray(FileDefs.jsonFile, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.SET_JSON_FILE_NAME) + + bytearray(json_file, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=57, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) - if op_code == "34": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Write")) - command = pack_write_command(object_id) - command = PusTelecommand(service=8, subservice=128, ssc=58, app_data=command) - tc_queue.appendleft(command.pack_command_tuple()) if op_code == "35": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Read")) + tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Flash read")) command = pack_read_command(object_id) command = PusTelecommand(service=8, subservice=128, ssc=59, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "36": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set read filename")) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Set flash read filename") + ) filename = input("Specify filename: ") command = ( - object_id - + StarTrackerActionIds.SET_READ_FILENAME - + bytearray(filename, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.SET_FLASH_READ_FILENAME) + + bytearray(filename, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=60, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -428,9 +429,9 @@ def pack_star_tracker_commands( tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set time")) unix_time = 1640783543 command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.SET_TIME) - + struct.pack("!Q", unix_time) + object_id + + struct.pack("!I", StarTrackerActionIds.SET_TIME) + + struct.pack("!Q", unix_time) ) command = PusTelecommand(service=8, subservice=128, ssc=61, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -438,30 +439,21 @@ def pack_star_tracker_commands( tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Download Centroid")) id = 0 command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_CENTROID) - + struct.pack("!B", id) + object_id + + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_CENTROID) + + struct.pack("!B", id) ) command = PusTelecommand(service=8, subservice=128, ssc=62, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) - if op_code == "40": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Upload Centroid")) - command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.UPLOAD_CENTROID) - + bytearray(FileDefs.uploadCentroidJson, "utf-8") - ) - command = PusTelecommand(service=8, subservice=128, ssc=63, app_data=command) - tc_queue.appendleft(command.pack_command_tuple()) if op_code == "41": tc_queue.appendleft( (QueueCommands.PRINT, "Star tracker: Download matched star") ) id = 0 command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_MATCHED_STAR) - + struct.pack("!B", id) + object_id + + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_MATCHED_STAR) + + struct.pack("!B", id) ) command = PusTelecommand(service=8, subservice=128, ssc=64, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -469,9 +461,9 @@ def pack_star_tracker_commands( tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Download DB Image")) id = 0 command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_DBIMAGE) - + struct.pack("!B", id) + object_id + + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_DBIMAGE) + + struct.pack("!B", id) ) command = PusTelecommand(service=8, subservice=128, ssc=65, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -480,10 +472,10 @@ def pack_star_tracker_commands( id = 0 type = 1 # 0 - normal, 1 - fast command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_BLOBPIXEL) - + struct.pack("!B", id) - + struct.pack("!B", type) + object_id + + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_BLOBPIXEL) + + struct.pack("!B", id) + + struct.pack("!B", type) ) command = PusTelecommand(service=8, subservice=128, ssc=65, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -492,11 +484,11 @@ def pack_star_tracker_commands( position = int(input("Start position: ")) length = int(input("Size to download: ")) command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_FPGA_IMAGE) - + struct.pack("!I", position) - + struct.pack("!I", length) - + bytearray(FileDefs.downloadFpgaImagePath, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.DOWNLOAD_FPGA_IMAGE) + + struct.pack("!I", position) + + struct.pack("!I", length) + + bytearray(FileDefs.downloadFpgaImagePath, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=66, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -505,18 +497,18 @@ def pack_star_tracker_commands( (QueueCommands.PRINT, "Star tracker: Change donwload FPGA image file name") ) command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.CHANGE_FPGA_DOWNLOAD_FILE) - + bytearray(FileDefs.downloadFpgaImageName, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.CHANGE_FPGA_DOWNLOAD_FILE) + + bytearray(FileDefs.downloadFpgaImageName, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=67, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "46": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Upload FPGA image")) command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.UPLOAD_FPGA_IMAGE) - + bytearray(FileDefs.uploadFpgaImageName, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.UPLOAD_FPGA_IMAGE) + + bytearray(FileDefs.uploadFpgaImageName, "utf-8") ) command = PusTelecommand(service=8, subservice=128, ssc=68, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -524,9 +516,9 @@ def pack_star_tracker_commands( tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: FPGA action")) id = 3 command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.FPGA_ACTION) - + struct.pack("!B", id) + object_id + + struct.pack("!I", StarTrackerActionIds.FPGA_ACTION) + + struct.pack("!B", id) ) command = PusTelecommand(service=8, subservice=128, ssc=69, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) @@ -548,147 +540,225 @@ def pack_star_tracker_commands( command = PusTelecommand(service=8, subservice=128, ssc=72, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "51": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set image processor parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.IMAGE_PROCESSOR) + \ - bytearray(FileDefs.jsonFile, 'utf-8') + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Set image processor parameters") + ) + json_file = get_config_file() + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.IMAGE_PROCESSOR) + + bytearray(json_file, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=70, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "52": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: EGSE load ground config camera parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.CAMERA) + \ - bytearray(FileDefs.egseGroundConfig, 'utf-8') + tc_queue.appendleft( + ( + QueueCommands.PRINT, + "Star tracker: EGSE load ground config camera parameters", + ) + ) + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.CAMERA) + + bytearray(FileDefs.egse_ground_config, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=71, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "53": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: EGSE load flight config camera parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.CAMERA) + \ - bytearray(FileDefs.egseFlightConfig, 'utf-8') + tc_queue.appendleft( + ( + QueueCommands.PRINT, + "Star tracker: EGSE load flight config camera parameters", + ) + ) + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.CAMERA) + + bytearray(FileDefs.egse_flight_config, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=72, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "54": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request log level parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_LOG_LEVEL) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request log level parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_LOG_LEVEL) command = PusTelecommand(service=8, subservice=128, ssc=74, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "55": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request mounting parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_MOUNTING) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request mounting parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_MOUNTING) command = PusTelecommand(service=8, subservice=128, ssc=75, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "56": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request image processor parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_IMAGE_PROCESSOR) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request image processor parameters") + ) + command = object_id + struct.pack( + "!I", StarTrackerActionIds.REQ_IMAGE_PROCESSOR + ) command = PusTelecommand(service=8, subservice=128, ssc=76, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "57": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request centroiding parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_CENTROIDING) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request centroiding parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_CENTROIDING) command = PusTelecommand(service=8, subservice=128, ssc=75, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "58": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request lisa parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_LISA) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request lisa parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_LISA) command = PusTelecommand(service=8, subservice=128, ssc=76, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "59": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request matching parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_MATCHING) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request matching parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_MATCHING) command = PusTelecommand(service=8, subservice=128, ssc=77, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "60": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request tracking parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_TRACKING) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request tracking parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_TRACKING) command = PusTelecommand(service=8, subservice=128, ssc=78, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "61": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request validation parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_VALIDATION) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request validation parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_VALIDATION) command = PusTelecommand(service=8, subservice=128, ssc=79, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "62": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request algo parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_ALGO) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request algo parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_ALGO) command = PusTelecommand(service=8, subservice=128, ssc=80, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "63": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request subscription parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_SUBSCRIPTION) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request subscription parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_SUBSCRIPTION) command = PusTelecommand(service=8, subservice=128, ssc=81, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "64": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request log subscription parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_LOG_SUBSCRIPTION) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request log subscription parameters") + ) + command = object_id + struct.pack( + "!I", StarTrackerActionIds.REQ_LOG_SUBSCRIPTION + ) command = PusTelecommand(service=8, subservice=128, ssc=82, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "65": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Request debug camera parameters")) - command = object_id + struct.pack('!I', StarTrackerActionIds.REQ_DEBUG_CAMERA) + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Request debug camera parameters") + ) + command = object_id + struct.pack("!I", StarTrackerActionIds.REQ_DEBUG_CAMERA) command = PusTelecommand(service=8, subservice=128, ssc=83, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "66": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set log level parameters")) - jsonfile = get_config_file() - command = object_id + struct.pack('!I', StarTrackerActionIds.LOGLEVEL) + bytearray(jsonfile, "utf-8") + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Set log level parameters") + ) + json_file = get_config_file() + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.LOGLEVEL) + + bytearray(json_file, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=84, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "67": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set log subscription parameters")) - jsonfile = get_config_file() - command = object_id + struct.pack('!I', StarTrackerActionIds.LOG_SUBSCRIPTION) + bytearray(jsonfile, "utf-8") + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Set log subscription parameters") + ) + json_file = get_config_file() + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.LOG_SUBSCRIPTION) + + bytearray(json_file, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=85, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "68": - tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Set debug camera parameters")) - jsonfile = get_config_file() - command = object_id + struct.pack('!I', StarTrackerActionIds.DEBUG_CAMERA) + bytearray(jsonfile, "utf-8") + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Set debug camera parameters") + ) + json_file = get_config_file() + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.DEBUG_CAMERA) + + bytearray(json_file, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=86, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) if op_code == "69": tc_queue.appendleft((QueueCommands.PRINT, "Star tracker: Firmware update")) firmware = get_firmware() - command = object_id + struct.pack('!I', StarTrackerActionIds.FIRMWARE_UPDATE) + bytearray(firmware, "utf-8") + command = ( + object_id + + struct.pack("!I", StarTrackerActionIds.FIRMWARE_UPDATE) + + bytearray(firmware, "utf-8") + ) command = PusTelecommand(service=8, subservice=128, ssc=87, app_data=command) tc_queue.appendleft(command.pack_command_tuple()) + if op_code == "70": + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Disable timestamp generation") + ) + command = object_id + struct.pack( + "!I", StarTrackerActionIds.DISBALE_TIMESTAMP_GENERATION + ) + command = PusTelecommand(service=8, subservice=128, ssc=88, app_data=command) + tc_queue.appendleft(command.pack_command_tuple()) + if op_code == "71": + tc_queue.appendleft( + (QueueCommands.PRINT, "Star tracker: Enable timestamp generation") + ) + command = object_id + struct.pack( + "!I", StarTrackerActionIds.ENABLE_TIMESTAMP_GENERATION + ) + command = PusTelecommand(service=8, subservice=128, ssc=89, app_data=command) + tc_queue.appendleft(command.pack_command_tuple()) -def pack_write_command(object_id: bytearray) -> bytearray: - region = Region.FREE_1 - address = 0 - command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.WRITE) - + struct.pack("!B", region) - + struct.pack("!I", address) - + bytearray(FileDefs.flashFile, "utf-8") - ) - return command - - def pack_read_command(object_id: bytearray) -> bytearray: - region = Region.STAR_TRACKER_FIRMWARE - address = 0 + start_region = StartRegion.STAR_TRACKER_FIRMWARE size = PartitionSize.STAR_TRACKER_FIRMWARE + path = input("Specify storage location (default - /mnt/sd0/startracker): ") + if not path: + path = FileDefs.download_path command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.READ) - + struct.pack("!B", region) - + struct.pack("!I", address) - + struct.pack("!I", size) - + bytearray(FileDefs.flashReadPath, "utf-8") + object_id + + struct.pack("!I", StarTrackerActionIds.FLASH_READ) + + struct.pack("!B", start_region) + + struct.pack("!I", size) + + bytearray(path, "utf-8") ) return command def pack_checksum_command(object_id: bytearray) -> bytearray: - region = Region.STAR_TRACKER_FIRMWARE + start_region = StartRegion.STAR_TRACKER_FIRMWARE address = 0 size = PartitionSize.STAR_TRACKER_FIRMWARE command = ( - object_id - + struct.pack("!I", StarTrackerActionIds.CHECKSUM) - + struct.pack("!B", region) - + struct.pack("!I", address) - + struct.pack("!I", size) + object_id + + struct.pack("!I", StarTrackerActionIds.CHECKSUM) + + struct.pack("!B", start_region) + + struct.pack("!I", address) + + struct.pack("!I", size) ) return command @@ -697,8 +767,8 @@ def get_config_file() -> str: LOGGER.info("Specify json file") input_helper = InputHelper(json_dict) key = input_helper.get_key() - jsonfile = json_dict[key][1] - return jsonfile + json_file = json_dict[key][1] + return json_file def get_firmware() -> str: @@ -707,3 +777,11 @@ def get_firmware() -> str: key = input_helper.get_key() firmware = firmware_dict[key][1] return firmware + + +def get_upload_image() -> str: + LOGGER.info("Specify image to upload") + input_helper = InputHelper(upload_image_dict) + key = input_helper.get_key() + image = upload_image_dict[key][1] + return image diff --git a/utility/input_helper.py b/utility/input_helper.py index cd058ec..96c10e3 100644 --- a/utility/input_helper.py +++ b/utility/input_helper.py @@ -12,17 +12,16 @@ LOGGER = get_console_logger() class InputHelper: - def __init__(self, menu: dict): """ @brief Constructor - @param menu The describing the input options + @param menu The menu describing the input options """ self.menu = menu def get_key(self) -> str: """ - @brief Ask the user for input and returns the chosen key + @brief Asks the user for input and returns the chosen key """ key = self.menu_handler() while key not in self.menu: @@ -45,5 +44,3 @@ class InputHelper: LOGGER.info(f"{key_string} | {description_string}") key = input("Specify key: ") return key - -