Index: leahi_dialin/fp/modules/valves.py =================================================================== diff -u -rd3147dff7c95e3ab5a507591ce5b9e1e74911a19 -r90f9b4334fd2c3e51dbe204b3b5e224ce5e88588 --- leahi_dialin/fp/modules/valves.py (.../valves.py) (revision d3147dff7c95e3ab5a507591ce5b9e1e74911a19) +++ leahi_dialin/fp/modules/valves.py (.../valves.py) (revision 90f9b4334fd2c3e51dbe204b3b5e224ce5e88588) @@ -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