import enum from tmtccmd.config.tmtc import ( OpCodeEntry, TmtcDefinitionWrapper, tmtc_definitions_provider, ) from tmtccmd.pus.s8_fsfw_funccmd import create_action_cmd from tmtccmd.tc import DefaultPusQueueHelper from eive_tmtc.config.definitions import CustomServiceList from eive_tmtc.config.object_ids import XIPHOS_WDT_ID class OpCode: ENABLE = "enable" DISABLE = "disable" class Info: ENABLE = "Enable WDT" DISABLE = "Disable WDT" class ActionId(enum.IntEnum): ENABLE = 0 DISABLE = 1 def pack_wdt_commands(q: DefaultPusQueueHelper, op_code: str): if op_code == OpCode.ENABLE: q.add_pus_tc(create_action_cmd(XIPHOS_WDT_ID, ActionId.ENABLE)) if op_code == OpCode.DISABLE: q.add_pus_tc(create_action_cmd(XIPHOS_WDT_ID, ActionId.DISABLE)) @tmtc_definitions_provider def add_xiphos_wdt_defs(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() oce.add(keys=OpCode.ENABLE, info=Info.ENABLE) oce.add(keys=OpCode.DISABLE, info=Info.DISABLE) defs.add_service( CustomServiceList.XIPHOS_WDT, info="Xiphos Watchdog Timer", op_code_entry=oce )