from eive_tmtc.config.definitions import CustomServiceList from eive_tmtc.config.object_ids import TCS_CONTROLLER from eive_tmtc.tmtc.tcs import CtrlSetId from eive_tmtc.tmtc.tcs.brd_assy import pack_tcs_ass_cmds from tmtccmd.config.tmtc import ( CmdTreeNode, tmtc_definitions_provider, TmtcDefinitionWrapper, OpCodeEntry, ) from tmtccmd.tmtc import DefaultPusQueueHelper from tmtccmd.pus.tc.s3_fsfw_hk import ( make_sid, generate_one_hk_command, create_request_one_diag_command, create_request_one_hk_command, create_enable_periodic_hk_command_with_interval_with_diag, ) class CmdStr: REQUEST_PRIMARY_TEMP_SET = "temp" ENABLE_TEMP_SET = "enable_temp_set" REQUEST_DEVICE_TEMP_SET = "temp_devs" REQUEST_DEVICE_SUS_SET = "temp_sus" REQUEST_HEATER_INFO = "heater_info" REQUEST_TCS_CTRL_INFO = "tcs_ctrl_info" class CmdInfo: ENABLE_TEMP_SET = "Enable Primary Temperature Set" REQUEST_PRIMARY_TEMP_SET = "Request HK set of primary sensor temperatures" REQUEST_DEVICE_TEMP_SET = "Request HK set of device sensor temperatures" REQUEST_DEVICE_SUS_SET = "Request HK set of the SUS temperatures" REQUEST_HEATER_INFO = "Request heater information" REQUEST_TCS_CTRL_INFO = "Request TCS controller information" def pack_tcs_ctrl_commands(q: DefaultPusQueueHelper, cmd_str: str): if cmd_str == CmdStr.REQUEST_PRIMARY_TEMP_SET: sensor_set_sid = make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS) q.add_log_cmd(CmdInfo.REQUEST_PRIMARY_TEMP_SET) q.add_pus_tc(generate_one_hk_command(sensor_set_sid)) if cmd_str == CmdStr.REQUEST_DEVICE_TEMP_SET: q.add_log_cmd(CmdInfo.REQUEST_DEVICE_TEMP_SET) q.add_pus_tc( generate_one_hk_command(make_sid(TCS_CONTROLLER, CtrlSetId.DEVICE_SENSORS)) ) if cmd_str == CmdStr.REQUEST_DEVICE_SUS_SET: q.add_log_cmd(CmdInfo.REQUEST_DEVICE_SUS_SET) q.add_pus_tc( generate_one_hk_command( make_sid(TCS_CONTROLLER, CtrlSetId.SUS_TEMP_SENSORS) ) ) if cmd_str == CmdStr.REQUEST_HEATER_INFO: q.add_log_cmd(CmdInfo.REQUEST_HEATER_INFO) q.add_pus_tc( create_request_one_diag_command( make_sid(TCS_CONTROLLER, CtrlSetId.HEATER_INFO) ) ) if cmd_str == CmdStr.REQUEST_TCS_CTRL_INFO: q.add_log_cmd(CmdInfo.REQUEST_TCS_CTRL_INFO) q.add_pus_tc( create_request_one_hk_command( make_sid(TCS_CONTROLLER, CtrlSetId.TCS_CTRL_INFO) ) ) if cmd_str == CmdStr.ENABLE_TEMP_SET: interval_seconds = float(input("Please specify interval in seconds: ")) cmds = create_enable_periodic_hk_command_with_interval_with_diag( False, make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS), interval_seconds ) for cmd in cmds: q.add_pus_tc(cmd) pack_tcs_ass_cmds(q, cmd_str) CTN = CmdTreeNode def create_tcs_ctrl_node() -> CmdTreeNode: node = CmdTreeNode( "tcs_ctrl", "TCS Controller", hide_children_which_are_leaves=True ) node.add_child(CTN(CmdStr.ENABLE_TEMP_SET, CmdInfo.ENABLE_TEMP_SET)) node.add_child( CTN(CmdStr.REQUEST_PRIMARY_TEMP_SET, CmdInfo.REQUEST_PRIMARY_TEMP_SET) ) node.add_child(CTN(CmdStr.REQUEST_DEVICE_TEMP_SET, CmdInfo.REQUEST_DEVICE_TEMP_SET)) node.add_child(CTN(CmdStr.REQUEST_DEVICE_SUS_SET, CmdInfo.REQUEST_DEVICE_SUS_SET)) node.add_child(CTN(CmdStr.REQUEST_HEATER_INFO, CmdInfo.REQUEST_HEATER_INFO)) node.add_child(CTN(CmdStr.REQUEST_TCS_CTRL_INFO, CmdInfo.REQUEST_TCS_CTRL_INFO)) return node @tmtc_definitions_provider def add_tcs_ctrl_cmds(defs: TmtcDefinitionWrapper): oce = OpCodeEntry() oce.add(keys=CmdStr.ENABLE_TEMP_SET, info=CmdInfo.ENABLE_TEMP_SET) oce.add(keys=CmdStr.REQUEST_PRIMARY_TEMP_SET, info=CmdInfo.REQUEST_PRIMARY_TEMP_SET) oce.add(keys=CmdStr.REQUEST_DEVICE_TEMP_SET, info=CmdInfo.REQUEST_DEVICE_TEMP_SET) oce.add(keys=CmdStr.REQUEST_DEVICE_SUS_SET, info=CmdInfo.REQUEST_DEVICE_SUS_SET) oce.add(keys=CmdStr.REQUEST_HEATER_INFO, info=CmdInfo.REQUEST_HEATER_INFO) oce.add(keys=CmdStr.REQUEST_TCS_CTRL_INFO, info=CmdInfo.REQUEST_TCS_CTRL_INFO) defs.add_service( name=CustomServiceList.TCS_CTRL, info="TCS controller", op_code_entry=oce, )