Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -r3715028b608b10e1d440a8a738c8a4f70d3d411b -rfa006d9b5cfefb4ee1aa2deecd7e80a4aa4a9883 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 3715028b608b10e1d440a8a738c8a4f70d3d411b) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision fa006d9b5cfefb4ee1aa2deecd7e80a4aa4a9883) @@ -100,7 +100,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] = '' @@ -267,11 +267,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