Channel URLs
PyDM widgets connect to Rogue nodes through the Rogue data-plugin URL scheme:
rogue://0/MyRoot.MyDevice.MyVariable
The general form is:
rogue://<server>/<path>/<mode>/<index>
Only the server selector and path are required. mode and index are
optional.
The plugin parses these addresses in
python/pyrogue/pydm/data_plugins/rogue_plugin.py and resolves them against
the server list for the current PyDM session.
Server Selection
The <server> field can be either:
A zero-based server index within the current PyDM session, or
An explicit
host:portpair
Examples:
rogue://0/root.MyDevice.MyVariable
rogue://localhost:9099/root.MyDevice.MyVariable
Using an explicit host:port can be convenient for one-off debugging. Using
the numeric server index is usually better for reusable screens because the UI
can stay the same while the launcher chooses which servers occupy indices
0, 1, and so on.
Using root as an Alias
Rogue accepts both the real Root name and the root alias in channel paths.
The alias is useful when building generic screens that should work across
systems whose actual Root names differ.
Examples:
rogue://0/root
rogue://0/MyRoot
Access Modes
The optional mode suffix tells the plugin what view of the node to expose.
The main supported modes are:
value: Raw value access. This is the default.disp: Display-formatted value fromgetDisp().name: Node name.path: Full Rogue path.
When no mode is supplied, the plugin uses value.
Example:
rogue://0/root.Device.Variable/disp
This is especially useful when binding labels and line edits:
Use
/namefor labels that should show the node name.Use
/pathwhen the full path is useful in the UI.Use
/dispwhen the display representation matters more than the raw underlying type.
For editable text widgets, /disp is usually the most practical choice
because it follows Rogue’s display formatting and string conversion behavior.
Array Indexing
The optional index field selects an element from list-like values:
rogue://0/root.Device.ArrayVariable/value/3
That allows a widget to bind to one element of a larger list or array without having to display the whole object.
This suffix is applied after the mode field. For example, the third element of an array variable’s display value uses:
rogue://0/root.Device.ArrayVariable/disp/2
What To Explore Next
Launching the stock or custom GUI: Starting The Rogue PyDM GUI
Rogue-specific widget behavior: Rogue Widgets