.. _getting-started: Getting started =============== Introduction ------------- SCP stands for 'Spectrograph Control Package' and lvmscp is the actor that controls the lower level actors which are controlling devices inside the spectrograph. lvmscp is based on the sdss software framework CLU. Among them, `sdss-clu` is applied to create an actor that controls each hardware and executes communication. In 'CLU', We define what an *actor* is: and actor is a piece of software that performs a well defined task (control a CCD camera, interface with a database) and is a *server* that receives *commands* and replies with a series of *keywords*. If you are not familiar with those concepts, the `CLU's documentation `_ is a good reference place. Installation ------------- ``lvmscp`` uses the `CLU `__ framework and requires a RabbitMQ instance running in the background. ``lvmscp`` can be installed using ``pip`` :: pip install sdss-lvmscp or by cloning this repository :: git clone https://github.com/sdss/lvmscp The preferred installation for development is using `poetry `__ :: cd lvmscp poetry install Hardware Components ------------------- Here is the Hardware and Software Component diagram in spectrograph. .. image:: _static/HW__conf_20210824_LCO.png :align: center Architecture ------------ Here is the Architecture and component diagram explaining the hierarchy of lvmscp. lvmscp is using the AMQP Actor class from clu which is based on RabbitMQ protocol, and each actor becomes a producer/consumer to activate commands. .. image:: _static/compo_diagram_20210824.png :align: center