4 # ------------------------------------------------------------------------------------------
 
    6 #                Auxiliary script to plot slow control data from database.
 
    8 # ------------------------------------------------------------------------------------------
 
   10 if [ -z $JPP_DIR ]; then
 
   11     echo "Variable JPP_DIR undefined."
 
   15 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   17 set_variable:  DEBUG     DATABASE_DEBUG      2
 
   18 set_variable:  WORKDIR   DATABASE_WORKDIR    ${TMPDIR:-/tmp}/
 
   19 set_variable:  CANVAS    DATABASE_CANVAS     1200x600
 
   20 set_variable:  TIMEAXIS  DATABASE_TIMESAXIS  %d:%m:%y%F1970-01-01 00:00:00
 
   21 set_variable:  GRAPHICS  DATABASE_GRAPHICS   gif
 
   22 set_variable:  WILDCARD  DATABASE_WILDCARD   %
 
   25     usage "$script <input file> <parameters file> [working directory]"
 
   29     3) set_variable WORKDIR           $3;&
 
   30     2) set_variable PARAMETERS_FILE   $2;
 
   31        set_variable INPUT_FILE        $1;;
 
   32     *) fatal "Wrong number of arguments."
 
   35 if [[ ! -f $INPUT_FILE ]]; then
 
   36     fatal "File $INPUT_FILE not found."
 
   39 if [[ ! -f $PARAMETERS_FILE ]]; then
 
   40     echo         $PARAMETERS_FILE > $WORKDIR/.parameters.txt                # temporary file
 
   41     set_variable  PARAMETERS_FILE   $WORKDIR/.parameters.txt
 
   46 exec 3< $PARAMETERS_FILE
 
   48 while read -u 3 QUANTITY MIN OUT YMIN YMAX; do
 
   50     if [[ -n "${QUANTITY}" && ! ${QUANTITY} =~ "^#" ]]; then
 
   52         # set environment variables:
 
   57         eval `JPrintTitle -f ${INPUT_FILE}:TUNA`
 
   59         echo $QUANTITY  |  sed -n "s/\([^\.]*\)\.\([^\.]*\)\.\(.*\)/\1 \2 \3/p"  |  read string floor QUANTITY
 
   61         debug "Parsed: <${string}> <${floor}> <${QUANTITY}>"
 
   63         if [[ ${string} != $WILDCARD ]]; then
 
   64             set_array    STRINGS      $string
 
   67         if [[ ${floor}  != $WILDCARD ]]; then
 
   68             set_variable FIRST_FLOOR  ${floor/-*}
 
   69             set_variable LAST_FLOOR   ${floor/*-}
 
   72         if [[ -n "${YMIN}" &&  -n "${YMAX}" ]]; then
 
   73             set_variable Y_RANGE  -y "$YMIN $YMAX"
 
   78         set_variable  quantity  `echo $QUANTITY | sed 's/\[/\\\[/g;s/\]/\\\]/g'`
 
   83         for STRING in $STRINGS[*]; do
 
   85             for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
 
   87                 notice "Creating graphics ${WORKDIR}/${STRING}_${FLOOR}_${QUANTITY}.${GRAPHICS}"
 
   91                     -f "${INPUT_FILE}:${STRING}.${FLOOR}.${quantity}$"         \
 
   94                     -T "(${STRING},${FLOOR})"                                  \
 
   96                     -o ${WORKDIR}/${STRING}_${FLOOR}_${QUANTITY}.${GRAPHICS}   \
 
  100             if (( ${LAST_FLOOR} - ${FIRST_FLOOR} + 1 == 18 )); then
 
  102                 notice "Creating graphics ${WORKDIR}/${STRING}_${QUANTITY}.${GRAPHICS}"
 
  107                     ${WORKDIR}/${STRING}_*_${QUANTITY}.${GRAPHICS}    \
 
  108                     ${WORKDIR}/${STRING}_${QUANTITY}.${GRAPHICS}
 
  110                 rm -f ${WORKDIR}/${STRING}_*_${QUANTITY}.${GRAPHICS}
 
  116 rm -f $WORKDIR/.parameters.txt