75 lines
2.8 KiB
Python
75 lines
2.8 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 eive_tmtc.tmtc.tcs.subsystem import InfoSys
|
||
|
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,
|
||
|
)
|
||
|
|
||
|
|
||
|
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"
|
||
|
|
||
|
|
||
|
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)
|
||
|
q.add_log_cmd(InfoSys.REQUEST_PRIMARY_TEMP_SET)
|
||
|
q.add_pus_tc(generate_one_hk_command(sensor_set_sid))
|
||
|
if op_code == OpCode.REQUEST_DEVICE_TEMP_SET:
|
||
|
q.add_log_cmd(InfoSys.REQUEST_DEVICE_TEMP_SET)
|
||
|
q.add_pus_tc(
|
||
|
generate_one_hk_command(make_sid(TCS_CONTROLLER, CtrlSetId.DEVICE_SENSORS))
|
||
|
)
|
||
|
if op_code == OpCode.REQUEST_DEVICE_SUS_SET:
|
||
|
q.add_log_cmd(InfoSys.REQUEST_DEVICE_SUS_SET)
|
||
|
q.add_pus_tc(
|
||
|
generate_one_hk_command(
|
||
|
make_sid(TCS_CONTROLLER, CtrlSetId.SUS_TEMP_SENSORS)
|
||
|
)
|
||
|
)
|
||
|
if op_code == OpCode.REQUEST_HEATER_INFO:
|
||
|
q.add_log_cmd(InfoSys.REQUEST_HEATER_INFO)
|
||
|
q.add_pus_tc(
|
||
|
create_request_one_diag_command(
|
||
|
make_sid(TCS_CONTROLLER, CtrlSetId.HEATER_INFO)
|
||
|
)
|
||
|
)
|
||
|
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()
|
||
|
oce.add(keys=OpCode.ENABLE_TEMP_SET, info=InfoSys.ENABLE_TEMP_SET)
|
||
|
oce.add(keys=OpCode.REQUEST_PRIMARY_TEMP_SET, info=InfoSys.REQUEST_PRIMARY_TEMP_SET)
|
||
|
oce.add(keys=OpCode.REQUEST_DEVICE_TEMP_SET, info=InfoSys.REQUEST_DEVICE_TEMP_SET)
|
||
|
oce.add(keys=OpCode.REQUEST_DEVICE_SUS_SET, info=InfoSys.REQUEST_DEVICE_SUS_SET)
|
||
|
oce.add(keys=OpCode.REQUEST_HEATER_INFO, info=InfoSys.REQUEST_HEATER_INFO)
|
||
|
defs.add_service(
|
||
|
name=CustomServiceList.TCS_CTRL,
|
||
|
info="TCS controller",
|
||
|
op_code_entry=oce,
|
||
|
)
|