Index: leahi_dialin/td/modules/valves.py =================================================================== diff -u -rec8a2600b9e8cf6fe7e02c200a1c24221ca86863 -r175101bed0d998f3e0c6ff24d90603acb0106e4d --- leahi_dialin/td/modules/valves.py (.../valves.py) (revision ec8a2600b9e8cf6fe7e02c200a1c24221ca86863) +++ leahi_dialin/td/modules/valves.py (.../valves.py) (revision 175101bed0d998f3e0c6ff24d90603acb0106e4d) @@ -50,6 +50,16 @@ START_POS_VALVES_NEXT_POS = END_POS_VALVES_CURR_POS END_POS_VALVES_NEXT_POS = START_POS_VALVES_NEXT_POS + 2 + START_POS_A = END_POS_VALVES_NEXT_POS + END_POS_A = START_POS_A + 2 + START_POS_B = END_POS_A + END_POS_B = START_POS_B + 2 + START_POS_C = END_POS_B + END_POS_C = START_POS_C + 2 + START_POS_D = END_POS_C + END_POS_D = START_POS_D + 2 + START_MAX_HOMING_ENC = END_POS_D + END_MAX_HOMING_ENC = START_MAX_HOMING_ENC + 2 def __init__(self, can_interface, logger: Logger): """ @@ -90,15 +100,23 @@ message['message'][self.START_POS_VALVES_CURR_POS_ID:self.END_POS_VALVES_CURR_POS_ID]))[0] pos_cnt = struct.unpack('h', bytearray( message['message'][self.START_POS_VALVES_CURR_POS:self.END_POS_VALVES_CURR_POS]))[0] - next_pos = struct.unpack('h', bytearray( + cmd_pos = struct.unpack('h', bytearray( message['message'][self.START_POS_VALVES_NEXT_POS:self.END_POS_VALVES_NEXT_POS]))[0] + pos_a = struct.unpack('h', bytearray(message['message'][self.START_POS_A:self.END_POS_A]))[0] + pos_b = struct.unpack('h', bytearray(message['message'][self.START_POS_B:self.END_POS_B]))[0] + pos_c = struct.unpack('h', bytearray(message['message'][self.START_POS_C:self.END_POS_C]))[0] + pos_d = struct.unpack('h', bytearray(message['message'][self.START_POS_D:self.END_POS_D]))[0] + max_homing_enc = struct.unpack('h', bytearray( + message['message'][self.START_MAX_HOMING_ENC:self.END_MAX_HOMING_ENC]))[0] + # To make sure values of the enums are not out of range if TDValvesEnum.has_value(vlv_id) and TDValvesPositions.has_value(pos_id) and TDValvesStates.has_value(pos_id): vlv_name = TDValvesEnum(vlv_id).name # Update the valves dictionary self.valves_status[vlv_name] = {'Valve': vlv_name, 'PosID': TDValvesPositions(pos_id).name, 'PosCnt': pos_cnt, - 'Cmd': next_pos, 'State': TDValvesStates(state_id).name} + 'Cmd': cmd_pos, 'State': TDValvesStates(state_id).name, 'PosA': pos_a, + 'PosB': pos_b, 'PosC': pos_c, 'PosD': pos_d, 'Max_homing_enc': max_homing_enc} self.td_valves_timestamp = timestamp def cmd_valves_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: