pcdshub / pcdsdevices

Collection of Ophyd device subclasses for IOCs unique to LCLS PCDS.
https://pcdshub.github.io/pcdsdevices/
Other
5 stars 58 forks source link

Motor umv(r) #553

Closed silkenelson closed 4 years ago

silkenelson commented 4 years ago

Feature Request Move a motor and print the current position until move is completed.

Existing Alternatives use old python.

Context This can give a lot of comfort when you don't trust a stage and/or just want to see how long the move will take.

ZLLentz commented 4 years ago

umvr already exists. Which devices are missing it?

silkenelson commented 4 years ago

Ah: I'll look and update the confluence documentation and resolve this request afterr that.

ZLLentz commented 4 years ago

It is completely possible that the function didn't get put on every single device, so I'm happy to bring it over to anything we missed.

ZLLentz commented 4 years ago

It is also possible that it does not work the way you expect or has other issues, so feel free to ask for revisions.

klauer commented 4 years ago

Did some investigation into which devices have/do not have the move interface:

Anything suspicious in either group?

Uses move interface

``` pcdsdevices.attenuator.AttBase pcdsdevices.attenuator.AttBase3rd pcdsdevices.attenuator.FeeAtt pcdsdevices.attenuator.FeeFilter pcdsdevices.attenuator.Filter pcdsdevices.ccm.CCM pcdsdevices.ccm.CCMCalc pcdsdevices.ccm.CCMMotor pcdsdevices.ccm.CCMPico pcdsdevices.ccm.CCMX pcdsdevices.ccm.CCMY pcdsdevices.epics_motor.BeckhoffAxis pcdsdevices.epics_motor.DelayNewport pcdsdevices.epics_motor.EpicsMotorInterface pcdsdevices.epics_motor.IMS pcdsdevices.epics_motor.Newport pcdsdevices.epics_motor.PCDSMotorBase pcdsdevices.epics_motor.PMC100 pcdsdevices.epics_motor.SmarAct pcdsdevices.inout.CombinedInOutRecordPositioner pcdsdevices.inout.InOutPVStatePositioner pcdsdevices.inout.InOutPositioner pcdsdevices.inout.InOutRecordPositioner pcdsdevices.inout.Reflaser pcdsdevices.inout.TTReflaser pcdsdevices.inout.TwinCATInOutPositioner pcdsdevices.ipm.IPMTarget pcdsdevices.lens.Prefocus pcdsdevices.lens.XFLS pcdsdevices.lodcm.Dectris pcdsdevices.lodcm.Diode pcdsdevices.lodcm.Foil pcdsdevices.lodcm.H1N pcdsdevices.lodcm.YagLom pcdsdevices.mirror.Gantry pcdsdevices.mirror.OMMotor pcdsdevices.mirror.Pitch pcdsdevices.mirror.PointingMirror pcdsdevices.movablestand.MovableStand pcdsdevices.pim.PIMY pcdsdevices.pim.XPIMFilterWheel pcdsdevices.pseudopos.PseudoSingleInterface pcdsdevices.pseudopos.SimDelayStage pcdsdevices.pseudopos.SyncAxesBase pcdsdevices.pseudpos.DelayBase pcdsdevices.pulsepicker.PulsePicker pcdsdevices.pulsepicker.PulsePickerInOut pcdsdevices.rtds_ebd.PneumaticActuator pcdsdevices.sim.FastMotor pcdsdevices.sim.SlowMotor pcdsdevices.sim.SynMotor pcdsdevices.slits.BadSlitPositionerBase pcdsdevices.slits.BeckhoffSlitPositioner pcdsdevices.slits.BeckhoffSlits pcdsdevices.slits.LusiSlitPositioner pcdsdevices.slits.LusiSlits pcdsdevices.slits.PowerSlits pcdsdevices.slits.SlitPositioner pcdsdevices.slits.Slits pcdsdevices.slits.SlitsBase pcdsdevices.state.CombinedStateRecordPositioner pcdsdevices.state.PVStatePositioner pcdsdevices.state.StatePositioner pcdsdevices.state.StateRecordPositioner pcdsdevices.state.StateRecordPositionerBase pcdsdevices.state.TwinCATStatePositioner pcdsdevices.timetool.Timetool pcdsdevices.timetool.TimetoolWithNav pcdsdevices.valve.GateValve pcdsdevices.valve.PPSStopper pcdsdevices.valve.Stopper ```

