runPyDM

For conceptual usage, see:

pyrogue.pydm.runPyDM(serverList='localhost:9090', ui=None, display=None, display_factory=None, title=None, sizeX=800, sizeY=1000, maxListExpand=5, maxListSize=100, linkTimeout=10.0, requestStallTimeout=None)[source]

Launch the default Rogue PyDM application.

Parameters:
  • serverList (str, default: 'localhost:9090') – Comma-separated list of host:port Rogue servers.

  • ui (str | None, default: None) – Optional UI file path. Defaults to pydmTop.py in this package if neither display nor display_factory is supplied.

  • display (type[Display] | None, default: None) – Optional top-level pydm.Display subclass to instantiate directly.

  • display_factory (Callable[..., Display] | None, default: None) – Optional factory that returns a pydm.Display instance.

  • title (str | None, default: None) – Optional window title. Defaults to "Rogue Server: <servers>".

  • sizeX (int, default: 800) – Initial window width in pixels.

  • sizeY (int, default: 1000) – Initial window height in pixels.

  • maxListExpand (int, default: 5) – Debug-tree auto-expand depth argument forwarded to the UI.

  • maxListSize (int, default: 100) – Debug-tree list-size cap argument forwarded to the UI.

  • linkTimeout (float, default: 10.0) – Idle timeout in seconds for VirtualClient link-state detection. This is the normal tuning knob for long-running hardware or simulation transactions and defaults to 10 seconds.

  • requestStallTimeout (float | None, default: None) – In-flight request age in seconds before the VirtualClient declares the server stalled. None disables stalled-request detection, which is usually the right default unless the application has a strict upper bound for valid request duration.

Returns:

This function runs the Qt event loop until the application exits.

Return type:

None

Notes

Do not instantiate a plain qtpy.QtWidgets.QApplication before calling runPyDM. runPyDM constructs a pydm.PyDMApplication, which must be the sole qtpy.QtWidgets.QApplication in the process so PyDM’s window-management hooks (XSync counter updates and _NET_WM_PING reply registration) attach to the visible windows. Constructing a plain qtpy.QtWidgets.QApplication first leaves PyDM’s hooks bound to a stub instance and the visible windows fail to reply to the compositor’s ping/sync messages, leading to spurious “not responding” warnings (notably under GNOME-on-Wayland with XWayland). runPyDM detects this case and raises RuntimeError.