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:

  1. Start a Root and expose it through a Rogue client interface, usually a ZMQ server.

  2. Launch either the stock debug GUI, the timeplot GUI, or a custom PyDM screen.

  3. Bind widgets to Rogue nodes with rogue:// channel URLs.

  4. 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