Index: leahi_dialin/ro/modules/valves.py =================================================================== diff -u -r388757f299405b95afae9078234c1312c1406e9c -r92358e1fb33621653dffae4f9560c1d0982e8665 --- leahi_dialin/ro/modules/valves.py (.../valves.py) (revision 388757f299405b95afae9078234c1312c1406e9c) +++ leahi_dialin/ro/modules/valves.py (.../valves.py) (revision 92358e1fb33621653dffae4f9560c1d0982e8665) @@ -75,7 +75,7 @@ msg_id = MsgIds.MSG_ID_RO_VALVES_STATES_DATA.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_valves_sync) - self.valve_states_all = 0x00000000 + self.valve_states_all = 0x0000 self.valve_state_VWI = {"id": ROValveNames.VWI.value, "state": DEENERGIZED} self.valve_state_VFB = {"id": ROValveNames.VFB.value, "state": DEENERGIZED} self.valve_state_VFF = {"id": ROValveNames.VFF.value, "state": DEENERGIZED} @@ -100,14 +100,14 @@ @return: All valve states """ return [ - self.valve_state_VWI.get("state", None), - self.valve_state_VROD.get("state", None), - self.valve_state_VFF.get("state", None), - self.valve_state_VPI.get("state", None), - self.valve_state_VCR.get("state", None), - self.valve_state_VCB.get("state", None), - self.valve_state_VCD.get("state", None), - self.valve_state_VFB.get("state", None), + self.valve_state_VWI.get("state"), + self.valve_state_VROD.get("state"), + self.valve_state_VFF.get("state"), + self.valve_state_VPI.get("state"), + self.valve_state_VCR.get("state"), + self.valve_state_VCB.get("state"), + self.valve_state_VCD.get("state"), + self.valve_state_VFB.get("state"), ] @staticmethod @@ -172,11 +172,31 @@ self.valve_state_VCD["state"] = self._binary_to_valve_state(vst[0] & 64) self.valve_state_VFB["state"] = self._binary_to_valve_state(vst[0] & 128) + # Update the all valve states bit status + bits = 0x0000 + if self.valve_state_VWI["state"] != DEENERGIZED: + bits = bits | 1 + if self.valve_state_VROD["state"] != DEENERGIZED: + bits = bits | 2 + if self.valve_state_VFF["state"] != DEENERGIZED: + bits = bits | 4 + if self.valve_state_VPI["state"] != DEENERGIZED: + bits = bits | 8 + if self.valve_state_VCR["state"] != DEENERGIZED: + bits = bits | 16 + if self.valve_state_VCB["state"] != DEENERGIZED: + bits = bits | 32 + if self.valve_state_VCD["state"] != DEENERGIZED: + bits = bits | 64 + if self.valve_state_VFB["state"] != DEENERGIZED: + bits = bits | 128 + self.valve_states_all = bits + start = self.END_POS_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] = ROValveNames(valve_state_number).name + self.valves_sensed_states[valve_id] = ROValveStates(valve_state_number).name start = end end += 1