From 6d6e81b823c6c10a0b74cfedc7b8bfdd778ebf3e Mon Sep 17 00:00:00 2001 From: lukken <lukken@astron.nl> Date: Wed, 9 Mar 2022 11:13:16 +0000 Subject: [PATCH] L2SS-590: Readme index --- README.md | 16 ++++++++++++++++ .../startup/{README => README.md} | 0 .../{README => README.md} | 0 .../tangostationcontrol/clients/README.md | 14 +++++++------- 4 files changed, 23 insertions(+), 7 deletions(-) rename docker-compose/jupyter/ipython-profiles/stationcontrol-jupyter/startup/{README => README.md} (100%) rename docker-compose/tango-prometheus-exporter/{README => README.md} (100%) diff --git a/README.md b/README.md index 30562c680..355b2411f 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,22 @@ Station Control software related to Tango devices. +# Index + +* [Docker compose documentation](docker-compose/README.md) + * [Timescaledb](docker-compose/timescaledb/README.md) + * [Jupyter startup files](docker-compose/jupyter/ipython-profiles/stationcontrol-jupyter/startup/README.md) + * [Tango Prometheus exporter](docker-compose/tango-prometheus-exporter/ska-tango-grafana-exporter/README.md) +* [ReadTheDocs (Sphinx / ReStructuredText) documentation](tangostationcontrol/docs/README.md) +* [Source code documentation](tangostationcontrol/README.md) + * [Attribute wrapper documentation](tangostationcontrol/README.md) + * [Extensive attribute wrapper documentation](tangostationcontrol/tangostationcontrol/clients/README.md) + * [Archiver documentation](tangostationcontrol/tangostationcontrol/toolkit/README.md) + * [Adding a new tango device](tangostationcontrol/tangostationcontrol/devices/README.md) + * [HDF5 statistics](tangostationcontrol/tangostationcontrol/statistics_writer/README.md) +* [Unit tests](tangostationcontrol/tangostationcontrol/test/README.md) +* [Integration tests](tangostationcontrol/tangostationcontrol/integration_test/README.md) + # Installation ## Prerequisites diff --git a/docker-compose/jupyter/ipython-profiles/stationcontrol-jupyter/startup/README b/docker-compose/jupyter/ipython-profiles/stationcontrol-jupyter/startup/README.md similarity index 100% rename from docker-compose/jupyter/ipython-profiles/stationcontrol-jupyter/startup/README rename to docker-compose/jupyter/ipython-profiles/stationcontrol-jupyter/startup/README.md diff --git a/docker-compose/tango-prometheus-exporter/README b/docker-compose/tango-prometheus-exporter/README.md similarity index 100% rename from docker-compose/tango-prometheus-exporter/README rename to docker-compose/tango-prometheus-exporter/README.md diff --git a/tangostationcontrol/tangostationcontrol/clients/README.md b/tangostationcontrol/tangostationcontrol/clients/README.md index 9d68591c3..3aa6a653d 100644 --- a/tangostationcontrol/tangostationcontrol/clients/README.md +++ b/tangostationcontrol/tangostationcontrol/clients/README.md @@ -1,4 +1,4 @@ -#Attribute wrapper use guide +# Attribute wrapper use guide The attribute wrapper is an abstraction layer around tango attributes. This abstraction layer provides an easier and more consistent way of creating and using attributes and allows for easy reuse of code. @@ -6,7 +6,7 @@ You can find example uses of the attribute wrapper inside the devices folder: ht Inside lofar/tango/tangostationcontrol/tangostationcontrol/devices/lofar_device.py we import the attribute wrapper. Here we also create a dictionary containing all attribute values in the devices with the setup_value_dict method. This dictionary is set up when the device is initialized. This file, together with the opcua_client.py may be of interest as they are created as generic base classes. -##Functions/methods +## Functions/methods `__init__`: Comms_id: user-supplied identifier that is attached to this object, to identify which communication class will need to be attached Comms_annotation: : data passed along to the attribute. can be given any form of data. handling is up to client implementation @@ -41,7 +41,7 @@ Wrap an attribute write function to annotate its exceptions with our comms_annot -##Example Device / usage +## Example Device / usage Here an example of a Tango Device that uses the attribute wrapper is presented. The device class is a sub-class of opcua_device, which is, in turn, a sub-class of lofar_device class which implements the attribute initialisation methods (attr_list and setup_value_dict ) as stated above. ```python @@ -71,7 +71,7 @@ Once the Tango device is up and running, one can interact with the device attrib > > d.HBAT_BF_delays_RW = [....] # write attribute value -##How clients work: +## How clients work: Clients work by providing a communication interface or data accessor for the attribute. The implementation of this is largely up to the user, but must contain a `setup_attribute` function that returns a valid read and write function. Once a client has been initialized, the attributes can be assigned their read/write functions. @@ -83,16 +83,16 @@ Clients can be set up in the device, during the initialization and then can be a `tangostationcontrol/tangostationcontrol/clients/comms_client.py` provides a generic client class for us and may be of interest. -##Dependencies +## Dependencies Attribute wrappers wraps around tango attributes. As such, Tango needs to be installed. The attribute wrapper relies on 1 internal file. tango/tangostationcontrol/devices/device_decorators.py, which is imported by the attribute_wrapper.py. This file is used for ensuring the read/write functions are only called in the correct device state. -##Closing +## Closing The advantages of using attribute_wrapper class instead of the standard Tango Attribute class can be noted in the following example where, in the first part, an implementation of the standard class is presented, while in the second part the analogous implementation using an attribute_wrapper is shown. -##From official Tango documentation # +## From official Tango documentation ```python class PowerSupply(Device): -- GitLab