User Tools

Site Tools


lydaq_install

LYDAQ installation

Documentation daq_doc.pdf

Linux version

A debian Jessie (8) is required, more recent version (strech or Ubuntu 16) can be used but some patches in package name are then needed

Installation

The code is installed in /opt/lydaq and /opt/zdaq . Binaries and libraries are in /op/dhcal/[bin/lib] .

Remarks

  • One version of ROOT [5.4] is recompiled, it may take one hour depending on the computer CPU.
  • During the installation a passphrase is required, use the usual acqilc one.

Debian package (binaries only) installation

It works only on debian jessie amd64 architecture:

  • Download the package lydaq
  • Run sudo dpkg -i lydaq_1.0_amd64.deb

The binaries of the software is install in /data/daq and in /data/root

New version

Complete raspberry jessie image (ready to use)

LYDAQ Configuration

The description and configuration of all processes is described in a JSON file. It should be edit and then install in the Oracle database host in the CCIN2P3.

JSON file

Structure

TAGS

  • HOSTS a map of computer . Each computer is a name and a vector of programs
  • NAME the unique name of the configuration

Each program is defined by a set of tags

  • ARGS array of arguments of the program
  • ENV array of environnement variables
    • The WEBPORT variable must be defined for each application
    • The INSTANCE varaible is needed if more than one application of same kind is running on the same PC
  • NAME Name of the program, the name are specific to each daemon and are used by the run control provided. If you wish to use it keep the name of the following example
  • PROGRAM the complete path to the binary
  • PARAMETER a set of parameter for the application. Each application has specific parameters

SDHCAL-like DAQ parameters

DIFSERVER
  • “builderAddress”: “tcp:/\/lyosdhcal9:5556”, It is the address on which data are collected (builder)
  • “dbcache”: “tcp:/\/lyosdhcal9:5555”, It is the address where DB data are published (dbserver)
  • “detectorId”: 100, the detector Id for DIF data
CCCSERVER
  • “device”: “DCCCCC01”, the FTDI device name
FDAQ
  • “s_ctrlreg”: “0x815A1B40”, the control register used by all DIF
