Using The PyDM GUI
Rogue integrates with the PyDM platform for GUI-based monitoring and control of a running PyRogue tree.
Rogue includes a default debug GUI and supports custom PyDM screens. The stock
GUI is useful during bring-up because it can browse an entire tree without any
screen-design work. Custom screens become more useful once the operator
workflow is known and only a smaller set of Variable and Command
interactions should be exposed.
Documentation for the PyDM platform:
http://slaclab.github.io/pydm/
Rogue provides several Rogue-specific pieces on top of base PyDM. The most important are a dedicated channel driver URL prefix:
rogue://
and a set of widgets that understand common PyRogue structures such as a Root,
RunControl device, process node, or debug tree.
In practice, Rogue PyDM support is the operator-facing layer on top of the same client interface used by other remote tools. A typical workflow is:
Start a
Rootand expose it through a Rogue client interface, usually a ZMQ server.Launch either the stock debug GUI, the timeplot GUI, or a custom PyDM screen.
Bind widgets to Rogue nodes with
rogue://channel URLs.Use Rogue-specific widgets where the generic PyDM widgets do not capture the right behavior.
PyDM support in Rogue is therefore not just about launching a GUI. It also defines how PyDM addresses Rogue nodes, how a multi-server session is named, and which widgets are available when building custom displays.
Choosing Between The Stock GUI And Custom Screens
Use the default debug GUI during bring-up, integration, and debugging when you need broad visibility into the tree. It exposes the system summary widgets and the debug-tree browser without any additional UI work.
Use a custom screen when the important task is no longer “browse everything”
but instead “guide the operator through a small number of controls and status
points”. That usually means a .ui file or a Python pydm.Display subclass
that binds directly to the specific paths your system cares about.
Use the timeplot GUI when the main task is trend visualization of changing values rather than full-tree browsing.
Relationship To Client Interfaces
PyDM connects through the same client/server model used by other remote tools.
In the current implementation, the Rogue PyDM plugin resolves channels through
the ROGUE_SERVERS environment variable populated by the launcher. That
usually means:
A running Python ZMQServer
One or more GUI sessions using Rogue channel URLs
Optional coexistence with scripts, notebooks, or other clients attached to the same
Root
What To Explore Next
Starting The Rogue PyDM GUI for launching the standard debug GUI or a custom UI file
Starting The Rogue PyDM Timeplot GUI for time-series plotting workflows
Channel URLs for the Rogue-specific PyDM channel syntax
Rogue Widgets for the widget set used in custom screens