Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: New devices #400

Merged
merged 34 commits into from
Apr 14, 2020
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
0b5e9f0
ENH: Add goniometer classes
ZryletTC Mar 16, 2020
4c76df0
MNT: Import newer PIM classes and fix typo in doc stub
ZryletTC Mar 16, 2020
64907bd
ENH: Create objects for vonHamos spectrometers matching existing IOC
ZryletTC Mar 18, 2020
bdfa456
MNT: Add BaseInterface to IPM and VonHamos classes as necessary
ZryletTC Mar 19, 2020
6c61f4f
MNT: Add insert and fix transmission for IPMMotion
ZryletTC Mar 19, 2020
6f16e7e
MNT: Add class for vonHamos common motion without rotation
ZryletTC Mar 20, 2020
bbe8dbb
MNT: isort device_types and ipm import
ZryletTC Mar 20, 2020
d004d49
WIP: First attempt at Beckhoff liquid jet implementation
ZryletTC Mar 25, 2020
60f3ae3
MNT: Change IPM diode from 'omitted' to 'normal'
ZryletTC Mar 25, 2020
ae4dca3
ENH: Add combined state positioner classes
ZryletTC Mar 25, 2020
a6aac84
DOC: Fix quoting of types in docstrings
ZryletTC Mar 25, 2020
4be6f77
ENH: Add TimeTool and Prefocus classes
ZryletTC Mar 25, 2020
55e2912
MNT: Adjust combined state device prefixes to what's in the IOC
ZryletTC Mar 26, 2020
d2afe32
ENH: Add goniometer factory function
ZryletTC Apr 3, 2020
2276b36
ENH: Make prefix optional for vonHamos common-only classes
ZryletTC Apr 4, 2020
d5b7e48
ENH: Add new devices to device_types.py, plus some missing ones
ZryletTC Apr 8, 2020
6bd7c4f
API: SignalRO is no longer imported to ophyd.signal as of v1.4.1
ZryletTC Apr 9, 2020
1477b7d
DOC: Complete docstrings for new devices
ZryletTC Apr 9, 2020
92e2cff
TST: Add tests for new devices
ZryletTC Apr 9, 2020
db758ad
ENH: Add transmission defaultdict to Prefocus and TimeTool classes
ZryletTC Apr 9, 2020
f4b41ca
BUG: Fix typo in GonWithDetArm init parameters
ZryletTC Apr 10, 2020
20f2b93
TST: Fix Kappa test init parameters
ZryletTC Apr 10, 2020
10cce33
MNT: Renamed tt.py to timetool.py
ZryletTC Apr 10, 2020
e782097
TST: Add test case for transmission when inserted
ZryletTC Apr 10, 2020
3aa96c8
ENH: Don't insert if already inserted
ZryletTC Apr 13, 2020
a473d5f
BUG: Add .git to gitlab URL to fix git clone
ZryletTC Apr 13, 2020
09bc3d2
BUG: Change tt to timetool in other files
ZryletTC Apr 13, 2020
f835bda
Merge branch 'newdevices' of github.com:ZryletTC/pcdsdevices into new…
ZryletTC Apr 13, 2020
b6d88fc
MNT: Rename timetool test file
ZryletTC Apr 13, 2020
66aa94d
DOC: Add new classes to sphinx docs
ZryletTC Apr 13, 2020
bbe76ba
MNT: Change IPM readback signals to EpicsSignalRO
ZryletTC Apr 13, 2020
6a7370c
ENH: Move goniometer XYZ stage to separate class
ZryletTC Apr 13, 2020
ed777c1
ENH: Add support for ':DO_CONFIG' PV with Wave8s
ZryletTC Apr 13, 2020
5ba6ccd
MNT: Change unknown IPM transmission to zero
ZryletTC Apr 14, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ repos:
exclude: '^(conda-recipe/meta.yaml)$'
- id: debug-statements

- repo: https://gitlab.com/pycqa/flake8
- repo: https://gitlab.com/pycqa/flake8.git
rev: 3.7.9
hooks:
- id: flake8
Expand Down
3 changes: 3 additions & 0 deletions docs/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ Full API
~pcdsdevices.epics_motor
~pcdsdevices.evr
~pcdsdevices.gauge
~pcdsdevices.gon
~pcdsdevices.inout
~pcdsdevices.interface
~pcdsdevices.ipm
~pcdsdevices.jet
~pcdsdevices.lens
~pcdsdevices.lodcm
~pcdsdevices.mirror
Expand All @@ -33,5 +35,6 @@ Full API
~pcdsdevices.sim
~pcdsdevices.slits
~pcdsdevices.state
~pcdsdevices.timetool
~pcdsdevices.utils
~pcdsdevices.valve
5 changes: 5 additions & 0 deletions docs/source/epics_types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ Common EPICS Devices
Attenuator
Acromag
BeckhoffAxis
BeckhoffJet
CCM
DelayNewport
EpicsMotor
EventSequencer
GateValve
GaugeSet
Goniometer
IMS
IPM
IonPump
Expand All @@ -28,11 +30,14 @@ Common EPICS Devices
PMC100
PointingMirror
PPM
Prefocus
PulsePicker
Reflaser
Slits
Stopper
Timetool
Trigger
TTReflaser
VonHamos4Crystal
XFLS
XPIM
24 changes: 12 additions & 12 deletions pcdsdevices/analog_signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ class Acromag(Device, BaseInterface):

