# -*- coding: utf-8 -*- """ @file str_img_helper.py @brief Commanding of the star tracker image helper object which is responsible for uploading and downloading images to/from the star tracker. @details Images to uplaod must be previously transferred to the OBC with the CFDP protocol. Also downloaded images will be stored on the filesystem of the OBC and can be transferred via CFDP. @author J. Meier @date 29.11.2021 """ import struct from spacepackets.ecss.tc import PusTelecommand from tmtccmd.tc import DefaultPusQueueHelper from tmtccmd.util import ObjectIdU32 class Commands: UPLOAD_IMAGE = 0 DOWNLOAD_IMAGE = 1 class ImagePathDefs: uploadFile = "/mnt/sd0/startracker/gemma.bin" def pack_str_img_helper_command( object_id: ObjectIdU32, q: DefaultPusQueueHelper, op_code: str ): q.add_log_cmd( f"Testing star tracker image helper object id: {object_id.as_hex_string}" ) if op_code == "0": q.add_log_cmd("Star tracker image helper: Upload image") command = ( object_id.as_bytes + struct.pack("!I", Commands.UPLOAD_IMAGE) + bytearray(ImagePathDefs.uploadFile, "utf-8") ) q.add_pus_tc(PusTelecommand(service=8, subservice=128, app_data=command))