Skip to content
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
43147ca
ENH: Add a SmarAct detailed screen to customize to SmarAct signals
aberges-SLAC Jan 24, 2025
6fbb854
ENH: Add a SmarActTipTilt embedded screen for simple open loop control
aberges-SLAC Jan 24, 2025
a27dff4
ENH: add hybrid pyqt script for SmarActTipTilt embedded screen to mim…
aberges-SLAC Jan 24, 2025
d93860a
MNT: Try to fix expanded panel placement and refactor the resize func…
aberges-SLAC Jan 29, 2025
86f5aac
ENH: Fix object names and formatting for controls tabs
aberges-SLAC Jan 29, 2025
315cd1f
ENH: Add hybrid pyqt script to handle SmarAct closed loop UI and incl…
aberges-SLAC Jan 29, 2025
a70c0a9
Merge branch 'pcdshub:master' into SmarAct_ui_overhaul
aberges-SLAC Jan 29, 2025
f327052
DOC: add release notes
aberges-SLAC Jan 29, 2025
38ed48d
MNT: fix some ui loading calls for both screens and resizing conditio…
aberges-SLAC Jan 31, 2025
a358576
ENH: Add long_names for SmarAct
aberges-SLAC Feb 12, 2025
0df115a
ENH: Remove ${name} macros from channels, will be handled in .py script
aberges-SLAC Feb 12, 2025
2351005
ENH: Use long_names to simplify and refactor. Add another pico signal…
aberges-SLAC Feb 12, 2025
f8d0b19
MNT: Rename LSCO and LSCI widgets to be consistent with epics_motor.d…
aberges-SLAC Feb 12, 2025
d94b4cf
MNT: Fix tab priority
aberges-SLAC Feb 12, 2025
fc706f9
MNT: make channel and module temp widget object names consistent with…
aberges-SLAC Feb 12, 2025
fcd710d
MNT: More naming convention fixes
aberges-SLAC Feb 12, 2025
8e032e7
MNT: EVEN MORE naming convention compliance
aberges-SLAC Feb 12, 2025
24b1d70
MNT: Last naming convention fix I swear
aberges-SLAC Feb 12, 2025
323d4e3
ENH: Add tooltip helpers and fix some object names
aberges-SLAC Feb 12, 2025
f30adb7
DOC: update release notes doc
aberges-SLAC Feb 12, 2025
cdd6188
Update docs/source/upcoming_release_notes/1275-SmarAct_UI_Overhaul.rst
aberges-SLAC Feb 14, 2025
77e7d92
MNT: Clean up ui_filename call and move pico timer to rightful place
aberges-SLAC Feb 14, 2025
14baba1
MNT: Clean up ui_filename call
aberges-SLAC Feb 14, 2025
f799099
Merge branch 'pcdshub:master' into SmarAct_ui_overhaul
aberges-SLAC Feb 14, 2025
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
32 changes: 32 additions & 0 deletions docs/source/upcoming_release_notes/1275-SmarAct_UI_Overhaul.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
1275 SmarAct UI Overhaul
#################

API Breaks
----------
- N/A

Library Features
----------------
- Added SmarAct.detailed.ui screen
- Accompanying SmarAct.detailed.py screen to handle closed loop and picoscale
- Added SmarActTipTilt.embedded ui and py screens for operational support
Comment thread
aberges-SLAC marked this conversation as resolved.

Device Features
---------------
- Added long_name fields to various SmarAct classes in pcsdevices.epics_motor

New Devices
-----------
- N/A

Bugfixes
--------
- N/A

Maintenance
-----------
- N/A

Contributors
------------
- aberges-SLAC
61 changes: 61 additions & 0 deletions pcdsdevices/epics_motor.py
Original file line number Diff line number Diff line change
Expand Up @@ -1562,6 +1562,20 @@ class SmarActOpenLoop(Device):
module_temp = Cpt(EpicsSignalRO, ':MODTEMP', kind='normal',
doc='Temperature of the MCS2 Module in the rack')

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Long name shenanigans
self.step_voltage.long_name = 'Step Voltage'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

