PyRogue Tree

PyRogue organizes application control around a hierarchical tree owned by one running Root. That tree is where hardware abstractions, operator-facing controls, background activity, and remote access meet.

Most PyRogue work starts with the tree, even when the real task is hardware control, register definition, data movement, or GUI integration. The tree is the layer that gives those lower-level pieces a stable user-facing structure: Device Nodes describe the system, Variable and Command Nodes expose state and actions, and client interfaces make that structure visible to tools.

The section is organized in the same order most users need to learn it:

  • PyRogue Tree Components And Concepts explains the object model and runtime behavior of Root, Device, Variable, Command, Block, and Model. Start here if you are building or extending a tree.

  • Built-in Devices covers reusable Device implementations for common workflows such as run control, PRBS, stream read/write, and process control.

  • Client Interfaces covers the server/client access patterns used by scripts, GUIs, notebooks, and command-line tools.

Architectural View

The tree model is intentionally independent from hardware bus topology. You can optimize memory and stream transport plumbing for performance while keeping a stable user-facing organization in the tree.

That separation is important because it lets one design serve multiple needs at once. The same running Root can:

  • Present a coherent register and control hierarchy to operators.

  • Reuse built-in Device helpers for common behaviors.

  • Expose the same live tree to PyDM, command-line clients, notebooks, or other remote consumers.

Reading Path

If you are new to this part of the docs, the most useful order is:

  1. Read PyRogue Tree Components And Concepts to understand the tree model and the role of Root.

  2. Continue into the core pages for Root, Device, Variable, and Command.

  3. Move to built-in Devices once the composition model is clear.

  4. Read client interfaces after you know how the tree is organized internally.