Skip to content

Commit 77112c3

Browse files
authored
Merge pull request #1320 from aberges-SLAC/SmarAct_ui_overhaul
SmarAct UI overhaul including `SmarAct.detailed` and `SmarActTipTilt.embedded` screens. Huge victory for laser folks!
2 parents 8e0560f + f799099 commit 77112c3

6 files changed

Lines changed: 6058 additions & 0 deletions

File tree

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
1275 SmarAct UI Overhaul
2+
#################
3+
4+
API Breaks
5+
----------
6+
- N/A
7+
8+
Library Features
9+
----------------
10+
- Added SmarAct.detailed.ui screen
11+
- Accompanying SmarAct.detailed.py screen to handle closed loop and picoscale
12+
- Added SmarActTipTilt.embedded ui and py screens for operational support
13+
- Designed and implemented huge improvements for all the SmarAct typhos screens, a monumental win for laser folk.
14+
15+
Device Features
16+
---------------
17+
- Added long_name fields to various SmarAct classes in pcsdevices.epics_motor
18+
19+
New Devices
20+
-----------
21+
- N/A
22+
23+
Bugfixes
24+
--------
25+
- N/A
26+
27+
Maintenance
28+
-----------
29+
- N/A
30+
31+
Contributors
32+
------------
33+
- aberges-SLAC

pcdsdevices/epics_motor.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1562,6 +1562,20 @@ class SmarActOpenLoop(Device):
15621562
module_temp = Cpt(EpicsSignalRO, ':MODTEMP', kind='normal',
15631563
doc='Temperature of the MCS2 Module in the rack')
15641564

1565+
def __init__(self, *args, **kwargs):
1566+
super().__init__(*args, **kwargs)
1567+
# Long name shenanigans
1568+
self.step_voltage.long_name = 'Step Voltage'
1569+
self.step_freq.long_name = 'Step Frequency'
1570+
self.jog_step_size.long_name = 'Jog Step Size'
1571+
self.jog_fwd.long_name = 'Jog Forward'
1572+
self.jog_rev.long_name = 'Jog Backward'
1573+
self.total_step_count.long_name = 'Total Step Count'
1574+
self.step_clear_cmd.long_name = 'Clear Step Count'
1575+
self.scan_move.long_name = 'Scan Voltage'
1576+
self.channel_temp.long_name = 'Channel Temp. (°C)'
1577+
self.module_temp.long_name = 'Module Temp. (°C)'
1578+
15651579

15661580
class SmarActTipTilt(Device):
15671581
"""
@@ -1652,6 +1666,41 @@ class SmarAct(EpicsMotorInterface):
16521666
# useful
16531667
open_loop = Cpt(SmarActOpenLoop, '', kind='omitted')
16541668

1669+
def __init__(self, *args, **kwargs):
1670+
super().__init__(*args, **kwargs)
1671+
# Long name shenanigans
1672+
# Motor Record long name overrides
1673+
self.velocity.long_name = 'Velocity'
1674+
self.velocity_base.long_name = 'Velocity Min'
1675+
self.velocity_max.long_name = 'Velocity Max'
1676+
self.acceleration.long_name = 'Acceleration'
1677+
self.motor_stop.long_name = 'Stop Motor'
1678+
self.motor_is_moving.long_name = 'Actively Moving'
1679+
self.dial_position.long_name = 'Dial Position'
1680+
self.direction_of_travel.long_name = 'Direction of Travel'
1681+
self.home_forward.long_name = 'Home Forward'
1682+
self.home_reverse.long_name = 'Home Backward'
1683+
self.low_limit_switch.long_name = 'Low Limit Switch'
1684+
self.high_limit_switch.long_name = 'High Limit Switch'
1685+
self.high_limit_travel.long_name = 'High Limit Travel'
1686+
self.low_limit_travel.long_name = 'Low Limit Travel'
1687+
self.user_setpoint.long_name = 'Setpoint'
1688+
self.user_offset.long_name = 'User Offset'
1689+
self.user_offset_dir.long_name = 'User Offset Direction'
1690+
self.motor_egu.long_name = 'EGU'
1691+
self.description.long_name = 'Description'
1692+
# SmarAct specific long names
1693+
self.pos_type.long_name = 'Positioner Type'
1694+
self.needs_calib.long_name = 'Needs Calibration?'
1695+
self.do_calib.long_name = 'Calibrate'
1696+
self.log_scale_offset.long_name = 'Logical Scale Offset'
1697+
self.def_range_min.long_name = 'Default Range Min.'
1698+
self.def_range_max.long_name = 'Default Range Max'
1699+
self.log_scale_inv.long_name = 'Logical Scale Inversion'
1700+
self.dist_code_inv.long_name = 'Distance Code Inversion'
1701+
self.channel_temp.long_name = 'Channel Temp. (°C)'
1702+
self.module_temp.long_name = 'Module Temp. (°C)'
1703+
16551704

16561705
class SmarActEncodedTipTilt(Device):
16571706
"""
@@ -1718,6 +1767,18 @@ class SmarActPicoscale(SmarAct):
17181767
def __init__(self, prefix, *, ioc_base, **kwargs):
17191768
self._ioc_base = ioc_base
17201769
super().__init__(prefix, **kwargs)
1770+
self.pico_adj_done.long_name = 'Auto Adjustment Done?'
1771+
self.pico_adj_state.long_name = 'Auto Adjustment State'
1772+
self.pico_curr_adj_prog.long_name = 'Auto Adjustment Progress'
1773+
self.pico_enable.long_name = 'PicoScale Enabled?'
1774+
self.pico_exists.long_name = 'PicoScale Exists?'
1775+
self.pico_name.long_name = 'PicoScale Name'
1776+
self.pico_present.long_name = 'PicoScale Present?'
1777+
self.pico_sig_qual.long_name = 'Signal Quality'
1778+
self.pico_valid.long_name = 'PicoScale Valid?'
1779+
self.pico_stable.long_name = 'PicoScale Stable?'
1780+
self.pico_wmax.long_name = 'Working distance (max)'
1781+
self.pico_wmin.long_name = 'Working distance (min)'
17211782

17221783

17231784
class PI_M824(PVPositionerIsClose):

0 commit comments

Comments
 (0)