Index: leahi_dialin/dd/modules/balancing_chamber.py =================================================================== diff -u -r18c90a1b2b6c7339bdd192a2d2fac32f2b8a35df -r90f9b4334fd2c3e51dbe204b3b5e224ce5e88588 --- leahi_dialin/dd/modules/balancing_chamber.py (.../balancing_chamber.py) (revision 18c90a1b2b6c7339bdd192a2d2fac32f2b8a35df) +++ leahi_dialin/dd/modules/balancing_chamber.py (.../balancing_chamber.py) (revision 90f9b4334fd2c3e51dbe204b3b5e224ce5e88588) @@ -80,7 +80,7 @@ self.switching_period = struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] self.bal_chamber_fill_in_progress = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_6]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] self.current_bal_chamber_switching_counter = struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] self.is_pressure_stabilized_during_fill = struct.unpack('I', bytearray( Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -r396e5d3fdfdcdabca9cc7434de0fcee52036aaa1 -r90f9b4334fd2c3e51dbe204b3b5e224ce5e88588 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 396e5d3fdfdcdabca9cc7434de0fcee52036aaa1) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 90f9b4334fd2c3e51dbe204b3b5e224ce5e88588) @@ -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 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