112 lines
4.3 KiB
Python
112 lines
4.3 KiB
Python
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,
|
|
)
|