Does not use move interface

``` pcdsdevices.analog_signals.Acromag pcdsdevices.analog_signals.Mesh pcdsdevices.areadetector.cam.FeeOpalCam pcdsdevices.areadetector.detectors.PCDSAreaDetector pcdsdevices.areadetector.detectors.PCDSAreaDetectorBase pcdsdevices.areadetector.detectors.PCDSAreaDetectorEmbedded pcdsdevices.areadetector.detectors.PCDSAreaDetectorTyphos pcdsdevices.areadetector.plugins.ColorConvPlugin pcdsdevices.areadetector.plugins.FilePlugin pcdsdevices.areadetector.plugins.HDF5Plugin pcdsdevices.areadetector.plugins.ImagePlugin pcdsdevices.areadetector.plugins.JPEGPlugin pcdsdevices.areadetector.plugins.MagickPlugin pcdsdevices.areadetector.plugins.NetCDFPlugin pcdsdevices.areadetector.plugins.NexusPlugin pcdsdevices.areadetector.plugins.Overlay pcdsdevices.areadetector.plugins.OverlayPlugin pcdsdevices.areadetector.plugins.PluginBase pcdsdevices.areadetector.plugins.ProcessPlugin pcdsdevices.areadetector.plugins.ROIPlugin pcdsdevices.areadetector.plugins.StatsPlugin pcdsdevices.areadetector.plugins.TIFFPlugin pcdsdevices.areadetector.plugins.TransformPlugin pcdsdevices.attenuator.AttenuatorCalculatorBase pcdsdevices.attenuator.AttenuatorCalculatorFilter pcdsdevices.attenuator.AttenuatorCalculator_AT2L0 pcdsdevices.attenuator.FEESolidAttenuator pcdsdevices.attenuator.FEESolidAttenuatorBlade pcdsdevices.attenuator.GasAttenuator pcdsdevices.beam_stats.BeamStats pcdsdevices.beam_stats.SxrGmd pcdsdevices.dc_devices.ICT pcdsdevices.dc_devices.ICTBus pcdsdevices.dc_devices.ICTChannel pcdsdevices.energy_monitor.GEM pcdsdevices.energy_monitor.GMD pcdsdevices.energy_monitor.XGMD pcdsdevices.epics_motor.BeckhoffAxisPLC pcdsdevices.epics_motor.SmarActOpenLoop pcdsdevices.evr.Trigger pcdsdevices.gauge.BaseGauge pcdsdevices.gauge.GCC500PLC pcdsdevices.gauge.GCCPLC pcdsdevices.gauge.GCT pcdsdevices.gauge.GaugeColdCathode pcdsdevices.gauge.GaugePLC pcdsdevices.gauge.GaugePirani pcdsdevices.gauge.GaugeSerial pcdsdevices.gauge.GaugeSerialGCC pcdsdevices.gauge.GaugeSerialGPI pcdsdevices.gauge.GaugeSetBase pcdsdevices.gauge.GaugeSetMks pcdsdevices.gauge.GaugeSetPirani pcdsdevices.gauge.GaugeSetPiraniMks pcdsdevices.gauge.MKS937AController pcdsdevices.gauge.MKS937BController pcdsdevices.gauge.MKS937a pcdsdevices.gon.BaseGon pcdsdevices.gon.GonWithDetArm pcdsdevices.gon.Kappa pcdsdevices.gon.SamPhi pcdsdevices.gon.XYZStage pcdsdevices.ipm.IPIMB pcdsdevices.ipm.IPIMBChannel pcdsdevices.ipm.IPMDiode pcdsdevices.ipm.IPMMotion pcdsdevices.ipm.IPM_Det pcdsdevices.ipm.IPM_IPIMB pcdsdevices.ipm.IPM_Wave8 pcdsdevices.ipm.Wave8 pcdsdevices.ipm.Wave8Channel pcdsdevices.jet.BeckhoffJet pcdsdevices.jet.BeckhoffJetManipulator pcdsdevices.jet.BeckhoffJetSlits pcdsdevices.jet.Injector pcdsdevices.jet.InjectorWithFine pcdsdevices.lens.LensStack pcdsdevices.lens.LensStackBase pcdsdevices.lens.SimLensStack pcdsdevices.lens.SimLensStackBase pcdsdevices.lodcm.LODCM pcdsdevices.mirror.OffsetMirror pcdsdevices.mirror.XOffsetMirror pcdsdevices.mps.MPS pcdsdevices.mps.MPSLimits pcdsdevices.pim.LCLS2ImagerBase pcdsdevices.pim.PIM pcdsdevices.pim.PIMWithBoth pcdsdevices.pim.PIMWithFocus pcdsdevices.pim.PIMWithLED pcdsdevices.pim.PPM pcdsdevices.pim.PPMPowerMeter pcdsdevices.pim.XPIM pcdsdevices.pim.XPIMLED pcdsdevices.pump.AgilentSerial pcdsdevices.pump.EbaraPump pcdsdevices.pump.Ebara_EV_A03_1 pcdsdevices.pump.GammaController pcdsdevices.pump.GammaPCT pcdsdevices.pump.IonPumpBase pcdsdevices.pump.IonPumpWithController pcdsdevices.pump.Navigator pcdsdevices.pump.PIPPLC pcdsdevices.pump.PIPSerial pcdsdevices.pump.PROPLC pcdsdevices.pump.PTMPLC pcdsdevices.pump.QPCPCT pcdsdevices.pump.TurboPump pcdsdevices.rtds_ebd.RTDSBase pcdsdevices.rtds_ebd.RTDSK0 pcdsdevices.rtds_ebd.RTDSL0 pcdsdevices.sample_delivery.CoolerShaker pcdsdevices.sample_delivery.FlowIntegrator pcdsdevices.sample_delivery.GasManifold pcdsdevices.sample_delivery.HPLC pcdsdevices.sample_delivery.IntegratedFlow pcdsdevices.sample_delivery.M3BasePLCDevice pcdsdevices.sample_delivery.ManifoldValve pcdsdevices.sample_delivery.PCM pcdsdevices.sample_delivery.PropAir pcdsdevices.sample_delivery.Selector pcdsdevices.sample_delivery.ViciValve pcdsdevices.sensors.RTD pcdsdevices.sensors.TwinCATThermocouple pcdsdevices.sequencer.EventSequence pcdsdevices.sequencer.EventSequencer pcdsdevices.sim.SimTwoAxis pcdsdevices.spectrometer.Kmono pcdsdevices.spectrometer.VonHamos4Crystal pcdsdevices.spectrometer.VonHamosCrystal pcdsdevices.spectrometer.VonHamosFE pcdsdevices.spectrometer.VonHamosFER pcdsdevices.state.TwinCATStateConfigAll pcdsdevices.state.TwinCATStateConfigOne pcdsdevices.sxr_test_absorber.SxrTestAbsorber pcdsdevices.valve.VCN pcdsdevices.valve.VFS pcdsdevices.valve.VGC pcdsdevices.valve.VGCLegacy pcdsdevices.valve.VRC pcdsdevices.valve.VVC pcdsdevices.valve.VVCNO pcdsdevices.valve.ValveBase ```
ZLLentz commented 4 years ago

pcdsdevices.attenuator.AttenuatorCalculatorBase pcdsdevices.epics_motor.SmarActOpenLoop pcdsdevices.lens.LensStack

All stand out as candidates

klauer commented 4 years ago

Also, I noticed while looking at our pseudopositioners: some may inherit directly from ophyd.PseudoSingle instead of the MvInterface-mixin version.

silkenelson commented 4 years ago

Diling just tried on gon_h in xpp3: it existed, but it says 'progress bar not available'.

ZLLentz commented 4 years ago

That's frustrating... I prefer things we work on to stay working.

klauer commented 4 years ago

I was getting that progress bar message locally and thought it was just me... 🙍‍♂️