Allora si può scrivere proprio tutto in italiano, così la logica è perfettamente leggibile:
switch(stato)
{
case RIPOSO:
if (comando_attivo()) {
avvia_gonfiaggio();
stato = GONFIAGGIO;
}
break;
case GONFIAGGIO:
if(pressione_massima()) {
fermo();
annota_tempo();
stato = PAUSA;
}
break;
case PAUSA:
if(trascorsi(10000)) {
avvia_sgonfiaggio();
stato = SGONFIAGGIO;
}
else if(pressione_bassa()){
avvia_gonfiaggio();
stato = RABBOCCA;
}
break;
case RABBOCCA:
if(trascorsi(10000)) {
avvia_sgonfiaggio();
stato = SGONFIAGGIO;
}
else if(pressione_massima()){
fermo();
stato = PAUSA;
}
break;
case SGONFIAGGIO:
if(pressione_minima()) {
fermo();
stato = ATTENDI_NO_COMANDO;
}
break;
case ATTENDI_NO_COMANDO:
if (!comando_attivo()) stato = RIPOSO;
break;
}
Dopo di che restano da scrivere le brevi funzioncine che vengono richiamate (per quasi tutte credo basti una sola riga).