import struct from eive_tmtc.config.definitions import CustomServiceList from tmtccmd.config import TmtcDefinitionWrapper from tmtccmd.config.tmtc import tmtc_definitions_provider, OpCodeEntry from tmtccmd.tc import service_provider from tmtccmd.tc.decorator import ServiceProviderParams from dateutil.parser import parse class OpCode: DUMP = "dump" DELETE = "delete" class Info: DUMP = "Dump Telemetry Packets" DELETE = "Delete Telemetry Packets" @service_provider(CustomServiceList.TM_STORE) def pack_tm_store_commands(p: ServiceProviderParams): q = p.queue_helper o = p.op_code if o == OpCode.DELETE: q.add_log_cmd(Info.DELETE) delete_start_time = parse( input( "Please enter delete start time in UTC ISO format (YYYY-MM-DDThh:mm:ssZ" ) ) delete_end_time = parse( input( "Please enter delete end time in UTC ISO format (YYYY-MM-DDThh:mm:ssZ" ) ) start_stamp = delete_start_time.timestamp() end_stamp = delete_end_time.timestamp() app_data = bytearray(struct.pack("!I", start_stamp)) app_data.extend(struct.pack("!I", end_stamp)) pass elif o == OpCode.DUMP: q.add_log_cmd(Info.DUMP) pass @tmtc_definitions_provider def add_persistent_tm_store_cmd_defs(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() oce.add(keys=OpCode.DELETE, info=Info.DELETE) oce.add(keys=OpCode.DUMP, info=Info.DUMP) defs.add_service( CustomServiceList.TM_STORE, "Persistent TM Store", op_code_entry=oce )