******** Overview ******** Introduction ------------ The LOVE-producer is part of the LSST Operators Visualization Environment (L.O.V.E). It provides the necessary communication system to conect the LOVE-manager and SAL. It produce DDS messages to LOVE for one or more components of the LSST system. .. image:: ../assets/producer-overview.svg It is a Python package and uses :code:`asyncio` and the :code:`salobj` library to handle asynchronous communication between the LOVE-manager and SAL. It generates a websocket client, reads telemetries and events from SAL and then produces the messages to be sent to the LOVE-manager server. The producer is configured with the name and the salindex of a specific CSC in order to connect to the respective `salobj.Remote`. Configurations -------------- Three environment variables must be set to allow the producer communicate with SAL and the LOVE-manager: - :code:`LSST_DDS_PARTITION_PREFIX`: Used by :code:`salobj` to filter SAL messages in the network. - :code:`PROCESS_CONNECTION_PASS`: Password used by the LOVE-manager to allow the reception of messages from the LOVE-producer. - :code:`WEBSOCKET_HOST`: Hostname or IP address of the LOVE-manager service. How to run ---------- To run a love producer you need first to export the environment variables described above. Then you need to execute the following commands: .. code-block:: bash $ pip install $ run_love_producer --components : --log-level You need to first install the package from :code:`` which is the root folder of the code. Then to run one (or more) producer(s) use the :code:`run_love_producer` with the :code:`--components` argument. The :code:`` is the name of the CSC and :code:`` is the salindex of the CSC, if running more than one producer just use a comma separated list with the previously described params. You can also configure the logging level with the :code:`--log-level` argument where :code:`` is the log level in numeric form.