bomboloni
This commit is contained in:
parent
99589c6fc5
commit
233233ee43
1 changed files with 119 additions and 0 deletions
|
@ -0,0 +1,119 @@
|
|||
process vassoio{
|
||||
int b = 0;
|
||||
port String piero_rosa;
|
||||
String mess;
|
||||
port signal rilascio_vassoio;
|
||||
signal s;
|
||||
process p;
|
||||
boolean attesaPiero = false;
|
||||
|
||||
send(b) to mario.friggi;
|
||||
p = receive(s) from rilascio_vassoio;
|
||||
b = 30;
|
||||
while(true){
|
||||
p = receive(mess) from piero_rosa;
|
||||
if(mess=="piero"){
|
||||
b--;
|
||||
if(b==0){
|
||||
attesaPiero = true;
|
||||
send("finiti") to p.servi;
|
||||
send(0) to clock.setTimer;
|
||||
}
|
||||
else{
|
||||
send("non finiti") to p.servi;
|
||||
}
|
||||
}
|
||||
else if(mess=="rosa"){
|
||||
send(b) to mario.friggi;
|
||||
p = receive(s) from rilascio_vassoio;
|
||||
b = 30;
|
||||
send(s) to rosa.rilascio_rosa;
|
||||
if(attesaPiero){
|
||||
attesaPiero = false;
|
||||
send(s) to Piero.riprendi;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process Mario{
|
||||
process p;
|
||||
signal s;
|
||||
port int friggi;
|
||||
int b_rim;
|
||||
while(true){
|
||||
p = receive(b_rim) from friggi;
|
||||
if(b_rim>0)
|
||||
<butta>
|
||||
<friggi>
|
||||
send(60) to clock.setTimer;
|
||||
send(s) to p.rilascio_vassoio;
|
||||
}
|
||||
}
|
||||
|
||||
process Piero{
|
||||
process p;
|
||||
port signal riprendi;
|
||||
signal s;
|
||||
port String servi;
|
||||
String mess;
|
||||
while(true){
|
||||
<attendi clienti>
|
||||
send("piero") to vassoio.piero_rosa;
|
||||
p = receive(mess) from servi;
|
||||
<servo cliente>
|
||||
if(mess == "finiti"){
|
||||
p = receive(s) from riprendi;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process Rosa{
|
||||
port signal rilascio_rosa;
|
||||
signal s;
|
||||
process p;
|
||||
while(true){
|
||||
send(s) to clock.waitTimer;
|
||||
p = receive(s) from rilascio_rosa;
|
||||
send("rosa") to vassoio.piero_rosa;
|
||||
p = receive(s) from rilascio_rosa;
|
||||
}
|
||||
}
|
||||
|
||||
process Clock{
|
||||
port Signal waitTimer;
|
||||
port int setTimer;
|
||||
port Signal tick;
|
||||
signal s;
|
||||
process p;
|
||||
int min;
|
||||
int tempo = 0;
|
||||
int sveglia = 0;
|
||||
boolean inAscolto = false;
|
||||
do
|
||||
[] p = receive(s) from tick; -> // Aumenta il tempo e se il timer scade..
|
||||
tempo++;
|
||||
if(sveglia == tempo && inAscolto){ // ..se il tempo è uguale alla sveglia e Rosa è sulla receive...
|
||||
inAscolto = false;
|
||||
send(s) to rosa.rilascio_rosa; // ..allora sveglia Rosa
|
||||
sveglia = 0;
|
||||
}
|
||||
[] p = receive(min) from setTimer; -> // Viene settato il Timer a zero o a 60
|
||||
sveglia = tempo + min;
|
||||
if(sveglia == tempo && inAscolto){ // Se il tempo è uguale alla sveglia e Rosa è sulla receive...
|
||||
inAscolto = false;
|
||||
send(s) to rose.rilascio_rosa; // ..llora sveglia Rosa
|
||||
sveglia = 0;
|
||||
}
|
||||
|
||||
[] p = receive(s) from waitTimer; -> // Si mette Rosa sulla receive accettando la send di waitTimer
|
||||
inAscolto = true;
|
||||
od
|
||||
}
|
||||
process Tempo{
|
||||
signal s;
|
||||
while(true){
|
||||
<aspetta un secondo>
|
||||
send(s) to clock.tick;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue