Skip to content

SiLab-Bonn/aidatlu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

363 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIDA-TLU

tests pre-commit documentation

Repository for controlling the AIDA-2020 Trigger Logic Unit (TLU) with Python using uHAL bindings from IPbus. The Python control software is based on EUDAQ2. The software is a lightweight version written in Python with a focus on readability and user-friendliness. Most user cases can be set with a .yaml configuration file and started by executing a single Python script. For a more in-depth look at the hardware components please take a look at the official AIDA-2020 TLU project. Additionally, take a look at the documentation for this software.

Installation

IPbus

You need to install the ControlHub from the IPbus software. Follow the linked tutorial for prerequisites and general installation. Install prerequisites.

sudo apt-get install -y make erlang

Checkout from git and compile the repository.

git clone --depth=1 -b v2.8.22 https://github.com/ipbus/ipbus-software.git
cd ipbus-software
make Set=controlhub
sudo make Set=controlhub install

In case they are errors about missing man pages, you need to create them.

sudo touch /usr/lib/erlang/man/man1/gcov-tool.1.gz # example

The default install location is located in /opt/cactus/. Then start the ControlHub.

/opt/cactus/bin/controlhub_start

The contolhub needs to run for the working of the AIDA TLU, so needs to be started again each time the controlhub is stopped. The default IP address of the TLU is:

192.168.200.30

Python Packages

From Source

After cloning the repository, install the Python packages as usual.

pip install -e .

To connect to the hardware, you need to install the hw component as well.

pip install -e .[hw]

From PyPI

pip install aidatlu

Usage

Stand-Alone Python Implementation

Connect to the TLU, configure and start a run via:

    pyaidatlu -c path/to/configuration.yaml

All configurations are done by the use of a yaml file. To stop the run use ctrl+c.

After installing from source, it is also possible to control the TLU via IPython:

    python -i aidatlu_run.py

One is now able to control the TLU through the Python terminal interface, with the following commands:

    tlu.configure()
    tlu.run()

Runs are stopped with the keyboard interrupt ctr+c.

Constellation

Start a satellite with:

    SatelliteAidaTLU -g testbeam -n TLU

For more information take a look at the constellation readme.

Tests

Test the software by using a TLU mock. Just set the environment variable:

    TEST=True pyaidatlu -c path/to/configuration.yaml

With pytest the AIDA TLU control program can be tested. There is also an implemented AIDA-TLU mock, to allow tests and software development without hardware, which also allows software development and testing without a working IPbus installation. The mock is used as a default.

    pytest -sv

To test with connected hardware set an environment variable:

    HW=True pytest -sv

About

A Python-based control software for the AIDA-2020 TLU

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages