changed controller commanding to allow more flexibility

This commit is contained in:
Ulrich Mohr 2022-05-17 22:11:31 +02:00
parent 73c8e95dce
commit 476066a5ac
2 changed files with 36 additions and 27 deletions

View File

@ -1058,14 +1058,14 @@ def add_system_cmds(cmd_dict: ServiceOpCodeDictT):
op_code_dict = dict() op_code_dict = dict()
add_op_code_entry( add_op_code_entry(
op_code_dict=op_code_dict, op_code_dict=op_code_dict,
keys=controllers.OpCodes.THERMAL_CONTROLLER_NORMAL, keys=controllers.OpCodes.THERMAL_CONTROLLER,
info=controllers.Info.THERMAL_CONTROLLER_NORMAL, info=controllers.Info.THERMAL_CONTROLLER,
options=default_opts, options=default_opts,
) )
add_op_code_entry( add_op_code_entry(
op_code_dict=op_code_dict, op_code_dict=op_code_dict,
keys=controllers.OpCodes.THERMAL_CONTROLLER_OFF, keys=controllers.OpCodes.CORE_CONTROLLER,
info=controllers.Info.THERMAL_CONTROLLER_OFF, info=controllers.Info.CORE_CONTROLLER,
options=default_opts, options=default_opts,
) )
add_service_op_code_entry( add_service_op_code_entry(

View File

@ -1,35 +1,44 @@
from tmtccmd.tc.definitions import TcQueueT, QueueCommands from ast import Pass
from tmtccmd.tc.pus_200_fsfw_modes import Modes from tmtccmd.tc.definitions import TcQueueT
from .common import command_mode from .common import command_mode
import config.object_ids as obj_ids import config.object_ids as obj_ids
class OpCodes: class OpCodes:
THERMAL_CONTROLLER_NORMAL = ["0", "thermal-normal"] THERMAL_CONTROLLER = [obj_ids.THERMAL_CONTROLLER_ID.hex(), "thermal_controller"]
THERMAL_CONTROLLER_OFF = ["1", "thermal-off"] CORE_CONTROLLER = [obj_ids.CORE_CONTROLLER_ID.hex(), "core_controller"]
class Info: class Info:
THERMAL_CONTROLLER_NORMAL = "Switching Thermal Controller into normal" THERMAL_CONTROLLER = "Thermal controller"
THERMAL_CONTROLLER_OFF = "Switching Thermal Controller off" CORE_CONTROLLER = "ACS controller"
def pack_controller_commands(tc_queue: TcQueueT, op_code: str): def pack_controller_commands(tc_queue: TcQueueT, op_code: str):
if op_code in OpCodes.THERMAL_CONTROLLER_NORMAL: mode = int(input("Specify mode: (OFF = 0; ON = 1; NORMAL = 2) [2] ") or "2")
command_mode( print(mode)
object_id=obj_ids.THERMAL_CONTROLLER_ID, if mode < 0 or mode > 2:
mode=Modes.NORMAL, print("Invalid Mode, defaulting to OFF")
submode=0, mode = 0
tc_queue=tc_queue, submode = int(input("Specify submode [0]: ") or "0")
info=Info.THERMAL_CONTROLLER_NORMAL, command_mode(
) object_id=get_object_from_op_code(op_code),
if op_code in OpCodes.THERMAL_CONTROLLER_OFF: mode=mode,
command_mode( submode=submode,
object_id=obj_ids.THERMAL_CONTROLLER_ID, tc_queue=tc_queue,
mode=Modes.OFF, info=op_code + " to " + str(mode) + "," + str(submode),
submode=0, )
tc_queue=tc_queue,
info=Info.THERMAL_CONTROLLER_OFF, def get_object_from_op_code(op_code: str):
) try:
return bytes.fromhex(op_code)
except:
pass
if op_code in OpCodes.THERMAL_CONTROLLER:
return obj_ids.THERMAL_CONTROLLER_ID
if op_code in OpCodes.CORE_CONTROLLER:
return obj_ids.CORE_CONTROLLER_ID