herosdevices.hardware.bristol.wlm
=================================

.. py:module:: herosdevices.hardware.bristol.wlm

.. autoapi-nested-parse::

   Includes classes for controlling Bristol Instruments wavemeters.







Module Contents
---------------

.. py:data:: DEFAULT_OBSERVABLES

.. py:class:: WLM871(address: str, *args, **kwargs)

   Bases: :py:obj:`herosdevices.core.templates.TelnetDeviceTemplate`


   Controller for the Bristol Instruments 871A Laser Wavelength Meter with **network** interface.


   .. py:attribute:: wavelength


   .. py:attribute:: frequency


   .. py:attribute:: wavenumber


   .. py:attribute:: power


   .. py:attribute:: temperature


   .. py:attribute:: pressure


   .. py:attribute:: light_type


   .. py:attribute:: auto_exposure


   .. py:attribute:: observables
      :type:  dict


   .. py:method:: set_averaging(state: Literal['ON', 'OFF'] | bool, count: int | None = None) -> None

      Set averaging state and optionally count.

      :param state: Averaging state ('ON', 'OFF', or boolean)
      :param count: Number of readings to average (2-128), if None, current set value is not changes



   .. py:method:: get_averaging() -> dict[str, Any]

      Get current averaging settings.

      :returns: Dictionary with 'state' (str) and 'count' (int)



   .. py:method:: get_averaged_data(data_type: Literal['POW', 'FREQ', 'WAV', 'WNUM'] = 'WAV') -> float

      Get averaged data for the specified type.

      :param data_type: Type of data to get ('POW', 'FREQ', 'WAV', 'WNUM')

      :returns: Averaged value as float



   .. py:method:: calibrate() -> None

      Initiate instrument calibration.



   .. py:method:: get_calibration_settings() -> dict[str, Any]

      Get all calibration settings.

      :returns: Dictionary with calibration method, temperature, and timer settings



   .. py:method:: set_calibration_settings(method: Literal['OFF', 'TIME', 'TEMP'] | None = None, temperature_change: int | None = None, timer_minutes: int | None = None) -> None

      Set calibration settings at once.

      Settings not specified or None are not changed.

      :param method: Calibration method ('OFF', 'TIME', 'TEMP')
      :param temperature_change: Temperature change in 1/10th °C (1-50)
      :param timer_minutes: Time between calibrations in minutes (5-1440)



   .. py:method:: memory_clear() -> None

      Clear all measurements in the memory buffer.



   .. py:method:: memory_start_record() -> None

      Start writing measured data to the memory buffer.



   .. py:method:: memory_stop_record() -> None

      Stop writing measured data to the memory buffer.



   .. py:method:: memory_get_data() -> numpy.ndarray

      Get buffered data from memory.

      :returns: Buffered data as numpy array (format defined in manual)



   .. py:method:: get_identity() -> str

      Get instrument identification.

      :returns: Instrument identification string



   .. py:method:: get_error() -> tuple[int, str]

      Get error from error queue.

      :returns: Tuple of (error_number, error_message)



   .. py:method:: save_settings() -> None

      Save current instrument settings.



   .. py:method:: recall_settings() -> None

      Recall saved instrument settings.



   .. py:method:: reset_instrument() -> None

      Reset instrument to default state.



   .. py:attribute:: address


   .. py:attribute:: connection


   .. py:attribute:: write


   .. py:attribute:: read


