Index: leahi_dialin/fp/modules/valves.py =================================================================== diff -u -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 -re45b20cdc5d4c5dcff8cef530b173ca94cb2e422 --- leahi_dialin/fp/modules/valves.py (.../valves.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) +++ leahi_dialin/fp/modules/valves.py (.../valves.py) (revision e45b20cdc5d4c5dcff8cef530b173ca94cb2e422) @@ -24,7 +24,7 @@ from leahi_dialin.common import fp_enum_repository from leahi_dialin.common.generic_defs import DataTypes from leahi_dialin.common.fp_defs import BETA_IOFP_VALVE_OFFSET -from leahi_dialin.common.msg_defs import MsgIds +from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override from leahi_dialin.protocols.CAN import CanMessenger, CanMessage, CanChannels from leahi_dialin.utils.abstract_classes import AbstractSubSystem @@ -221,7 +221,7 @@ Given valve ID must be one of the valve IDs listed below. @param valve: unsigned int - valve ID - @param state: int - valve state + @param state: int - valve state (0=de-energized/closed, 1=energized/open) @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ @@ -240,3 +240,31 @@ override_text = str(state), logger = self.logger, can_interface = self.can_interface) + + def cmd_set_valve_recovery_config(self, recovery_state: int) -> int: + """ + Constructs and sends the FP valve recovery command + Constraints: + Must be logged into FP. + Given valve ID must be one of the recovery valve IDs listed below. + NO_RECOVERY = 0, ///< NO recovery + MEDIUM_RECOVERY, ///< Medium recovery + MAX_RECOVERY, ///< Maximum recovery + NUM_OF_RECOVERY_STATES ///< Number of recovery states + @param recovery_state: int + @return: 1 if successful, zero otherwise + """ + rcv = integer_to_bytearray(recovery_state) + payload = rcv + + + return cmd_generic_override( + payload = payload, + reset = 0, + channel_id = DenaliChannels.dialin_to_fp_ch_id, + msg_id = MsgIds.MSG_ID_FP_SET_RECOVERY_VALVES_REQUEST, + entity_name = f'FP Recovery Valve set', + override_text = str(recovery_state), + logger = self.logger, + can_interface = self.can_interface) +