nicolas.perenne.free.fr

Accueil Monitorage CV3F
Etats Finis
Seamer95
#!/bin/bash

cd /home/nico/scripts/bash/automatesFSM/auto4
. parametres
. capteurs

# lecture de l'état précédent de l'automate
etat=$(cat etapesActives)
set $etat
X1=$1     # automate prêt
X2=$2     # session ftp en cours
X3=$3     # session ftp terminée sans succès
X4=$4     # session ftp terminée avec succès
X5=$5     # calcul débit en cours
X6=$6     # calcul débit terminé sans succès; automate stoppé
X7=$7     # calcul débit terminé avec succès; rang #0 en cours
X8=$8     # calcul rang #0 terminé sans succès; automate stoppé
X9=$9     # calcul rang #0 terminé avec succès; rang #1 en cours
X10=${10} # calcul rang #1 terminé sans succès; automate stoppé
X11=${11} # calcul rang #1 terminé avec succès; rang #2 en cours
X12=${12} # calcul rang #2 terminé sans succès; automate stoppé
X13=${13} # calcul rang #2 terminé avec succès; rang #3 en cours
X14=${14} # calcul rang #3 terminé sans succès; automate stoppé
X15=${15} # calcul rang #3 terminé avec succès

vieuX1=$X1; vieuX2=$X2; vieuX3=$X3
vieuX4=$X4; vieuX5=$X5; vieuX6=$X6
vieuX7=$X7; vieuX8=$X8; vieuX9=$X9
vieuX10=$X10; vieuX11=$X11; vieuX12=$X12
vieuX13=$X13; vieuX14=$X14; vieuX15=$X15

# lecture des entrées
E1=$(pluvioAjour $pluvio)
E2=$(dernierAppelFini getRain)
E3=$(dernierAppelOK getRain)
E4=$(topDepart $pluvio)
E5=$(dernierAppelFini pluieDebit)
E6=$(dernierAppelOK pluieDebit)
E7=$(dernierAppelFini lanceMars)
E8=$(dernierAppelOK lanceMars)
E9=$(dernierAppelFini salinityMaps)

# calul des réceptivités
if [ $E1 = 1 ];                       then C12=0;    else C12=1;    fi
if [ $E2 = 1 -a $E3 = 0 ];            then C23=1;    else C23=0;    fi
                                           C32=1
if [ $E2 = 1 -a $E3 = 1 -a $E4 = 0 ]; then C24=1;    else C24=0;    fi
                                           C41=1
if [ $E2 = 1 -a $E3 = 1 -a $E4 = 1 ]; then C25=1;    else C25=0;    fi
if [ $E5 = 1 -a $E6 = 0 ];            then C56=1;    else C56=0;    fi
if [ $E5 = 1 -a $E6 = 1 ];            then C57=1;    else C57=0;    fi
if [ $E7 = 1 -a $E8 = 0 ];            then C78=1;    else C78=0;    fi
if [ $E7 = 1 -a $E8 = 1 ];            then C79=1;    else C79=0;    fi
if [ $E7 = 1 -a $E8 = 0 ];            then C9_10=1;  else C9_10=0;  fi
if [ $E7 = 1 -a $E8 = 1 ];            then C9_11=1;  else C9_11=0;  fi
if [ $E7 = 1 -a $E8 = 0 ];            then C11_12=1; else C11_12=0; fi
if [ $E7 = 1 -a $E8 = 1 ];            then C11_13=1; else C11_13=0; fi
if [ $E7 = 1 -a $E8 = 0 ];            then C13_14=1; else C13_14=0; fi
if [ $E7 = 1 -a $E8 = 1 ];            then C13_15=1; else C13_15=0; fi
if [ $E9 = 1 ];                       then C15_1=1;  else C15_1=0;  fi

# transitions franchissables
if [ $X1 = 1 -a $C12 = 1 ];     then T12=1;    else T12=0;    fi
if [ $X2 = 1 -a $C23 = 1 ];     then T23=1;    else T23=0;    fi
if [ $X3 = 1 -a $C32 = 1 ];     then T32=1;    else T32=0;    fi
if [ $X2 = 1 -a $C24 = 1 ];     then T24=1;    else T24=0;    fi
if [ $X4 = 1 -a $C41 = 1 ];     then T41=1;    else T41=0;    fi
if [ $X2 = 1 -a $C25 = 1 ];     then T25=1;    else T25=0;    fi
if [ $X5 = 1 -a $C56 = 1 ];     then T56=1;    else T56=0;    fi
if [ $X5 = 1 -a $C57 = 1 ];     then T57=1;    else T57=0;    fi
if [ $X7 = 1 -a $C78 = 1 ];     then T78=1;    else T78=0;    fi
if [ $X7 = 1 -a $C79 = 1 ];     then T79=1;    else T79=0;    fi
if [ $X9 = 1 -a $C9_10 = 1 ];   then T9_10=1;  else T9_10=0;  fi
if [ $X9 = 1 -a $C9_11 = 1 ];   then T9_11=1;  else T9_11=0;  fi
if [ $X11 = 1 -a $C11_12 = 1 ]; then T11_12=1; else T11_12=0; fi
if [ $X11 = 1 -a $C11_13 = 1 ]; then T11_13=1; else T11_13=0; fi
if [ $X13 = 1 -a $C13_14 = 1 ]; then T13_14=1; else T13_14=0; fi
if [ $X13 = 1 -a $C13_15 = 1 ]; then T13_15=1; else T13_15=0; fi
if [ $X15 = 1 -a $C15_1 = 1 ];  then T15_1=1;  else T15_1=0;  fi

