Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -r0f5edef41f89475eff5505a71625dff13c27114a -r175101bed0d998f3e0c6ff24d90603acb0106e4d --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 0f5edef41f89475eff5505a71625dff13c27114a) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 175101bed0d998f3e0c6ff24d90603acb0106e4d) @@ -321,11 +321,14 @@ @unique class TDValvesStates(DialinEnum): VALVE_STATE_WAIT_FOR_POST = 0 # Waiting for POST Valve State - VALVE_STATE_HOMING_NOT_STARTED = 1 # Homing not started Valve State - VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE = 2 # Homing Find Energized Edge Valve State - VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE = 3 # Homing Find De-energized Edge Valve State - VALVE_STATE_IDLE = 4 # Idle Valve State - VALVE_STATE_IN_TRANSITION = 5 # Valve state in transition + VALVE_STATE_RESET_VALVE = 1 # Valve state reset valve. + VALVE_STATE_RESET_ENCODER = 2 # Valve state reset encoder. + VALVE_STATE_ENABLE_VALVE = 3 # Valve state enable valve. + VALVE_STATE_HOMING_NOT_STARTED = 4 # Valve state homing not started. + VALVE_STATE_HOMING_FIND_ENERGIZED_EDGE = 5 # Valve state homing find energized edge. + VALVE_STATE_HOMING_FIND_DEENERGIZED_EDGE = 6 # Valve state homing find. + VALVE_STATE_IDLE = 7 # Idle Valve State. + VALVE_STATE_IN_TRANSITION = 8 # Valve state in transition. # Monitored voltages @unique 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: