DiamondLightSource / dodal

Ophyd devices and other utils that could be used across DLS beamlines
Apache License 2.0
2 stars 8 forks source link

Pressure jump devices collected updates #759

Open stan-dot opened 2 months ago

stan-dot commented 2 months ago

Make sure that what is to be recorded is recorded and what is not is not

point 1 - limits and an error state if they are exceeded

todo double check if needed

        # self.pump_forward_limit = epics_signal_r(
        #     LimitSwitchState, prefix + "D74IN1"
        # )
        # self.pump_backward_limit = epics_signal_r(
        #     LimitSwitchState, prefix + "D74IN0"
        # )

point 2 - movement in manual mode self.pump_move_forward = epics_signal_rw(int, prefix + "M1:FORW") self.pump_move_backward = epics_signal_rw(bool, prefix + "M1:BACKW")

point 3 - do we need to reset the motor control? the M1:CON, if so, with epics_signal_x

point 4 - support arm and disarm for the fast valves

point5 - consider the openseq channel self.valves_open: DeviceVector[SignalR[int]] = DeviceVector( {i: epics_signal_r(int, f"{prefix}V{i}:OPENSEQ") for i in [1, 3, 5, 6]} ) or can we do everything through CON?

point 6- deleting gotobusy and other control signals not used in the acquisitions - can we confirm this? self.control_gotobusy = epics_signal_r(BusyState, prefix + "CTRL:GOTOBUSY") self.control_timer = epics_signal_r(TimerState, prefix + "CTRL:TIMER") self.control_counter = epics_signal_r(float, prefix + "CTRL:COUNTER") self.control_script_status = epics_signal_r(str, prefix + "CTRL:RESULT") self.control_routine = epics_signal_r(str, prefix + "CTRL:METHOD") self.control_iteration = epics_signal_r(float, prefix + "CTRL:ITER")

stan-dot commented 1 month ago

@tpoliaw I know those are rough notes, does any of the 6 question have an obvious answer or are all exploratory?

tpoliaw commented 1 month ago
  1. I don't think GDA looked at limits
  2. GDA did nothing with manual control
  3. I don't think we did in GDA
  4. yes
  5. GDA used OPENSEQ for opening the valves and CON for closing and resetting them. I can't remember why it made this distinction now. Either way, I think an array of valves, each with an open and close signal would be better than a pair of arrays, one for all the open signals one for close signals.
  6. GOTOBUSY was used in the Java implementation so that methods could block until the action had actually started (eg setPressure has a slight delay between hitting go and the pumps moving). If that is not needed in ophyd it can probably go. None of the other PVs were used.
stan-dot commented 1 month ago

fantastic, thanks!