# franchissement des transitions
if   [ $T41 = 1 -o $T15_1 = 1 ];           then X1=1
elif [ $T12 = 1 ];                         then X1=0
fi
if   [ $T12 = 1 -o $T32 = 1 ];             then X2=1
elif [ $T23 = 1 -o $T24 = 1 -o $T25 = 1 ]; then X2=0
fi
if   [ $T23 = 1 ];                         then X3=1
elif [ $T32 = 1 ];                         then X3=0
fi
if   [ $T24 = 1 ];                         then X4=1
elif [ $T41 = 1 ];                         then X4=0
fi
if   [ $T25 = 1 ];                         then X5=1
elif [ $T56 = 1 -o $T57 = 1 ];             then X5=0
fi
if   [ $T56 = 1 ];                         then X6=1
fi
if   [ $T57 = 1 ];                         then X7=1
elif [ $T78 = 1 -o $T79 = 1 ];             then X7=0
fi
if   [ $T78 = 1 ];                         then X8=1
fi
if   [ $T79 = 1 ];                         then X9=1
elif [ $T9_10 = 1 -o $T9_11 = 1 ];         then X9=0
fi
if   [ $T9_10 = 1 ];                       then X10=1
fi
if   [ $T9_11 = 1 ];                       then X11=1
elif [ $T11_12 = 1 -o $T11_13 = 1 ];       then X11=0
fi
if   [ $T11_12 = 1 ];                       then X12=1
fi
if   [ $T11_13 = 1 ];                      then X13=1
elif [ $T13_14 = 1 -o $T13_15 = 1 ];       then X13=0
fi
if   [ $T13_14 = 1 ];                      then X14=1
fi
if   [ $T13_15 = 1 ];                      then X15=1
elif [ $T15_1 = 1 ];                       then X15=0
fi

# conditions
if [ $vieuX2 = 0 -a $X2 = 1 ]; then CA2=1; else CA2=0; fi
if [ $vieuX5 = 0 -a $X5 = 1 ]; then CA5=1; else CA5=0; fi
if [ $vieuX7 = 0 -a $X7 = 1 ]; then CA7=1; else CA7=0; fi
if [ $vieuX9 = 0 -a $X9 = 1 ]; then CA9=1; else CA9=0; fi
if [ $vieuX11 = 0 -a $X11 = 1 ]; then CA11=1; else CA11=0; fi
if [ $vieuX13 = 0 -a $X13 = 1 ]; then CA13=1; else CA13=0; fi
if [ $vieuX15 = 0 -a $X15 = 1 ]; then CA15=1; else CA15=0; fi

# actions
if [ $X2 = 1 -a $CA2 = 1 ]; then
  echo "$date4msg getRain $pluvio" >> $errorLog
  getRain $remoteDir $pluvio >/dev/null 2>>$errorLog &
fi
if [ $X4 = 1 ]; then
  echo "$date4msg tracePluie $pluvio" >> $errorLog
  tracePluie $pluvio >/dev/null 2>>$errorLog &
fi
if [ $X5 = 1 -a $CA5 = 1 ]; then
  echo "$date4msg tracePluie $pluvio" >> $errorLog
  tracePluie $pluvio >/dev/null 2>>$errorLog
  echo "$date4msg pluieDebit $riviere1" >> $errorLog
  pluieDebit $riviere1 >/dev/null 2>>$errorLog &
fi
if [ $X7 = 1 -a $CA7 = 1 ]; then
  echo "$date4msg traceDebit $pluvio $riviere1" >> $errorLog
  traceDebit $pluvio $riviere1 >/dev/null 2>>$errorLog
  echo "$date4msg datesMars" >> $errorLog
  datesMars >/dev/null 2>>$errorLog
  echo "$date4msg lanceMars 0" >> $errorLog
  lanceMars 0 >/dev/null 2>>$errorLog &
fi
if [ $X9 = 1 -a $CA9 = 1 ]; then
  echo "$date4msg lanceMars 1" >> $errorLog
  lanceMars 1 >/dev/null 2>>$errorLog &
fi
if [ $X11 = 1 -a $CA11 = 1 ]; then
  echo "$date4msg lanceMars 2" >> $errorLog
  lanceMars 2 >/dev/null 2>>$errorLog &
fi
if [ $X13 = 1 -a $CA13 = 1 ]; then
  echo "$date4msg lanceMars 3" >> $errorLog
  lanceMars 3 >/dev/null 2>>$errorLog &
fi
if [ $X15 = 1 -a $CA15 = 1 ]; then
  echo "$date4msg salinityMaps" >> $errorLog
  salinityMaps >/dev/null 2>>$errorLog &
fi

# sauvegarde de l'état
echo "$X1 $X2 $X3 $X4 $X5 $X6 $X7 $X8 $X9 $X10 $X11 $X12 $X13 $X14 $X15" > etapesActives

exit 0