Skip to content

Qtsignals refactor#321

Open
Shekar V (vshekar) wants to merge 7 commits into
NSLS2:masterfrom
vshekar:qtsignals-refactor
Open

Qtsignals refactor#321
Shekar V (vshekar) wants to merge 7 commits into
NSLS2:masterfrom
vshekar:qtsignals-refactor

Conversation

@vshekar
Copy link
Copy Markdown
Collaborator

Previously, any Epics PV that triggers a change in the QT UI would do the following:

  • Define EPICS PV
  • Define QtSignal
  • EPICS callback that triggers the QT signal
  • QT Signal then runs a callback that does some work in the frontend
    In practically every case, the EPICS callback simply takes the PV value and passes it to the qt signal. This leads to repeating code and very little variation (not DRY)
    EpicsQObject attempts to address that. There are escape hatches in case there is a need for custom epics callbacks

Previously, any Epics PV that triggers a change in the QT UI would do the following:
  - Define EPICS PV
  - Define QtSignal
  - EPICS callback that triggers the QT signal
  - QT Signal then runs a callback that does some work in the frontend
In practically every case, the EPICS callback simply takes the PV value and passes it to the qt signal. This leads to repeating code and very little variation (not DRY)
`EpicsQObject` attempts to address that. There are escape hatches in case there is a need for custom epics callbacks
@vshekar Shekar V (vshekar) marked this pull request as ready for review October 14, 2025 23:58
Copy link
Copy Markdown
Collaborator

@JunAishima Jun Aishima (JunAishima) left a comment

Choose a reason for hiding this comment

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

Removing boilerplate and using f-strings instead of raw addition are very welcome, but it is unclear whether the custom_pv kwarg is necessary with the current LSDC code and this PR.

Comment thread gui/epics_signal.py Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants