nicolas.perenne.free.fr
#!/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