herosdevices.hardware.menlo.fxe

HERO driver for the frequency-counter (FXE) module of a Menlo Systems frequency comb.

Module Contents

class herosdevices.hardware.menlo.fxe.FXE(ofc: herosdevices.hardware.menlo.ofc.OFC, observables: dict[str, dict[str, str]] | None = None)[source]

Bases: herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule

Driver for the frequency-counter (FXE) module of a Menlo Systems frequency comb.

Wraps the OFC’s functionalLayer.fxeSettings sub-tree, a fixed, singleton module (there is only one FXE counter per OFC, so unlike DDS/ LaserLock there is no funclayer_identifier to select). Confirmed reachable directly at functionalLayer.fxeSettings (the same object is also reachable via modules[“SYNCRO3U”].functionalLayer.fxeSettings).

Unlike the other functional-layer modules, FXE has no lock loop or DDS - it is a pure 16-channel frequency counter. Use channel_frequency() to read a specific channel; which channel carries which physical beat signal is deployment-specific, so there is no fixed per-channel DEFAULT_OBSERVABLES here - pass observables to poll the channels relevant to your comb.

Parameters:
  • ofc – The OFC HERO this counter belongs to.

  • observables – Additional observables to poll, merged on top of DEFAULT_OBSERVABLES, see FunctionalLayerModule.

channel_frequency(channel: int) float[source]

Read the currently measured frequency of one counter channel.

Parameters:

channel – Channel number, 1-16 (matching the device’s channel01-channel16 node names).

Returns:

The channel’s currently measured frequency, in Hz.

property rate: int

The counter’s update rate.

DEFAULT_OBSERVABLES: dict[str, dict[str, str]]
ofc
base_path
observables
get(relative_path: str) Any

Read the current value of a node relative to this module’s settings object.

Use this for module properties not already exposed as a named attribute. See explore() to find the available relative paths, e.g. ofc.explore(module.base_path, depth=2).

Parameters:

relative_path – Dotted path relative to base_path.

Returns:

The current value of the node.

set(relative_path: str, value: Any) None

Set the value of a node relative to this module’s settings object.

Parameters:
  • relative_path – Dotted path relative to base_path, see get().

  • value – Value to set.