Skip to content
heliaPROFILER
Reference
HELIA

run_guard

Who vouches for the board a run flashes and the instrument it powers or measures with: the guard protocols a capture consults, the operator guard the command line uses, and the rail and supply requests a power run selects.

Every name on this page is imported from helia_profiler.

API tier: experimental

Generated from the src/helia_profiler tree f38e378c801d34438affb680257217e0b58d2cd1.

Machine-readable model

  • OperatorGuardclassCapture authority from an operator who names the board and the J-Link probe on it.
  • FixtureTargetclassThe board a fixture image runs on, its J-Link device and the image's load address.
  • FixtureCaptureGuardclassCaller-owned authorization and remaining-window checks.
  • FixtureBoardPowerRequestclassExplicit station-owned supply path; enabling it does not request energy measurement.
  • FixtureRailPowerRequestclassStation-selected instrument/rail and channels, separate from firmware wiring.
  • FixturePowerGuardclassStation authority for the board and measured instrument/rail.
class

Capture authority from an operator who names the board and the J-Link probe on it.

src/helia_profiler/runs/guard.py:14

OperatorGuard(board: str, jlink_serial: str) -> None

dataclass

Capture authority from an operator who names the board and the J-Link probe on it.

HPX cannot prove which physical board a probe is wired to: the core’s CPUID and the probe list name a SoC and a serial, not a board. With this guard the operator vouches for the board and holds it for the whole capture, as hpx profile assumes. :meth:verify_target refuses a capture whose board or probe serial differs from the ones the operator named, and :meth:check allows every step. A harness that can prove the board and lock it passes its own :class:~helia_profiler.FixtureCaptureGuard instead.

API tier: experimental

method

check

Python

Allow the step: the operator holds the board for the whole capture.

src/helia_profiler/runs/guard.py:37

check(*, require_free: bool, remaining_s: float) -> None

Allow the step: the operator holds the board for the whole capture.

method

Refuse a target board or probe serial other than the operator's.

src/helia_profiler/runs/guard.py:41

verify_target(*, target: FixtureTarget, jlink_serial: str) -> None

Refuse a target board or probe serial other than the operator’s.

Errors raised by verify_target
TypeDescription
ConfigErrorThe board or the serial differs from the operator's.
class

The board a fixture image runs on, its J-Link device and the image's load address.

src/helia_profiler/fixtures/target.py:19

FixtureTarget(board: str, device: str, load_address: int) -> None

dataclass

The board a fixture image runs on, its J-Link device and the image’s load address.

API tier: experimental

class

Caller-owned authorization and remaining-window checks.

src/helia_profiler/fixtures/capture.py:38

FixtureCaptureGuard()

Caller-owned authorization and remaining-window checks.

API tier: experimental

method

Require caller-verified physical board/serial identity and exclusive ownership.

src/helia_profiler/fixtures/capture.py:43

verify_target(*, target: FixtureTarget, jlink_serial: str) -> None

Require caller-verified physical board/serial identity and exclusive ownership.

Core CPUID and probe enumeration cannot establish the physical board. Reject if the caller has no current independent board/serial evidence.

class

Explicit station-owned supply path; enabling it does not request energy measurement.

src/helia_profiler/fixtures/power.py:42

FixtureBoardPowerRequest(driver: str, serial: str, rail: str) -> None

dataclass

Explicit station-owned supply path; enabling it does not request energy measurement.

API tier: experimental

class

Station-selected instrument/rail and channels, separate from firmware wiring.

src/helia_profiler/fixtures/power.py:57

FixtureRailPowerRequest(
serial: str,
rail: str,
io_voltage: float,
sync_gpio_pin: int,
state_gpio_pin: int,
go_gpio_pin: int,
sync_input_index: int = 0,
state_input_index: int = 1,
go_output_index: int = 0,
stats_rate_hz: int = 1000,
) -> None

dataclass

Station-selected instrument/rail and channels, separate from firmware wiring.

API tier: experimental


Machine-readable: run_guard.json · run_guard.md, complete and lossless.