Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -r2275be349ac1a89817e872f31bd1391a361eee54 -r6c364ae181c63c1323b0a34ae0bbd99422e64580 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 2275be349ac1a89817e872f31bd1391a361eee54) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 6c364ae181c63c1323b0a34ae0bbd99422e64580) @@ -76,11 +76,12 @@ # Valves states publish message field positions START_POS_VALVES_STATES = DenaliMessage.PAYLOAD_START_INDEX - END_POS_VALVES_STATES = START_POS_VALVES_STATES + 4 # Valves States come in as a U16 value (2 bytes) - START_POS_BCV_VALVES_STATES = START_POS_VALVES_STATES + 2 + END_POS_VALVES_STATES = START_POS_VALVES_STATES + 2 # Valves States come in as a U16 value (2 bytes) + START_POS_BCV_VALVES_STATES = END_POS_VALVES_STATES END_POS_BCV_VALVES_STATES = START_POS_BCV_VALVES_STATES + 1 START_POS_UFI_VALVES_STATES = END_POS_BCV_VALVES_STATES END_POS_UFI_VALVES_STATES = START_POS_UFI_VALVES_STATES + 1 + END_POS_ALL_VALVES = START_POS_VALVES_STATES + 4 def __init__(self, can_interface, logger: Logger): """ @@ -246,9 +247,11 @@ @param message: published valves states message @return: none """ + vsa = struct.unpack('I', bytearray(message['message'][self.START_POS_VALVES_STATES:self.END_POS_ALL_VALVES])) + self.valve_states_all = vsa[0] + vst = struct.unpack('H', bytearray(message['message'][self.START_POS_VALVES_STATES:self.END_POS_VALVES_STATES])) - self.valve_states_all = vst[0] # Extract each valve state from U16 valves states using bit-masking self.valve_state_VDR["state"] = self._binary_to_valve_state(vst[0] & 1) self.valve_state_VTD["state"] = self._binary_to_valve_state(vst[0] & 2)