Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -rf66c019100e98b49cd94fa0a69951a1a7c952da0 -r62640bb1dfcb4279d31719ca933c3ce69bfb46be --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision f66c019100e98b49cd94fa0a69951a1a7c952da0) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 62640bb1dfcb4279d31719ca933c3ce69bfb46be) @@ -84,10 +84,10 @@ self.d23_valv = {"id": dd_enum_repository.DDValveNames.D23_VALV.value, "state": DEENERGIZED} self.d19_valv = {"id": dd_enum_repository.DDValveNames.D19_VALV.value, "state": DEENERGIZED} self.d25_valv = {"id": dd_enum_repository.DDValveNames.D25_VALV.value, "state": DEENERGIZED} - self.d21_valv = {"id": dd_enum_repository.DDValveNames.D26_VALV.value, "state": DEENERGIZED} + self.d21_valv = {"id": dd_enum_repository.DDValveNames.D21_VALV.value, "state": DEENERGIZED} self.d24_valv = {"id": dd_enum_repository.DDValveNames.D24_VALV.value, "state": DEENERGIZED} self.d20_valv = {"id": dd_enum_repository.DDValveNames.D20_VALV.value, "state": DEENERGIZED} - self.d26_valv = {"id": dd_enum_repository.DDValveNames.D21_VALV.value, "state": DEENERGIZED} + self.d26_valv = {"id": dd_enum_repository.DDValveNames.D26_VALV.value, "state": DEENERGIZED} self.d22_valv = {"id": dd_enum_repository.DDValveNames.D22_VALV.value, "state": DEENERGIZED} self.d79_pmp_valv = {"id": dd_enum_repository.DDValveNames.D79_PMP_VALV.value, "state": DEENERGIZED} @@ -101,7 +101,7 @@ # NOTE: The len function counts the enums with the same number only once. This is not the case in the DD valves # class because each valve must have a unique ID. - self.valve_states_enum = [0 for _ in range(len(dd_enum_repository.DDValveNames))] + self.valve_states_enum = [0 for _ in range(dd_enum_repository.DDValveNames.NUM_OF_DD_VALVES.value - 1)] for valve in dd_enum_repository.DDValveNames.__members__: self.valves_sensed_states[valve] = '' @@ -268,11 +268,15 @@ self.d100_valv["state"] = self._binary_to_valve_state(spv[0] & 64) self.spare7_valv["state"] = self._binary_to_valve_state(spv[0] & 128) + # Updating Valve_states_enum + for i in range(0, dd_enum_repository.DDValveNames.NUM_OF_DD_VALVES.value - 1): + self.valve_states_enum[i] = eval(f'self.{dd_enum_repository.DDValveNames(i).name.lower()}["state"]') + start = self.END_POS_SPARE_VALVES_STATES end = start + 1 for valve_id in self.valves_sensed_states: valve_state_number = struct.unpack('B', bytearray(message['message'][start:end]))[0] - self.valves_sensed_states[valve_id] = dd_enum_repository.DDValveNames(valve_state_number).name + self.valves_sensed_states[valve_id] = valve_state_number start = end end += 1 @@ -358,7 +362,7 @@ can_interface = self.can_interface) - def cmd_bc_valves_override(self, bcv1: bool, bcv2: bool, bcv3: bool, bcv4: bool, bcv5: bool, bcv6: bool, bcv7: bool, bcv8: bool) -> int: + def cmd_bc_valves_override(self, bcv1: bool, bcv2: bool, bcv3: bool, bcv4: bool, bcv5: bool, bcv6: bool, bcv7: bool, bcv8: bool, reset: int = NO_RESET) -> int: """ Constructs and sends the balancing chamber valve states override command. Constraints: @@ -373,31 +377,34 @@ @param bcv6: bool - valve state for D20_VALV (true=open, false=closed) @param bcv7: bool - valve state for D26_VALV (true=open, false=closed) @param bcv8: bool - valve state for D22_VALV (true=open, false=closed) + @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ + rst = integer_to_bytearray(reset) valve = 0 if bcv1: valve = valve | 0x1 if bcv2: valve = valve | 0x2 if bcv3: valve = valve | 0x4 - if bcv7: + if bcv4: valve = valve | 0x8 if bcv5: valve = valve | 0x10 if bcv6: valve = valve | 0x20 - if bcv4: + if bcv7: valve = valve | 0x40 if bcv8: valve = valve | 0x80 - payload = integer_to_bytearray(valve) + vlv = integer_to_bytearray(valve) + payload = rst + vlv return cmd_generic_override( payload = payload, - reset = NO_RESET, + reset = reset, channel_id = DenaliChannels.dialin_to_dd_ch_id, msg_id = MsgIds.MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST, entity_name = f'DD Balancing Chamber Valves state',