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

Common attributes and behavior

Most variable classes share:

  • mode: one of RW, RO, WO

  • value / disp / enum / units

  • minimum / maximum constraints

  • group 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.