Пример #1
0
 public Semaforo(int changeStateLimit)
 {
     this.state = EstadoSemaforo.alto;
     this.changeStateLimit = changeStateLimit;
     this.changeStateLimitPrecaution = (int)(changeStateLimit * 0.2f);
     this.count = 0;
 }
Пример #2
0
        public Controlador(Cruzamento cruzamento)
        {
            Cruzamento = cruzamento;

            EstadoSemaforo es = EstadoSemaforo.Fechado;

            foreach (Rua rua in cruzamento.Ruas)
            {
                if (rua.Semaforo != null)
                {
                    rua.Semaforo.Estado = es;

                    if (es == EstadoSemaforo.Aberto)
                    {
                        es = EstadoSemaforo.Fechado;
                    }
                    else
                    {
                        es = EstadoSemaforo.Aberto;
                    }

                    rua.Semaforo.TrocaDeEstado += Semaforo_TrocaDeEstado;
                }
            }
        }
Пример #3
0
        public Semaforo()
        {
            configuracao = new Dictionary <EstadoSemaforo, int>();
            configuracao[EstadoSemaforo.Aberto]  = 30;
            configuracao[EstadoSemaforo.Fechado] = 30;

            Estado = EstadoSemaforo.Fechado;
        }
Пример #4
0
 private void TrocaEstado()
 {
     if (Estado == EstadoSemaforo.Aberto)
     {
         Estado = EstadoSemaforo.Fechado;
     }
     else
     {
         Estado = EstadoSemaforo.Aberto;
     }
 }
Пример #5
0
 public Semaforo(ref ObjectId id, int indexList, int changeStateLimit, int changeStateLimitPrecaution, ref ObjectId idI)
 {
     this.id = id;
     this.idIndicator = idI;
     this.block = Lab3.DBMan.OpenEnity(id) as BlockReference;
     this.blockIndicator = Lab3.DBMan.OpenEnity(idIndicator) as BlockReference;
     this.indexList = indexList;
     this.state = EstadoSemaforo.alto;
     this.changeStateLimit = changeStateLimit;
     this.changeStateLimitPrecaution = changeStateLimitPrecaution;
     this.count = 0;
     Lab3.DBMan.UpdateBlockPosition( new Point3d(this.block.Position.X, this.block.Position.Y, this.block.Position.Z+100f), this.idIndicator);
     this.UpdateColor();
 }
Пример #6
0
 public void Update()
 {
     this.count++;
     if (this.count >= this.changeStateLimitPrecaution && this.state.Equals(EstadoSemaforo.precaucion))
     {
         this.state = EstadoSemaforo.alto;
         this.count = 0;
     }
     if (this.count >= this.changeStateLimit && this.state.Equals(EstadoSemaforo.alto))
     {
         this.state = EstadoSemaforo.siga;
         this.count = 0;
     }
     if (this.count >= this.changeStateLimit && this.state.Equals(EstadoSemaforo.siga))
     {
         this.state = EstadoSemaforo.precaucion;
         this.count = 0;
     }
     this.UpdateColor();
 }