Index: leahi_dialin/fp/modules/valves.py =================================================================== diff -u -r3715028b608b10e1d440a8a738c8a4f70d3d411b -rfa006d9b5cfefb4ee1aa2deecd7e80a4aa4a9883 --- leahi_dialin/fp/modules/valves.py (.../valves.py) (revision 3715028b608b10e1d440a8a738c8a4f70d3d411b) +++ leahi_dialin/fp/modules/valves.py (.../valves.py) (revision fa006d9b5cfefb4ee1aa2deecd7e80a4aa4a9883) @@ -69,7 +69,7 @@ self.p6_valv = {"id": fp_enum_repository.FPValveNames.P6_VALV.value, "state": DEENERGIZED} # NOTE: The len function counts the enums with the same number only once. - self.valve_states_enum = [0 for _ in range(len(fp_enum_repository.FPValveNames))] + self.valve_states_enum = [0 for _ in range(fp_enum_repository.FPValveNames.NUM_OF_FP_VALVES.value - 1)] for valve in fp_enum_repository.FPValveNames.__members__: self.valves_sensed_states[valve] = '' @@ -160,14 +160,17 @@ self.p6_valv["state"] = self._binary_to_valve_state(fp_valves[0] & 32) self.valve_states_all += fp_valves[0] << 8 + # Updating Valve_states_enum + for i in range(0, fp_enum_repository.FPValveNames.NUM_OF_FP_VALVES.value - 1): + self.valve_states_enum[i] = eval(f'self.{fp_enum_repository.FPValveNames(i).name.lower()}["state"]') + # Extract each valve sensed state from U08 valves states using bit-masking start = self.END_FP_VALVES_STATES end = start + 1 for valve_id in self.valves_sensed_states: if valve_id.lower().startswith('num'): continue - valve_state_number = struct.unpack('B', bytearray(message['message'][start:end]))[0] - self.valves_sensed_states[valve_id] = fp_enum_repository.FPValveStates(valve_state_number).name + self.valves_sensed_states[valve_id] = struct.unpack('B', bytearray(message['message'][start:end]))[0] start = end end += 1 self.fp_valves_states_timestamp = timestamp