herosdevices.hardware.menlo.fxe =============================== .. py:module:: herosdevices.hardware.menlo.fxe .. autoapi-nested-parse:: HERO driver for the frequency-counter (FXE) module of a Menlo Systems frequency comb. Module Contents --------------- .. py:class:: FXE(ofc: herosdevices.hardware.menlo.ofc.OFC, observables: dict[str, dict[str, str]] | None = None) Bases: :py:obj:`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 :py:class:`~herosdevices.hardware.menlo.DDS`/ :py:class:`~herosdevices.hardware.menlo.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 :py:meth:`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. :param ofc: The OFC HERO this counter belongs to. :param observables: Additional observables to poll, merged on top of `DEFAULT_OBSERVABLES`, see :py:class:`~herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule`. .. py:method:: channel_frequency(channel: int) -> float Read the currently measured frequency of one counter channel. :param channel: Channel number, 1-16 (matching the device's `channel01`-`channel16` node names). :returns: The channel's currently measured frequency, in Hz. .. py:property:: rate :type: int The counter's update rate. .. py:attribute:: DEFAULT_OBSERVABLES :type: dict[str, dict[str, str]] .. py:attribute:: ofc .. py:attribute:: base_path .. py:attribute:: observables .. py:method:: 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 :py:meth:`~herosdevices.hardware.menlo.ofc.OFC.explore` to find the available relative paths, e.g. `ofc.explore(module.base_path, depth=2)`. :param relative_path: Dotted path relative to `base_path`. :returns: The current value of the node. .. py:method:: set(relative_path: str, value: Any) -> None Set the value of a node relative to this module's settings object. :param relative_path: Dotted path relative to `base_path`, see :py:meth:`get`. :param value: Value to set.