from datetime import datetime from config.definitions import CustomServiceList from spacepackets.ecss import PusTelecommand from tmtccmd import DefaultProcedureInfo, TcHandlerBase from tmtccmd.logging import get_console_logger from tmtccmd.tc import DefaultPusQueueHelper, service_provider from tmtccmd.tc.decorator import ServiceProviderParams LOGGER = get_console_logger() class OpCodes: SET_CURRENT_TIME = ["0", "set-curr-time"] class Info: SET_CURRENT_TIME = "Setting current time in ASCII format" @service_provider(CustomServiceList.TIME.value) def pack_set_current_time_ascii_command(p: ServiceProviderParams): q = p.queue_helper time_test_current_time = datetime.utcnow().isoformat() + "Z" + "\0" current_time_ascii = time_test_current_time.encode("ascii") LOGGER.info(f"Current time in ASCII format: {current_time_ascii}") q.add_log_cmd(Info.SET_CURRENT_TIME) q.add_pus_tc(PusTelecommand(service=9, subservice=128, app_data=current_time_ascii))