DUNE-DAQ / dtpcontrols

DUNE Trigger Primitives Control Software
0 stars 1 forks source link
dunedaq-common dunedaq-online dunedaq-team-udaq

dtpcontrols

This package contains python tools for control of the DUNE Trigger Primitive firmware.

Control API

The entry point for control of the firmware is the DTPPodNode, which should be created using a uhal::HwInterface :

uhal::ConnectionManager cm( conn_file_name , {"ipbusflx-2.0"});
uhal::HwInterface flx = cm.getDevice( device_name );
DTPPodNode dtp_pod_node ( flx.getNode() );

The DTPPodNode provides methods to navigate the firmware node structure, such as get_control_node() etc. These methods return firmware nodes of various types, which provide further navigation methods, as well as methods that control/configure the firmware.

However, all high level actions can be instigated via methods on DTPPodNode. The C++ applications in test/apps can be used as examples.

DTPPodNode is not currently thread safe.

Python tools

hfButler.py provides control, test and diagnostic functions. Some examples of usage are given below.

Note that the first argument is the device to control. These examples control TPG firmware in one half FELIX.

C++ tools

The following tools test the C++ code in standalone mode (ie. outside dunedaq). Only basic functionality is provided so far.

Usage: dtpcontrols_test_reset [options]

Options: -c connection file name -d device name


* Configuration

dtpcontrols_test_config

Usage: dtpcontrols_test_config [options]

Options: -c connection file name -d device name -v verbose mode -t TP threshold -m comma-separated list of channels to mask


* Enable/disable

dtpcontrols_test_enable

Usage: dtpcontrols_test_enable [options]

Options: -c connection file name -d device name -s disable


* Monitor

dtpcontrols_test_monitor

Usage: dtpcontrols_test_monitor [options]

Options: -c connection file name -d device name -v verbose mode -l number of links -p number of pipes -s time between reads