Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JDAQDriver.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5script=${0##*/}
6
7# ------------------------------------------------------------------------------------------
8#
9# Example script to run JDAQDriver.
10#
11# ------------------------------------------------------------------------------------------
12
13
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20
21source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
22
23if do_usage $*; then
24 usage "$script"
25fi
26
27set_variable SERVER localhost
28set_variable LOGGER localhost
29set_variable DEBUG 3
30set_variable RUN 1001
31set_variable TIMEOUT_S 3
32set_variable RUNTIME_S 1
33set_variable HOST `get_ip_address`
34set_variable HOST1 $HOST
35set_variable HOST2 $HOST
36set_variable HOST3 $HOST
37set_variable HOST4 $HOST
38set_variable PORT 5552
39set_variable EVENT_NUMBER 1234
40
41
42# re-start ligier for command and logger messages
43
44if (( 1 )); then
45 JLigier.sh continue
46fi
47
48
49# example to read event associated data from a file
50
51cat>${TMPDIR:-/tmp}/ev_init.txt<<EOF
52hello world
53EOF
54
55
56# driver input
57
58cat>${TMPDIR:-/tmp}/driver.txt<<EOF
59
60# To avoid unnecessary shell processes, the process I/O is redirected to /dev/null and the ssh command is quoted.
61# Note that process with extension /- will deliberately crash during the configure transition
62# and process with extension /+ will sleep forever during the exit transition.
63
64process JDAQDemoClient/A $HOST1 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDAQDemoClient -u %/A -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null) &;
65process JDAQDemoClient/B $HOST2 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDAQClientStarter -H $HOST3:$PORT -m "-H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG");
66process JDAQDemoClient/- $HOST3 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDAQDemoClient -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null) &;
67process JDAQDemoClient/+ $HOST4 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDAQDemoClient -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null) &;
68
69enter
70
71event ev_init:$EVENT_NUMBER { RC_CMD %<${TMPDIR:-/tmp}/ev_init.txt>%from me%<${TMPDIR:-/tmp}/ev_init.txt>% }
72event ev_configure { RC_CMD 2 1 }
73
74# Client with extension /- should have crashed by now.
75# So, put failed clients to sleep with names containing given character sequence.
76
77filter JDAQDemoClient/-;
78
79event ev_start { RC_CMD $RUN 1 }
80
81sleep $RUNTIME_S
82
83event ev_pause { RC_CMD }
84event ev_stop { RC_CMD }
85event ev_reset { RC_CMD }
86event ev_off { RC_CMD }
87
88EOF
89
90
91# The following process is assumed to run 'forever', i.e.
92# it is started before the driver and continues thereafter.
93# It is therefore killed by hand at the end of the show.
94
95JDAQDemoClient -u JDAQDemoClient/B -P $PORT &
96
97PID=$!
98
99JDAQDriver -H $SERVER -M $LOGGER -d $DEBUG -t $TIMEOUT_S -f ${TMPDIR:-/tmp}/driver.txt -c
100
101kill -9 $PID
102
103
104if (( 1 )); then
105
106 JStopDAQ.sh $SERVER
107
108fi