示例#1
0
        private void sgContador_Tick(object sender, EventArgs e)
        {
            sgContador.Interval = 500;

            lblSegundos.ForeColor = Color.Yellow;
            if (blnParpadeoAmarillo)
            {
                lblSegundos.Text = "1";

                pbSemAAmarillo.BackColor = Color.Yellow;
                pbSemBAmarillo.BackColor = Color.Yellow;
                pbSemCAmarillo.BackColor = Color.Yellow;
                pbSemDAmarillo.BackColor = Color.Yellow;

                PuertoParalelo.Output(888, 18);
                blnParpadeoAmarillo = false;
            }
            else
            {
                lblSegundos.Text = "0";
                rstSemaforos("Norte");
                rstSemaforos("Sur");
                rstSemaforos("Este");
                rstSemaforos("Oeste");

                PuertoParalelo.Output(888, 0);
                blnParpadeoAmarillo = true;
            }
        }
示例#2
0
        private void conteoEsteOeste(int IntervaloVerde, int IntervaloAmarillo)
        {
            //VERDE FIJO
            if (dblSegundos <= IntervaloVerde)//<=10
            {
                lblSegundos.ForeColor = Color.Green;
                lblSegundos.Text      = Convert.ToString(Math.Truncate(dblSegundos));
                //Sem verdes
                pbSemARojo.BackColor = Color.Red;   //Norte
                pbSemCRojo.BackColor = Color.Red;   //Sur
                //Sem rojos.
                pbSemDVerde.BackColor = Color.Lime; //Este
                pbSemBVerde.BackColor = Color.Lime; //Oeste
                                                    //salida puerto paralelo.
                PuertoParalelo.Output(888, 12);


                return;
            }
            //VERDE PARPADEANTE
            if (dblSegundos >= (IntervaloVerde + .5) && dblSegundos <= ((IntervaloVerde + IntervaloAmarillo) + .5))
            {
                if (blnParpadeoVerde)
                {
                    lblSegundos.ForeColor = Color.Green;
                    lblSegundos.Text      = "";

                    pbSemARojo.BackColor = Color.Red;
                    pbSemCRojo.BackColor = Color.Red;
                    rstSemaforos("Este");  //Apagamos el semaforo este...
                    rstSemaforos("Oeste"); //Apagamos el semaforo oeste...

                    blnParpadeoVerde = false;


                    if (dblSegundos == ((IntervaloVerde + IntervaloAmarillo) + .5))//13.5
                    {
                        blnParpadeoVerde = true;
                    }

                    PuertoParalelo.Output(888, 4);

                    return;
                }
                else
                {
                    lblSegundos.ForeColor = Color.Green;
                    intSegundos           = (int)dblSegundos - IntervaloVerde;
                    lblSegundos.Text      = intSegundos.ToString();

                    pbSemARojo.BackColor  = Color.Red;
                    pbSemCRojo.BackColor  = Color.Red;
                    pbSemDVerde.BackColor = Color.Lime;
                    pbSemBVerde.BackColor = Color.Lime;

                    blnParpadeoVerde = true;

                    PuertoParalelo.Output(888, 12);

                    return;
                }
            }

            //10   +     3       = 13 + 1 = 14              seg <=  10 + 3 = 13 + 3 = 16
            if (dblSegundos >= ((IntervaloVerde + IntervaloAmarillo) + 1) && dblSegundos <= ((IntervaloVerde + IntervaloAmarillo) + 3))
            {
                lblSegundos.ForeColor = Color.Yellow;
                intSegundos           = (int)Math.Truncate(dblSegundos) - (IntervaloVerde + IntervaloAmarillo);
                lblSegundos.Text      = intSegundos.ToString();

                pbSemARojo.BackColor     = Color.Red;    //Norte
                pbSemCRojo.BackColor     = Color.Red;    //Sur
                pbSemDAmarillo.BackColor = Color.Yellow; //Este
                pbSemBAmarillo.BackColor = Color.Yellow; //Oeste

                PuertoParalelo.Output(888, 20);

                return;
            }                 //10             +     3   =  ((13 + 3) + 3.5) = 16.5
            if (dblSegundos == ((IntervaloVerde + IntervaloAmarillo) + 3.5))
            {
                lblSegundos.ForeColor = Color.Yellow;
                lblSegundos.Text      = "";
                //Norte y sur rojos
                pbSemARojo.BackColor = Color.Red;
                pbSemCRojo.BackColor = Color.Red;
                rstSemaforos("Este");
                rstSemaforos("Oeste");
                //PuertoParalelo.Output(888, 4);

                return;
            }
            if (dblSegundos >= ((IntervaloVerde + IntervaloAmarillo) + 4) && dblSegundos <= ((IntervaloVerde + IntervaloAmarillo) + 5))
            {
                lblSegundos.ForeColor = Color.Red;
                intSegundos           = (int)Math.Truncate(dblSegundos) - ((IntervaloVerde + IntervaloAmarillo) + 3);
                lblSegundos.Text      = intSegundos.ToString();

                pbSemARojo.BackColor = Color.Red;
                pbSemBRojo.BackColor = Color.Red;
                pbSemCRojo.BackColor = Color.Red;
                pbSemDRojo.BackColor = Color.Red;
                PuertoParalelo.Output(888, 36);

                return;
            }

            if (dblSegundos >= ((IntervaloVerde + IntervaloAmarillo) + 5))
            {
                lblSegundos.ForeColor = Color.Red;
                lblSegundos.Text      = "";

                pbSemDRojo.BackColor = Color.Red;
                pbSemBRojo.BackColor = Color.Red;
                rstSemaforos("Norte");
                rstSemaforos("Sur");

                dblSegundos = 0.5;
                blNorteSur  = true;

                PuertoParalelo.Output(888, 32);
            }
        }
