4# ------------------------------------------------------------------------------------------
 
    6#                Auxiliary script to plot slow control data from database.
 
    8# ------------------------------------------------------------------------------------------
 
   10if [ -z $JPP_DIR ]; then
 
   11    echo "Variable JPP_DIR undefined."
 
   15source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   17set_variable:  DEBUG     DATABASE_DEBUG      2
 
   18set_variable:  WORKDIR   DATABASE_WORKDIR    ${TMPDIR:-/tmp}/
 
   19set_variable:  CANVAS    DATABASE_CANVAS     1200x600
 
   20set_variable:  TIMEAXIS  DATABASE_TIMESAXIS  %d:%m:%y%F1970-01-01 00:00:00
 
   21set_variable:  GRAPHICS  DATABASE_GRAPHICS   gif
 
   22set_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."
 
   35if [[ ! -f $INPUT_FILE ]]; then
 
   36    fatal "File $INPUT_FILE not found."
 
   39if [[ ! -f $PARAMETERS_FILE ]]; then
 
   40    echo         $PARAMETERS_FILE > $WORKDIR/.parameters.txt                # temporary file
 
   41    set_variable  PARAMETERS_FILE   $WORKDIR/.parameters.txt
 
   46exec 3< $PARAMETERS_FILE
 
   48while 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}
 
  116rm -f $WORKDIR/.parameters.txt