/// <summary>
        ///
        /// </summary>
        /// <param name="Pedestre"></param>
        private void MontaFotodaUnidade(Pedestre Pedestre)
        {
            MetroTileItem FotoItemUnidade = new MetroTileItem
            {
                SymbolColor        = Color.Empty,
                TitleTextAlignment = ContentAlignment.BottomCenter,
                TitleTextFont      = new Font("Microsoft Sans Serif", 15.75F, FontStyle.Bold, GraphicsUnit.Point, 0),
                TileSize           = new Size(169, 126)
            };

            FotoItemUnidade.TileStyle.BackColor    = SystemColors.Control;
            FotoItemUnidade.TileStyle.BackColor2   = SystemColors.Control;
            FotoItemUnidade.TileStyle.BorderBottom = eStyleBorderType.Solid;
            FotoItemUnidade.TileStyle.BorderColor  = Color.FromArgb(255, 255, 255);
            FotoItemUnidade.TileStyle.BorderLeft   = eStyleBorderType.Solid;
            FotoItemUnidade.TileStyle.BorderRight  = eStyleBorderType.Solid;
            FotoItemUnidade.TileStyle.BorderTop    = eStyleBorderType.Solid;
            FotoItemUnidade.TileStyle.CornerType   = eCornerType.Square;
            FotoItemUnidade.TitleTextColor         = SystemColors.GrayText;
            FotoItemUnidade.TitleText = Pedestre.Nome;

            if (Pedestre.Foto1 != null && Pedestre.Foto1.Length > 256)
            {
                FotoItemUnidade.TitleTextColor            = Color.White;
                FotoItemUnidade.TileStyle.BackgroundImage = Pedestre.Foto();
            }

            PaineldeFotos.SubItems.AddRange(new BaseItem[] { FotoItemUnidade });
        }
예제 #2
0
        private void Background_DoWorkPedestre(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            Task.Run(async() =>
            {
                Unidade info = await pesquisa.BuscarPedestre(InformacoesPassagem, LeitorCorrente.Procedimento);

                if (info == null)
                {
                    monitor.RegistraLog($"Leitora: {LeitorCorrente.Porta} {LeitorCorrente.Descricao} - Serial:{InformacoesPassagem.rfid} O Registro não foi localizado ", Color.Red, FontStyle.Bold);
                    InformacoesPassagem.Status = EstadoIdentificacao.NaoLocalizado;
                    AoIdentificarDispositivo?.Invoke(InformacoesPassagem, e);
                    worker.ReportProgress(100);
                    return;
                }

                InformacoesPassagem.Unidade = info;

                if (InformacoesPassagem.Autorizado)
                {
                    foreach (Acionador acionador in LeitorCorrente.Acionadores)
                    {
                        Linear.Controle.Acionamento(0, acionador.Endereco);
                    }
                }

                Pedestre pedestre = InformacoesPassagem.Unidade.PedestreIdentificado;
                AoIdentificarDispositivo?.Invoke(InformacoesPassagem, e);
                string detalhespedestre = $"({pedestre.Bloco}-{pedestre.Unidade}) {pedestre.Nome}";
                monitor.RegistraLog($"Leitora: {LeitorCorrente.Porta} {LeitorCorrente.Descricao} - Serial:{InformacoesPassagem.rfid} {detalhespedestre} ", Color.DeepSkyBlue);
            }).Wait();

            worker.ReportProgress(100);
        }
예제 #3
0
        private static void Initialize()
        {
            SemaforoVeiculo  semaforoVeiculo  = new SemaforoVeiculo();
            SemaforoPedestre semaforoPedestre = new SemaforoPedestre();

            Pedestre pedestreA = new Pedestre();
            Pedestre pedestreB = new Pedestre();
            Pedestre pedestreC = new Pedestre();
            Veiculo  veiculoA  = new Veiculo();
            Veiculo  veiculoB  = new Veiculo();
            Veiculo  veiculoC  = new Veiculo();

            semaforoVeiculo.Subscribe(semaforoPedestre);

            semaforoVeiculo.Subscribe(veiculoA);
            semaforoVeiculo.Subscribe(veiculoB);
            semaforoVeiculo.Subscribe(veiculoC);

            semaforoPedestre.Subscribe(pedestreA);
            semaforoPedestre.Subscribe(pedestreB);
            semaforoPedestre.Subscribe(pedestreC);

            CoresSemaforo cor = CoresSemaforo.Verde;

            do
            {
                Console.WriteLine("Escolha 1 para Verde, 2 para Amarelo e 3 para Vermelho ou 0 para sair.");
                string color = Console.ReadLine();
                cor = (CoresSemaforo)int.Parse(color);
                semaforoVeiculo.Notify(cor);
                semaforoPedestre.Notify(cor);
            } while (cor != CoresSemaforo.Unknown);
        }