Variable
Variables are the value-carrying nodes in the PyRogue tree. They provide:
a typed value model (display/native formatting, units, enum support)
access mode control (
RW,RO,WO)optional hardware I/O through block transactions
listener/update integration for GUIs and remote interfaces
Variable Types
PyRogue provides three primary variable subtypes:
Types of Variables in the PyRogue Tree:
When to use each type
pyrogue.LocalVariable: value is computed/stored locally in Python.pyrogue.RemoteVariable: value maps to hardware memory/register space.pyrogue.LinkVariable: value is derived from one or more dependency variables via custom getter/setter logic.
Common attributes and behavior
Most variable classes share:
mode: one ofRW,RO,WOvalue/disp/enum/unitsminimum/maximumconstraintsgroup tags and filtering behavior
update notifications/listeners
Polling note: variables with non-zero pollInterval participate in the root
poll scheduler. See PollQueue for scheduling details
and usage patterns.
Implementation Boundary (Python and C++)
For pyrogue.RemoteVariable, the public Python object wraps a
lower-level memory variable implementation from rogue.interfaces.memory.
This means:
Python-facing configuration (mode, formatting, limits, groups) is handled in PyRogue classes
byte/bit packing, access-range tracking, and typed conversion paths are executed in the memory interface runtime (primarily C++ block/variable logic)
transactions are still orchestrated through block and device APIs
See also:
BaseVariable Class Documentation
See BaseVariable for generated API details.