예제 #1
0
        public void Ciclo()
        {
            switch (semaforoLuce)
            {
            case SemaforoLuce.Verde:
                if (Tempo.Ora - tempoUltimoCambiamento >= durataVerde)
                {
                    semaforoLuce           = SemaforoLuce.Giallo;
                    tempoUltimoCambiamento = Tempo.Ora;
                }
                break;

            case SemaforoLuce.Giallo:
                if (Tempo.Ora - tempoUltimoCambiamento >= durataGiallo)
                {
                    semaforoLuce           = SemaforoLuce.Rosso;
                    tempoUltimoCambiamento = Tempo.Ora;
                }
                break;

            case SemaforoLuce.Rosso:
                if (Tempo.Ora - tempoUltimoCambiamento >= durataRosso)
                {
                    semaforoLuce           = SemaforoLuce.Verde;
                    tempoUltimoCambiamento = Tempo.Ora;
                }
                break;
            }
        }
예제 #2
0
 public Semaforo(double _posizioneX, SemaforoLuce _semaforoLuce, double _durataVerde, double _durataGiallo, double _tempoMinimoDiPercorrenza, double _durataSicurezza)
 {
     posizioneX                 = _posizioneX;
     semaforoLuce               = _semaforoLuce;
     durataGiallo               = _durataGiallo;
     durataVerde                = _durataVerde;
     tempoMinimoDiPercorrenza   = _tempoMinimoDiPercorrenza;
     durataSovrapposizioneRosso = _tempoMinimoDiPercorrenza + _durataSicurezza;
     durataSicurezza            = _durataSicurezza;
     durataRosso                = durataVerde + durataGiallo + 2 * tempoMinimoDiPercorrenza + 2 * durataSicurezza;
     durataTotale               = durataVerde + durataGiallo + durataRosso;
     Debugga();
 }
예제 #3
0
        public Semaforo(double _posizioneX, SemaforoLuce _semaforoLuce, double _tempoMinimoDiPercorrenza)
        {
            posizioneX      = _posizioneX;
            semaforoLuce    = _semaforoLuce;
            durataRosso     = DatiGenerali.Semaforo.DurataRosso;
            durataGiallo    = DatiGenerali.Semaforo.DurataGiallo;
            durataVerde     = DatiGenerali.Semaforo.DurataVerde;
            durataSicurezza = DatiGenerali.Semaforo.DurataSicurezza;

            tempoMinimoDiPercorrenza   = _tempoMinimoDiPercorrenza;
            durataSovrapposizioneRosso = _tempoMinimoDiPercorrenza + durataSicurezza;
            durataTotale = durataVerde + durataGiallo + durataRosso;
            Debugga();
        }