示例#3
0
        //Semaforos norte y sur...
        private void conteoNorteSur(int IntervaloVerde, int IntervaloAmarillo)
        {
            //VERDE FIJO
            if (dblSegundos <= IntervaloVerde)//<=10
            {
                lblSegundos.ForeColor = Color.Lime;
                //lblSegundos.Text = intSegundos.ToString();
                lblSegundos.Text = Convert.ToString(Math.Truncate(dblSegundos));
                //Sem verdes
                pbSemAVerde.BackColor = Color.Lime; //Norte
                pbSemCVerde.BackColor = Color.Lime; //Sur
                //Sem rojos.
                pbSemDRojo.BackColor = Color.Red;   //Este
                pbSemBRojo.BackColor = Color.Red;   //Oeste
                                                    //salida puerto paralelo.
                PuertoParalelo.Output(888, 33);
                return;
            }
            //VERDE PARPADEANTE
            if (dblSegundos >= (IntervaloVerde + .5) && dblSegundos <= ((IntervaloVerde + IntervaloAmarillo) + .5))
            {
                if (blnParpadeoVerde)
                {
                    lblSegundos.ForeColor = Color.Green;
                    lblSegundos.Text      = "";
                    pbSemAVerde.BackColor = Color.Gray;
                    pbSemBVerde.BackColor = Color.Gray;
                    pbSemCVerde.BackColor = Color.Gray;
                    pbSemDVerde.BackColor = Color.Gray;

                    blnParpadeoVerde = false;

                    if (dblSegundos == ((IntervaloVerde + IntervaloAmarillo) + .5))//13.5
                    {
                        blnParpadeoVerde = true;
                    }

                    PuertoParalelo.Output(888, 32);

                    return;
                }
                else
                {
                    lblSegundos.ForeColor = Color.Green;
                    intSegundos           = (int)dblSegundos - IntervaloVerde;
                    lblSegundos.Text      = intSegundos.ToString();

                    pbSemAVerde.BackColor = Color.Lime;
                    pbSemCVerde.BackColor = Color.Lime;
                    pbSemDRojo.BackColor  = Color.Red;
                    pbSemBRojo.BackColor  = Color.Red;
                    //picSemaforoNorte.Image = Semaforo.Properties.Resources.NorteVerde;
                    //picSemaforoSur.Image = Semaforo.Properties.Resources.SurVerde;
                    //picSemaforoEste.Image = Semaforo.Properties.Resources.EsteRojo;
                    //picSemaforoOeste.Image = Semaforo.Properties.Resources.OesteRojo;

                    blnParpadeoVerde = true;

                    PuertoParalelo.Output(888, 33);

                    return;
                }
            }
            //10   +     3       = 13 + 1 = 14              seg <=  10 + 3 = 13 + 3 = 16
            if (dblSegundos >= ((IntervaloVerde + IntervaloAmarillo) + 1) && dblSegundos <= ((IntervaloVerde + IntervaloAmarillo) + 3))
            {
                lblSegundos.ForeColor = Color.Yellow;
                intSegundos           = (int)Math.Truncate(dblSegundos) - (IntervaloVerde + IntervaloAmarillo);
                lblSegundos.Text      = Convert.ToInt32(intSegundos).ToString();

                pbSemAAmarillo.BackColor = Color.Yellow; //Norte
                pbSemCAmarillo.BackColor = Color.Yellow; //Sur
                pbSemDRojo.BackColor     = Color.Red;    //Este
                pbSemBRojo.BackColor     = Color.Red;    //Oeste

                PuertoParalelo.Output(888, 34);

                return;
            }                //10             +     3   =  ((13 + 3) + 3.5) = 16.5
            if (dblSegundos == ((IntervaloVerde + IntervaloAmarillo) + 3.5))
            {
                lblSegundos.ForeColor = Color.Yellow;
                lblSegundos.Text      = "";

                rstSemaforos("Norte");
                rstSemaforos("Sur");
                pbSemDRojo.BackColor = Color.Red;
                pbSemBRojo.BackColor = Color.Red;
                PuertoParalelo.Output(888, 32);

                return;
            }
            if (dblSegundos >= ((IntervaloVerde + IntervaloAmarillo) + 4) && dblSegundos <= ((IntervaloVerde + IntervaloAmarillo) + 5))
            {
                //intSegundos = 0;
                lblSegundos.ForeColor = Color.Red;
                intSegundos           = (int)Math.Truncate(dblSegundos) - ((IntervaloAmarillo + IntervaloVerde) + 3);
                lblSegundos.Text      = intSegundos.ToString();

                pbSemARojo.BackColor = Color.Red;
                pbSemBRojo.BackColor = Color.Red;
                pbSemCRojo.BackColor = Color.Red;
                pbSemDRojo.BackColor = Color.Red;
                PuertoParalelo.Output(888, 36);

                return;
            }

            if (dblSegundos >= ((IntervaloVerde + IntervaloAmarillo) + 5))
            {
                lblSegundos.ForeColor = Color.Red;
                lblSegundos.Text      = "";//intSegundos.ToString();

                pbSemARojo.BackColor = Color.Red;
                pbSemCRojo.BackColor = Color.Red;
                rstSemaforos("Este");
                rstSemaforos("Oeste");

                dblSegundos = 0.5;
                blNorteSur  = false;
                PuertoParalelo.Output(888, 4);
            }
        }