herosdevices.hardware.menlo.dds =============================== .. py:module:: herosdevices.hardware.menlo.dds .. autoapi-nested-parse:: HERO driver for a DDS-based RF output of a Menlo Systems frequency comb. Module Contents --------------- .. py:class:: DDS(ofc: herosdevices.hardware.menlo.ofc.OFC, funclayer_identifier: str, observables: dict[str, dict[str, str]] | None = None) Bases: :py:obj:`herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule`, :py:obj:`herosdevices.interfaces.atomiq.RFSource` Driver for a DDS-based RF output of a Menlo Systems frequency comb. Wraps one `functionalLayer.Settings` sub-tree of an already-running :py:class:`~herosdevices.hardware.menlo.ofc.OFC`. This covers only the bare DDS output. For a module that additionally has a closed feedback loop locking the DDS to a reference (a beat-note PLL), use :py:class:`~herosdevices.hardware.menlo.LaserLock` instead. Polls :py:attr:`DEFAULT_OBSERVABLES` for `observable_data` with live reads from the OFC, superseding the `RFSource` interface's own cached-value observable. :param ofc: The OFC HERO this DDS output belongs to. :param funclayer_identifier: Identifier of the module's functional-layer settings object, e.g. "cw1112_1" for the sub-tree at `functionalLayer.cw1112_1Settings`. Use `ofc.explore("functionalLayer")` to find the identifier for a given module. :param observables: Additional observables to poll, merged on top of `DEFAULT_OBSERVABLES`, see :py:class:`~herosdevices.hardware.menlo.functional_layer.FunctionalLayerModule`. .. py:attribute:: amp_max :type: float :value: 1.0 .. py:attribute:: amp_min :type: float :value: 0.0 .. py:attribute:: freq_max :type: float :value: 100000000.0 .. py:attribute:: freq_min :type: float :value: 0.0 .. py:attribute:: DEFAULT_OBSERVABLES :type: dict[str, dict[str, str]] .. py:property:: output_enabled :type: bool Whether the DDS output is enabled. .. 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. .. py:attribute:: frequency :type: float :value: 1000000.0 .. py:attribute:: amplitude :type: float :value: 0.1 .. py:attribute:: phase :type: float :value: 0.0 .. py:attribute:: default_ramp_steps :type: int :value: 30 .. py:attribute:: blind :type: bool :value: False