WRITER
  • “dif”: 48, Number of DIF (unused )
  • “directory”: “/data/NAS/stageM2”, Directory for writing
  • “processor”: a list of pluggins library that will process events
    • “binarywriter”, binary writer
    • “lydaq_pluggins_monitor”, duplicate event for monitoring
    • “lydaq_pluggins_rootwriter”, root writing
    • “lydaq_pluggins_lciowriter”, lcio writing
  • “shmpath”: “/dev/shm/monitor”, Path use for monitor dupication
  • “stream”: [“tcp:\/\/*:5556”] List of listening ports
DBSERVER
  • “mode”: “DB”, or “WEB” if you do not installed occi (arm pc)
  • “path”: “/dev/shm/”, path wher binaries of configuration is stored
  • “publish”: “tcp:\/\/*:5555”, publish port to DIFSERVER
  • “state”: “TestChamberLPC”, the DB state

Monitoring applications

Each slow control application has 3 mandatory parameters:

  • “TCPPort”: 5600, the publication port
  • “location”: “DOME_STACK”, The location of the monitor hardware
  • “period”: 30, the period of monitoring in second

Example

{
"HOSTS": {
"lyoilcrpi02": [
{
"ARGS": [],
"ENV": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=42000"
],
"NAME": "CCCSERVER",
"PARAMETER": {
"device": "DCCCCC01"
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Sdcc"
},
{
"ARGS": [],
"ENV": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=41000"
],
"NAME": "GPIO",
"PARAMETER": {
"device": "1"
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_GPIO"
},
{
"ARGS": [],
"ENV": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=40000",
"INSTANCE=12"
],
"NAME": "DIFSERVER",
"PARAMETER": {
"builderAddress": "tcp://lyosdhcal9:5556",
"dbcache": "tcp://lyosdhcal9:5555",
"detectorId": 100
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Dif"
}
],
"lyoilcrpi13": [
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/opt/dhcal/root/lib:/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=31000"
],
"NAME": "HIH",
"PARAMETER": {
"TCPPort": 5600,
"location": "DOME_STACK",
"period": 30
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_hih8000"
}
],
"lyoilcrpi24": [
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/opt/dhcal/root/lib:/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=31000"
],
"NAME": "BMP",
"PARAMETER": {
"TCPPort": 5600,
"location": "DOME_STACK",
"period": 30
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Bmp"
},
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/opt/dhcal/root/lib:/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=32000"
],
"NAME": "ZUP",
"PARAMETER": {
"TCPPort": 5610,
"device": "/dev/ttyUSB0",
"location": "DOME_STACK",
"period": 30,
"port": 1
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Zup"
}
],
"lyosdhcal9": [
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=45000"
],
"NAME": "FDAQ",
"PARAMETER": {
"s_ctrlreg": "0x815A1B40"
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Control"
},
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/opt/dhcal/root/lib:/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=51000"
],
"NAME": "WRITER",
"PARAMETER": {
"dif": 48,
"directory": "/data/NAS/stageM2",
"processor": [
"binarywriter",
"lydaq_pluggins_monitor",
"lydaq_pluggins_rootwriter",
"lydaq_pluggins_lciowriter"
],
"shmpath": "/dev/shm/monitor",
"stream": [
"tcp://*:5556"
]
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Builder"
},
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"CONFDB=ILC/fFQeV52rQy@(DESCRIPTION_LIST=(LOAD_BALANCE=off)(FAILOVER=on)(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=ccscanovo.in2p3.fr)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=calice.in2p3.fr)))(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=ccscanodgvo.in2p3.fr)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=calice.in2p3.fr))))",
"CONFDB_WEB=cmsLyon/RPC_2008@ilcconfdb.ipnl.in2p3.fr",
"WEBPORT=44000"
],
"NAME": "DBSERVER",
"PARAMETER": {
"mode": "DB",
"path": "/dev/shm/",
"publish": "tcp://*:5555",
"state": "TestChamberLPC"
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_ConfigurationDB"
},
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=36000"
],
"NAME": "FSLOW",
"PARAMETER": {
"account": "admin/admin@lyoac28",
"deviceName": "SY1527@DOMESTAGEM2",
"first": 0,
"last": 5,
"serverName": "tcp://*:5500"
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Slow_Control"
},
{
"ARGS": [],
"ENV": [
"LD_LIBRARY_PATH=/opt/dhcal/root/lib:/usr/lib:/usr/local/lib:/opt/dhcal/lib:$LD_LIBRARY_PATH",
"WEBPORT=31000"
],
"NAME": "ISEG",
"PARAMETER": {
"TCPPort": 5600,
"address": "lyoilchv01.ipnl",
"first": 0,
"last": 55,
"location": "DOME_STACK",
"period": 120
},
"PROGRAM": "/opt/dhcal/bin/lydaq_daemon_Wiener"
}
]
},
"NAME": "chamber_stack_lpc_2"
}

Managment of JSON file

In order to store data in the Oracle DB you need a login and password. Please contact Guillaume to get one if you don't know it.

Storage of a file

Access the DAQ control page.

Go to Manage Configuration page,end of page and create New configuration

Choose your file and create. Then you must click once on your configuration to have it surrounded by a red line, i.e, it is available

List files and access it

With the same account goto ilcconfdb , you will have a list of all registered configuration

To access one go to one example where the last name is the name of the config.

LYDAQ Usage

DAQ control interface

The DAQ control interface is accessible from anywhere but the browser should be able to send http commands to the DAQ computers. It should be either in the same network or accessible via SOCKS proxy using a dynamic ssh tunnel.

Once logged in, you can choose the configuration used and control the DAQ whatever the current status is.

The list of command and the sequence of acquisition is the same as the one described in the command line interface bellow (one name differs PREPARE instead of daq-service).

Command line interface

The .daqrc file

This file defines 2 aliases and for each of them the login to be used and the configuration file. It then launch the fdaq script

alias slccontrol="export DAQLOGIN=cmsLyon:RPCxxxxx;export DAQURL=https://ilcconfdb.ipnl.in2p3.fr/config-content/stageM2_daq_2;/opt/lydaq/apps/bin/fdaq.py"

alias daqcontrol="export DAQLOGIN=cmsLyon:RPCxxxxx;export DAQURL=https://ilcconfdb.ipnl.in2p3.fr/config-content/Testchamber2_23022019;/opt/lydaq/apps/bin/fdaq.py"

this file should be sourced in the .bashrc

Job control

  • create , daqcontrol –jc-create , initialise job control
  • start , daqcontrol –jc-start , start all processes
  • kill , daqcontrol –jc-kill , kills all processes
  • destroy , daqcontrol –jc-destroy , allow new initialisiation with a different file for job control
  • status , daqcontrol –jc-status , Lists status of all processses

Data acquisition

  • create, daqcontrol –daq-create , initialise the FDAQ process
  • discover, daqcontrol –daq-discover , Ask FDAQ to initialise all processess described inthe configuration file
  • service, daqcontrol –daq-service , configure services like Event Builder, DB server, Trigger control
  • initialise, daqcontrol –daq-initialise , initialise DIF server access
  • configure, daqcontrol –daq-configure, Configure DIFs and ASICs
  • start,daqcontrol –daq-start, start a new run
  • stop,daqcontrol –daq-stop, stop the run
  • destroy,daqcontrol –daq-destroy, go back before the initialise
Status
  • state,daqcontrol –daq-state, Current state of the Daq
  • status, daqcontrol –daq-status, List the status of all DIFs
  • Event builder, daqcontrol –daq-evbstatus, run and event writen

Normal sequence from scratch:

  1. daqcontrol –jc-create
  2. daqcontrol –jc-start
  3. daqcontrol –jc-status
  4. daqcontrol –daq-create
  5. daqcontrol –daq-discover
  6. daqcontrol –daq-service
  7. daqcontrol –daq-initialise
  8. daqcontrol –daq-status

At this stage the DIFs should all be initialised

  1. daqcontrol –daq-configure
  2. daqcontrol –daq-status

At this stage all the DIFs should be CONFIGURED all OK

Then one can start and stop runs

  1. daqcontrol –daq-start
  2. daqcontrol –trig-resume
  3. sleep 7200 (wait 2 hrs)
  4. daqcontrol –daq-stop
lydaq_install.txt · Last modified: 2021/07/10 23:21 (external edit)