diff --git a/pus_tc/devs/heater.py b/pus_tc/devs/heater.py index d8d6e05..be02e44 100644 --- a/pus_tc/devs/heater.py +++ b/pus_tc/devs/heater.py @@ -26,7 +26,9 @@ class SwitchNumbers: class OpCodes: - HEATER_CMD = ["0", "heater-cmd"] + HEATER_CMD = ["0", "switch-cmd"] + HEATER_EXT_CTRL = ["1", "heater-ext-ctrl"] + HEATER_FAULTY_CMD = ["2", "set-faulty"] class Info: @@ -50,45 +52,48 @@ def add_heater_cmds(cmd_dict: ServiceOpCodeDictT): ) -def pack_heater_cmds(object_id: bytearray, tc_queue: TcQueueT): - tc_queue.appendleft((QueueCommands.PRINT, "Heater Switching")) - while True: - heater_number = input("Type number of heater to switch [0-7]: ") - if not heater_number.isdigit(): - print("Heater number not a digit") - continue - heater_number = int(heater_number) - if heater_number >= SwitchNumbers.NUMBER_OF_SWITCHES or heater_number < 0: - print("Invalid heater switch number") - continue - break - while True: - action = input("Turn switch on or off? (0 - off, 1 - on): ") - if not action.isdigit(): - print("Switch action not valid") - continue - action = int(action) - if action != 0 and action != 1: - print("Invalid action defined. Must be 0 (off) or 1 (on") - continue - break - if action == 1: - act_str = "on" - else: - act_str = "off" - debug_string = f"Switching heater {heater_number} {act_str}" - tc_queue.appendleft((QueueCommands.PRINT, debug_string)) - command = pack_switch_heater_command(object_id, heater_number, action) - tc_queue.appendleft(command.pack_command_tuple()) +def pack_heater_cmds(object_id: bytearray, op_code: str, tc_queue: TcQueueT): + if op_code in OpCodes.HEATER_CMD: + tc_queue.appendleft((QueueCommands.PRINT, "Heater Switching")) + while True: + heater_number = input("Type number of heater to switch [0-7]: ") + if not heater_number.isdigit(): + print("Heater number not a digit") + continue + heater_number = int(heater_number) + if heater_number >= SwitchNumbers.NUMBER_OF_SWITCHES or heater_number < 0: + print("Invalid heater switch number") + continue + break + while True: + action = input("Turn switch on or off? (0 - off, 1 - on): ") + if not action.isdigit(): + print("Switch action not valid") + continue + action = int(action) + if action != 0 and action != 1: + print("Invalid action defined. Must be 0 (off) or 1 (on") + continue + break + if action == 1: + act_str = "on" + else: + act_str = "off" + debug_string = f"Switching heater {heater_number} {act_str}" + tc_queue.appendleft((QueueCommands.PRINT, debug_string)) + command = pack_switch_heater_command(object_id, heater_number, action) + tc_queue.appendleft(command.pack_command_tuple()) + if op_code in OpCodes.HEATER_EXT_CTRL: + pass def pack_switch_heater_command( object_id: bytes, switch_nr: int, switch_action: int ) -> PusTelecommand: - """Function to generate the command switch a heater - @param object_id The object id of the HeaterHandler object. - @param switch_nr The switch number identifying the heater to switch - @param switch_action Action to perform. 0 - Sets switch off, 1 - Sets switch on. + """Function to generate a heater switch command. + :param object_id: The object id of the HeaterHandler object. + :param switch_nr: The switch number identifying the heater to switch + :param switch_action: Action to perform. 0 - Sets switch off, 1 - Sets switch on. """ command = bytearray() command.append(switch_nr)