side note: the long_name ophyd PR churned a little bit recently (rebase?) so these are pretty safe for the future.

self.step_freq.long_name = 'Step Frequency'
self.jog_step_size.long_name = 'Jog Step Size'
self.jog_fwd.long_name = 'Jog Forward'
self.jog_rev.long_name = 'Jog Backward'
self.total_step_count.long_name = 'Total Step Count'
self.step_clear_cmd.long_name = 'Clear Step Count'
self.scan_move.long_name = 'Scan Voltage'
self.channel_temp.long_name = 'Channel Temp. (°C)'
self.module_temp.long_name = 'Module Temp. (°C)'


class SmarActTipTilt(Device):
"""
Expand Down Expand Up @@ -1652,6 +1666,41 @@ class SmarAct(EpicsMotorInterface):
# useful
open_loop = Cpt(SmarActOpenLoop, '', kind='omitted')

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Long name shenanigans
# Motor Record long name overrides
self.velocity.long_name = 'Velocity'
self.velocity_base.long_name = 'Velocity Min'
self.velocity_max.long_name = 'Velocity Max'
self.acceleration.long_name = 'Acceleration'
self.motor_stop.long_name = 'Stop Motor'
self.motor_is_moving.long_name = 'Actively Moving'
self.dial_position.long_name = 'Dial Position'
self.direction_of_travel.long_name = 'Direction of Travel'
self.home_forward.long_name = 'Home Forward'
self.home_reverse.long_name = 'Home Backward'
self.low_limit_switch.long_name = 'Low Limit Switch'
self.high_limit_switch.long_name = 'High Limit Switch'
self.high_limit_travel.long_name = 'High Limit Travel'
self.low_limit_travel.long_name = 'Low Limit Travel'
self.user_setpoint.long_name = 'Setpoint'
self.user_offset.long_name = 'User Offset'
self.user_offset_dir.long_name = 'User Offset Direction'
self.motor_egu.long_name = 'EGU'
self.description.long_name = 'Description'
# SmarAct specific long names
self.pos_type.long_name = 'Positioner Type'
self.needs_calib.long_name = 'Needs Calibration?'
self.do_calib.long_name = 'Calibrate'
self.log_scale_offset.long_name = 'Logical Scale Offset'
self.def_range_min.long_name = 'Default Range Min.'
self.def_range_max.long_name = 'Default Range Max'
self.log_scale_inv.long_name = 'Logical Scale Inversion'
self.dist_code_inv.long_name = 'Distance Code Inversion'
self.channel_temp.long_name = 'Channel Temp. (°C)'
self.module_temp.long_name = 'Module Temp. (°C)'


class SmarActEncodedTipTilt(Device):
"""
Expand Down Expand Up @@ -1718,6 +1767,18 @@ class SmarActPicoscale(SmarAct):
def __init__(self, prefix, *, ioc_base, **kwargs):
self._ioc_base = ioc_base
super().__init__(prefix, **kwargs)
self.pico_adj_done.long_name = 'Auto Adjustment Done?'
self.pico_adj_state.long_name = 'Auto Adjustment State'
self.pico_curr_adj_prog.long_name = 'Auto Adjustment Progress'
self.pico_enable.long_name = 'PicoScale Enabled?'
self.pico_exists.long_name = 'PicoScale Exists?'
self.pico_name.long_name = 'PicoScale Name'
self.pico_present.long_name = 'PicoScale Present?'
self.pico_sig_qual.long_name = 'Signal Quality'
self.pico_valid.long_name = 'PicoScale Valid?'
self.pico_stable.long_name = 'PicoScale Stable?'
self.pico_wmax.long_name = 'Working distance (max)'
self.pico_wmin.long_name = 'Working distance (min)'


class PI_M824(PVPositionerIsClose):
Expand Down
Loading