Parameters:
-----------
prefix : str
prefix : ``str``
The Epics base of the acromag

name : str
name : ``str``
A name to prefer to the device
"""
# Components for each channel
Expand Down Expand Up @@ -67,18 +67,18 @@ class Mesh(Device, BaseInterface):

Parameters
----------
prefix : str
prefix : ``str``
Prefix of Acromag to be used

sp_ch : int
sp_ch : ``int``
Setpoint Acromag channel to which high voltage supply setpoint
is connected. Range is 0 to 15

rb_ch : int
rb_ch : ``int``
Read back Acromag channel to which high voltage readback is
connected. Range is 0 to 15

scale : float, optional
scale : ``float``, optional
Gain for high voltage supply to be controlled by the Acromag

"""
Expand Down Expand Up @@ -115,16 +115,16 @@ def set_mesh_voltage(self, hv_sp, wait=True):

Parameters
----------
hv_sp : float
hv_sp : ``float``
Desired power supply setpoint in V. Acromag will output
necessary voltage such that the HV supply achieves the value
passed to hv_sp

wait : bool, optional
wait : ``bool``, optional
Indicates whether or not the program should pause when writing
to a PV

do_print : bool, optional
do_print : ``bool``, optional
Indicates whether or not the program should print it's
setpoint and readback values
"""
Expand All @@ -144,7 +144,7 @@ def set_rel_mesh_voltage(self, delta_hv_sp, wait=True):

Parameters
----------
delta_hv_sp : float
delta_hv_sp : ``float``
Amount to increase/decrease the power supply setpoint (in V)
from its current value. Use positive to increase and negative
to decrease
Expand All @@ -162,15 +162,15 @@ def tweak_mesh_voltage(self, delta_hv_sp, test_flag=False):

Parameters
----------
delta_hv_sp : float (V)
delta_hv_sp : ``float`` (V)
Amount to change voltage from its current value at each step.
After calling with specified step size, use arrow keys to keep
changing. Use absolute value of increment size.

^C :
exits tweak mode

test_flag : bool, opt
test_flag : ``bool``, opt
flag used in testing functions to only run `while True` loop
once - i.e single tweak mode
"""
Expand Down
15 changes: 12 additions & 3 deletions pcdsdevices/device_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,29 @@
from .analog_signals import Acromag
from .areadetector.detectors import PCDSAreaDetector
from .attenuator import Attenuator
from .beam_stats import BeamStats, SxrGmd
from .ccm import CCM
from .dc_devices import ICT
from .epics_motor import (IMS, PMC100, BeckhoffAxis, DelayNewport, EpicsMotor,
Motor, Newport)
from .evr import Trigger
from .gauge import GaugeSet
from .gon import BaseGon, Goniometer, GonWithDetArm, Kappa, SamPhi, XYZStage
from .inout import Reflaser, TTReflaser
from .ipm import IPM
from .lens import XFLS
from .ipm import IPM, IPM_IPIMB, IPM_Wave8
from .jet import BeckhoffJet
from .lens import XFLS, Prefocus
from .lodcm import LODCM
from .mirror import OffsetMirror, PointingMirror
from .movablestand import MovableStand
from .pim import PIM, PPM, XPIM
from .mps import MPS
from .pim import PIM, PPM, XPIM, PIMWithBoth, PIMWithFocus, PIMWithLED
from .pseudopos import DelayBase
from .pulsepicker import PulsePicker
from .pump import IonPump
from .sensors import RTD, TwinCATThermocouple
from .sequencer import EventSequencer
from .slits import Slits
from .spectrometer import Kmono, VonHamos4Crystal
from .timetool import TimeTool, TimeToolWithNav
from .valve import GateValve, Stopper
2 changes: 1 addition & 1 deletion pcdsdevices/doc_stubs.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
settle_time: ``float``, optional
The amount of extra time to wait before interpreting a move as done

timeout ``float``, optional
timeout: ``float``, optional
The amount of time to wait before automatically marking a long
in-progress move as failed.

Expand Down
Loading