2023-07-10 16:25:44 +02:00
|
|
|
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 (
|
|
|
|
tmtc_definitions_provider,
|
|
|
|
TmtcDefinitionWrapper,
|
|
|
|
OpCodeEntry,
|
|
|
|
)
|
|
|
|
from tmtccmd.tc import DefaultPusQueueHelper
|
|
|
|
from tmtccmd.tc.pus_3_fsfw_hk import (
|
|
|
|
make_sid,
|
|
|
|
generate_one_hk_command,
|
|
|
|
create_request_one_diag_command,
|
|
|
|
create_enable_periodic_hk_command_with_interval,
|
2023-07-10 16:29:54 +02:00
|
|
|
create_request_one_hk_command,
|
2023-07-10 16:25:44 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class OpCode:
|
|
|
|
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"
|
2023-07-10 16:29:54 +02:00
|
|
|
REQUEST_TCS_CTRL_INFO = "tcs_ctrl_info"
|
|
|
|
|
|
|
|
|
|
|
|
class Info:
|
|
|
|
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"
|
2023-07-10 16:25:44 +02:00
|
|
|
|
|
|
|
|
|
|
|
def pack_tcs_ctrl_commands(q: DefaultPusQueueHelper, op_code: str):
|
|
|
|
if op_code == OpCode.REQUEST_PRIMARY_TEMP_SET:
|
|
|
|
sensor_set_sid = make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS)
|
2023-07-10 16:29:54 +02:00
|
|
|
q.add_log_cmd(Info.REQUEST_PRIMARY_TEMP_SET)
|
2023-07-10 16:25:44 +02:00
|
|
|
q.add_pus_tc(generate_one_hk_command(sensor_set_sid))
|
|
|
|
if op_code == OpCode.REQUEST_DEVICE_TEMP_SET:
|
2023-07-10 16:29:54 +02:00
|
|
|
q.add_log_cmd(Info.REQUEST_DEVICE_TEMP_SET)
|
2023-07-10 16:25:44 +02:00
|
|
|
q.add_pus_tc(
|
|
|
|
generate_one_hk_command(make_sid(TCS_CONTROLLER, CtrlSetId.DEVICE_SENSORS))
|
|
|
|
)
|
|
|
|
if op_code == OpCode.REQUEST_DEVICE_SUS_SET:
|
2023-07-10 16:29:54 +02:00
|
|
|
q.add_log_cmd(Info.REQUEST_DEVICE_SUS_SET)
|
2023-07-10 16:25:44 +02:00
|
|
|
q.add_pus_tc(
|
|
|
|
generate_one_hk_command(
|
|
|
|
make_sid(TCS_CONTROLLER, CtrlSetId.SUS_TEMP_SENSORS)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
if op_code == OpCode.REQUEST_HEATER_INFO:
|
2023-07-10 16:29:54 +02:00
|
|
|
q.add_log_cmd(Info.REQUEST_HEATER_INFO)
|
2023-07-10 16:25:44 +02:00
|
|
|
q.add_pus_tc(
|
|
|
|
create_request_one_diag_command(
|
|
|
|
make_sid(TCS_CONTROLLER, CtrlSetId.HEATER_INFO)
|
|
|
|
)
|
|
|
|
)
|
2023-07-10 16:29:54 +02:00
|
|
|
if op_code == OpCode.REQUEST_TCS_CTRL_INFO:
|
|
|
|
q.add_log_cmd(Info.REQUEST_TCS_CTRL_INFO)
|
|
|
|
q.add_pus_tc(
|
|
|
|
create_request_one_hk_command(
|
|
|
|
make_sid(TCS_CONTROLLER, CtrlSetId.TCS_CTRL_INFO)
|
|
|
|
)
|
|
|
|
)
|
2023-07-10 16:25:44 +02:00
|
|
|
if op_code == OpCode.ENABLE_TEMP_SET:
|
|
|
|
interval_seconds = float(input("Please specify interval in seconds: "))
|
|
|
|
cmds = create_enable_periodic_hk_command_with_interval(
|
|
|
|
False, make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS), interval_seconds
|
|
|
|
)
|
|
|
|
for cmd in cmds:
|
|
|
|
q.add_pus_tc(cmd)
|
|
|
|
pack_tcs_ass_cmds(q, op_code)
|
|
|
|
|
|
|
|
|
|
|
|
@tmtc_definitions_provider
|
|
|
|
def add_tcs_ctrl_cmds(defs: TmtcDefinitionWrapper):
|
|
|
|
oce = OpCodeEntry()
|
2023-07-10 16:29:54 +02:00
|
|
|
oce.add(keys=OpCode.ENABLE_TEMP_SET, info=Info.ENABLE_TEMP_SET)
|
|
|
|
oce.add(keys=OpCode.REQUEST_PRIMARY_TEMP_SET, info=Info.REQUEST_PRIMARY_TEMP_SET)
|
|
|
|
oce.add(keys=OpCode.REQUEST_DEVICE_TEMP_SET, info=Info.REQUEST_DEVICE_TEMP_SET)
|
|
|
|
oce.add(keys=OpCode.REQUEST_DEVICE_SUS_SET, info=Info.REQUEST_DEVICE_SUS_SET)
|
|
|
|
oce.add(keys=OpCode.REQUEST_HEATER_INFO, info=Info.REQUEST_HEATER_INFO)
|
|
|
|
oce.add(keys=OpCode.REQUEST_TCS_CTRL_INFO, info=Info.REQUEST_TCS_CTRL_INFO)
|
2023-07-10 16:25:44 +02:00
|
|
|
defs.add_service(
|
|
|
|
name=CustomServiceList.TCS_CTRL,
|
|
|
|
info="TCS controller",
|
|
|
|
op_code_entry=oce,
|
|
|
|
)
|