Jpp  19.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JDAQDriver.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 script=${0##*/}
6 
7 # ------------------------------------------------------------------------------------------
8 #
9 # Example script to run JDAQDriver.
10 #
11 # ------------------------------------------------------------------------------------------
12 
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
22 
23 if do_usage $*; then
24  usage "$script"
25 fi
26 
27 set_variable SERVER localhost
28 set_variable LOGGER localhost
30 set_variable RUN 1001
31 set_variable TIMEOUT_S 3
32 set_variable RUNTIME_S 1
33 set_variable HOST `get_ip_address`
34 set_variable HOST1 $HOST
35 set_variable HOST2 $HOST
36 set_variable HOST3 $HOST
37 set_variable HOST4 $HOST
38 set_variable PORT 5552
39 set_variable EVENT_NUMBER 1234
40 
41 
42 # re-start ligier for command and logger messages
43 
44 if (( 1 )); then
45  JLigier.sh continue
46 fi
47 
48 
49 # example to read event associated data from a file
50 
51 cat>${TMPDIR:-/tmp}/ev_init.txt<<EOF
52 hello world
53 EOF
54 
55 
56 # driver input
57 
58 cat>${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 
64 process 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) &;
65 process JDAQDemoClient/B $HOST2 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDAQClientStarter -H $HOST3:$PORT -m "-H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG");
66 process 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) &;
67 process 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 
69 enter
70 
71 event ev_init:$EVENT_NUMBER { RC_CMD %<${TMPDIR:-/tmp}/ev_init.txt>%from me%<${TMPDIR:-/tmp}/ev_init.txt>% }
72 event 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 
78 
79 event ev_start { RC_CMD $RUN 1 }
80 
81 sleep $RUNTIME_S
82 
83 event ev_pause { RC_CMD }
84 event ev_stop { RC_CMD }
85 event ev_reset { RC_CMD }
86 event ev_off { RC_CMD }
87 
88 EOF
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 
95 JDAQDemoClient -u JDAQDemoClient/B -P $PORT &
96 
97 PID=$!
98 
99 JDAQDriver -H $SERVER -M $LOGGER -d $DEBUG -t $TIMEOUT_S -f ${TMPDIR:-/tmp}/driver.txt -c
100 
101 kill -9 $PID
102 
103 
104 if (( 1 )); then
105 
106  JStopDAQ.sh $SERVER
107 
108 fi
EOF cat ev_configure_dqueue_dqdf txt<< EOFtimeslice_duration=100;run_start_time=0;max_dump_size=0;dump_file_prefix=dump_;dump_file_postfix=.dqd;opto_ports=56015;acou_ports=56016;opto_recipients=127.0.0.1:5556;acou_recipient=127.0.0.1:5800;EOFcat > driver txt<< EOFprocess DataQueue $DATAQUEUE"DataQueue -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -o -a </dev/null >& dev null& process JDataWriter $DATAWRITER JDataWriter u $NAME H $SERVER M $LOGGER d $DEBUG</dev/null >& dev null& process JDataFilter $DATAFILTER JDataFilter u $NAME P $PORT H $SERVER M $LOGGER d $DEBUG</dev/null >& dev null& enter event ev_init
then usage $script[port]< option > nPossible restart fi case set_variable OPTION set_variable PORT
event< ev_daq > ev_reset
Definition: JDAQCHSM.chsm:180
process 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)&
event< ev_daq > ev_stop
Definition: JDAQCHSM.chsm:179
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable SERVER localhost define_variable LOGGER if do_usage *then usage $script< server >[logger] fi case set_variable LOGGER
Definition: JStopDAQ.sh:23
then JLigier sh continue fi cat
Definition: JDAQDriver.sh:51
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
event< ev_daq > ev_pause
Definition: JDAQCHSM.chsm:177
then git check attr all $INPUT_FILE grep filter
Definition: getFile.sh:80
then
Definition: datalogs.sh:34
then PID
Definition: mkqueue.sh:67
process 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)&
event< ev_daq > ev_configure
Definition: JDAQCHSM.chsm:175
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR if do_usage *then usage $script[(input file)+] fi set_variable DEBUG set_variable WORKDIR TMPDIR
then rm i $OUTPUT_FILE fi let RUN
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
* usage
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonStart.sh:47
then usage $script[energy[distance[z of PMT]]] fi case set_variable z
Definition: JDrawPDF.sh:45
do sleep done JPutMessage H $LOGGER t MSG m Hello world
&set_variable SERVER
Definition: JStopDAQ.sh:29
then JHobbit a $DETECTOR f
event< ev_daq > ev_off
Definition: JDAQCHSM.chsm:182
static const JNET::JTag RC_CMD
Definition: JDAQTags.hh:66
process JDAQDemoClient B $HOST2(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&JDAQClientStarter-H $HOST3:$PORT-m"-H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG")
&set_variable HOST
double u[N+1]
Definition: JPolint.hh:865
then echo
Definition: JQAQC.sh:92
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62