-
Carmelo Pellegrino authoredCarmelo Pellegrino authored
rsselector.sh 2.84 KiB
#!/bin/bash
#
# RunSetup Selector
#
# This script allow the shifter to select from a predefined list of run-setups.
#
# Author: Carmelo Pellegrino <carmelo.pellegrino@bo.infn.it>
#
function createList() {
local LIST
local file
for file in *.detectorfile; do
LIST=(${LIST[*]} "FALSE" ${file})
done
unset file
echo ${LIST[*]}
}
function dm_driver() {
echo "set session target = run"
sleep $1
echo exit
echo y
}
function log() {
[ ! -d ~/.km3_private ] && mkdir -p ~/.km3_private
local logfile="~/.km3_private/auto_ss.log"
date >>${logfile}
echo ${*} >>${logfile}
}
function now() {
# print the number of seconds elapsed since Jan 1 1970 00:00 in UTC
date -u +%s
}
function get_run_number() {
[ ! -d ~/.km3_private ] && mkdir -p ~/.km3_private
[ ! -e ~/.km3_private/last_run_number ] && echo 0 >~/.km3_private/last_run_number
local last_run_number=`cat ~/.km3_private/last_run_number`
local run_number
let "run_number = ${last_run_number} + 1"
echo ${run_number} > ~/.km3_private/last_run_number
echo ${run_number}
}
while [ 1 ]; do
# Ask for the run setup
rs_file=`zenity --title "Run Setup Selector" \
--list \
--text "Select one of the following Run Setups:" \
--radiolist \
--column="Selection" \
--column="Run Setup file" \
$(createList ${folder})`
if [ -z "${rs_file}" ]; then
zenity --error --text="No Run Setup file selectet, aborting"
exit -1
fi
# Ask for run duration
run_duration=`zenity --title "Run duration" \
--list \
--text "Select one of the following duration:" \
--radiolist \
--column="Selection" \
--column="Minutes" \
FALSE Cancel FALSE 5 TRUE 10 FALSE 20`
if [ "$run_duration" == "Cancel" ]; then
break
fi
done
# Wait 10 seconds
i=0;
while [ $i -lt 100 ]; do
echo $i
sleep 1
let "i = $i + 10"
done | zenity --progress \
--auto-close \
--text="You have 10 seconds to cancel the current operation:\nrunsetup: ${rs_file}\nduration: ${run_duration}" \
--auto-kill
# Peak the run number
run_number=`get_run_number`
daq_log_file=~/.km3_private/daq_${run_number}.log
JGetMessage -H localhost -T MSG -d 3 >${daq_log_file} &
## impl: get the pid and add to the list of must_kill_at_the_exit
# Copy selected run setup file, changing the run number
# Launch the DM
dm_driver ${run_duration} | mono DetectorControl.exe --control --reset &
# Launch the DAQ
DAQ.sh ${run_number}
# Point the browser to the correct address, if required
zenity --question \
--text="Would you like to open the DetectorManager GUI?" \
--cancel-label="No, thanks" && firefox http://localhost:1301/