Install


Get the code

git pull ssh://git@gitlab.cern.ch:7999/mploskon/lbltbgui.git

or

git pull https://gitlab.cern.ch/mploskon/lbltbgui.git

build and install (in the same dir)

cd lbltbgui
#make sure ROOT (http://root.cern.ch) is installed and environment set
. ./setup.sh
./build.sh

the build.sh script has options clean, realclean, debug, verbose.

Run


$ testTBGui --tx <filename> --gr <filename> --tb <filename> --tile <n> --offline --head <uint> --ch <n> --dir <folder>

All of the command line arguments are optional.

parameter function
--tx <filename> opens a text monitoring tab with the file pointed by filename
--gr <filename> opens a tab with graphical trace of the file - shows values of bytes
--tb <filename> opens a tab with the file but treats it as a test beam log file
--tile <n> will set n as the number of bytes to tail (default is 10kB); if n==0 tail is equal to file size
--offline stops all updates (opposite of "Live" -> the Live check box is set to ON by default)
--head <uint> value of the unsigned integer sets the composite operational header for which data will be displayed (only for the --tb tab)
--ch <n> enable display of channel n - can be multiple (for example: --ch 1 --ch 24 will enable two channels)
--dir <folder> folder will be the default for the text, graph and testbeam tabs when adding/removing files
--no-log stdout and stderr are not redirected and the text monitor tab on the log file is not created

Selected GUI options

Live checkbox

Unset to stop updates. Useful to zoom into the histogram (at present the canvas DOES NOT remember the user zoom).

Ignore File Status checkbox

Set to force updates to files independently of their change on disk.

Missing Trailers checkbox

Set to accept incomplete header-trailer sections. The program will assume the last known header is valid until the end of file (unless a trailer comes first).

Notes


Default "check file status" interval is 5s (use Refresh button to force... - most of other selection will also force refresh.).

Selecting a different header will clear the list of active channels.

Dropdown lists for "file activation" and "channel list" toggle the file/channel status/display.

Example


See a file included in the package...

#!/bin/bash


[ ! -z $MODULESHOME ] && module load root 

. ./setup.sh

# show the bytes in a file with a 4 byte words
# cat ./data/test3.log | ./bin/hex

# ./bit/hex32bit ./data/test3.log

#./bin/testTBGui --gr ./data/test3.log --gr setup.sh &
#./bin/testTBGui --gr ./data/test3.log &

#./bin/testTBGui \
#   --tb ./data/online_board1_dose0_2016-04-11_15-47-07.log \
#   --tb ./data/online_board1_dose0_2016-04-11_17-25-27.log \
#   --tb ./data/online_board1_dose0_2016-04-11_17-28-38.log \
#   --head 0xc3000009 \
#   --ch 0 --ch 15 --ch 3 --ch 5 --ch 2 --ch 17

./bin/testTBGui \
    --tb ./data/online_board1_dose0_2016-04-11_15-47-07.log \
    --head 0xc3000009 \
    --ch 0 --ch 1 --ch 2 --ch 3 --ch 4 --ch 10 --ch 23 &

./bin/testTBGui \
    --tb ./data/offline_board1_dose0_2016-04-11_15-41-25.log \
    --head 0xAF000002 \
    --ch 0 --ch 1 --ch 16 --ch 17 --ch 19 &

./bin/testTBGui \
    --tb ./data/offline_board1_dose0_2016-04-11_15-41-25.log \
    --head 0xc1000005 \
    --ch 0 --ch 1 --ch 2 &

./bin/testTBGui \
    --tb ./data/2016-04-17/offline_board1_dose0_2016-04-17_17-19-11.log \
    --tail 0 \
    --offline \
    --head 0xcd000013 \
    --ch 7 --ch 8 &

./bin/testTBGui \
    --tb ./data/2016-04-17/offline_board1_dose0_2016-04-17_17-19-11.log \
    --tail 0 \
    --offline \
    --head 0xcd000003 \
    --ch 7 --ch 8 &

./bin/testTBGui \
    --tb ./data/2016-04-17/online_board1_dose0_2016-04-17_17-20-59.log \
    --head 0xc3000009 \
    --ch 0 --ch 1 --ch 2 --ch 3 --ch 4 --ch 10 --ch 23 &

Other tools


hex


Dumps file hexadecimal/bytes and ascii.

$ cat ./setup.sh | hex

hex32bit


Dumps a file (1st argument) interpreting 32bit words as data in format of a test beam log file.

Option Decription
--head allows to select only interesting header-trailer sections. Makes option --n inactive.
--adc will decode and dump adc data (if payload found).
--decoder shows a log of decoding (uses the same code as GUI).
--n <uint> will decode only n 32 bit words from the file.
--graph dumps the ADC data into a root file (according to the selected header --decoder must be set).
--ascii dumps the ascii data from the file (before showing the 32 bit words).

hex32bit Example

$ hex32bit $HOME/devel/lbltbgui/data/2016-04-17/offline_board1_dose0_2016-04-17_17-19-11.log --head 0xcd000003 --adc