public void obtenerSemaforos() { Dictionary <string, Object> dic = new Dictionary <string, Object>(); dic.Add("@accion", 2); dic.Add("@idModulo", 4); dic.Add("@idSemaforo", 0); dic.Add("@english", 0); DataTable dt = dataaccess.executeStoreProcedureDataTable("spr_get_Semaforos", dic); arregloSemaforos = new Semaforo[dt.Rows.Count]; int cont = 0; foreach (DataRow row in dt.Rows) { arregloSemaforos[cont] = new Semaforo(); arregloSemaforos[cont].ID = Convert.ToInt32(row["idSemaforo"]); arregloSemaforos[cont].MODULO = Convert.ToInt32(row["idModulo"]); arregloSemaforos[cont].INICIAL = Convert.ToInt32(row["iInicial"]); arregloSemaforos[cont].FINAL = Convert.ToInt32(row["iFinal"]); arregloSemaforos[cont].COLOR_HEX = row["vColorHex"].ToString(); arregloSemaforos[cont].CONTADOR = 0; cont++; } }
private void ThreadBody() { while (true) { //inicio de zona segura Semaforo.WaitOne();//se adquiere el permiso de entrar que lo da el semaforo var primero = Datos.Personas.FirstOrDefault(); //Thread.Sleep(10); switch (Id) { case 1: Datos.Caja1 = primero; break; case 2: Datos.Caja2 = primero; break; case 3: Datos.Caja3 = primero; break; } if (Datos.Personas.Any()) { Datos.Personas.RemoveAt(0); } Semaforo.Release();//fin de zona segura Thread.Sleep(duracion); } }
private void FiltraSemaforos(List <Semaforo> semaforos) { if (semaforos.Count <= 0) { return; } semaforos = semaforos.OrderBy(x => Vector3.Distance(biarticulado.PosicaoReferencia().position, x.transform.position)).ToList(); foreach (var item in semaforos) { semaforo_angulo = Vector3.Angle(biarticulado.PosicaoReferencia().forward, item.transform.forward); semaforo_dot = Vector3.Dot((item.transform.position - biarticulado.PosicaoReferencia().position).normalized, biarticulado.PosicaoReferencia().forward); if (semaforo_angulo <= anguloDeVarredura && semaforo_dot > 0) { semaforoProximo = item; break; } } if (!semaforoProximo) { semaforo_angulo = float.NaN; semaforo_dot = float.NaN; } }
public void Execute(IJobExecutionContext context) { if (semaforo.EstaProcesando == false) { semaforo.EstaProcesando = true; try { } catch (Exception ex) { throw new Exception(ex.Message); } finally { if (semaforo.EstaProcesando == true) { Semaforo.setInstance("ProcesoExtractFTP"); if (semaforo.CantidadArchivosConError > 0) { Semaforo.setInstance("ProcesoExtractFTP"); } } } } }
public void Put(Semaforo semaforo) { if (ApplicationDbContext.applicationDbContext.Semaforos.Count(e => e.Id == semaforo.Id) == 0) { throw new NoEncontradoException("No he encontrado la entidad"); } ApplicationDbContext.applicationDbContext.Entry(semaforo).State = EntityState.Modified; }
public IHttpActionResult GetPlantilla(long id) { Semaforo plantilla = semaforosService.Get(id); if (plantilla == null) { return(NotFound()); } return(Ok(plantilla)); }
public IHttpActionResult PostPlantilla(Semaforo semaforo) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } semaforo = semaforosService.Create(semaforo); return(CreatedAtRoute("DefaultApi", new { id = semaforo.Id }, semaforo)); }
public Semaforo Delete(long id) { Semaforo semaforo = ApplicationDbContext.applicationDbContext.Semaforos.Find(id); if (semaforo == null) { throw new NoEncontradoException("No he encontrado la entidad"); } ApplicationDbContext.applicationDbContext.Semaforos.Remove(semaforo); return(semaforo); }
private void ThreadBody() { while (true) { Semaforo.WaitOne(); //inicio de zona segura. Solo se puede accesar un hilo a la vez string nombre = GeneradorNombres.GenerarNombreCompleto(); Datos.Personas.Add(nombre); Semaforo.Release();//fin de zona segura Thread.Sleep(duracion); } }
private void ProcuraObstaculos() { Collider[] colliders = Physics.OverlapSphere(biarticulado.PosicaoReferencia().position, Mathf.Max(biarticulado.distanciaDeFrenagem, conAuto.dyn_distDeParada)); List <Semaforo> semaforos = new List <Semaforo>(); foreach (var item in colliders) { semaforoProximo = item.GetComponent <Semaforo>(); if (!semaforoProximo) { semaforoProximo = item.GetComponentInParent <Semaforo>(); } if (semaforoProximo) { semaforos.Add(semaforoProximo); } } FiltraSemaforos(semaforos); }
//private void IdentificaObstaculoMaisProximo() //{ //} private void ReagirAosObstaculos() //TODO ADICIONAR FUTURAMENTE FORMAS DE REAGIR A DIVERSOS OUTROS TIPOS DE OBSTÁCULOS { if (!biarticulado.paradoEmPonto) { if (semaforoProximo) { if (semaforoProximo.estaAberto) { biarticulado.obstaculoPresente = false; biarticulado.veiculoSendoParado = false; biarticulado.parando_Obstaculo = false; } else { biarticulado.obstaculoPresente = true; if (Vector3.Distance(biarticulado.PosicaoReferencia().position, semaforoProximo.transform.position) <= distanciaDeSeguranca) { biarticulado.veiculoSendoParado = true; biarticulado.parando_Obstaculo = true; semaforoParadaAtual = semaforoProximo; } else { biarticulado.veiculoSendoParado = false; biarticulado.parando_Obstaculo = false; } } } //Este if serve para impedir que o véículo pare no meio de um cruzamento quando o semáforo que acabou de atravessar se fechar durante a travessia. if (biarticulado.obstaculoPresente && ((semaforoParadaAtual && semaforoParadaAtual.estaAberto) || !semaforoProximo)) { semaforoParadaAtual = null; biarticulado.obstaculoPresente = false; if (biarticulado.veiculoSendoParado) { biarticulado.veiculoSendoParado = false; } } } }
static void Main(string[] args) { Console.WriteLine("Seleccione ejercicio a evaluar"); Console.WriteLine("Presione 1 para ejercicio semaforo-----"); Console.WriteLine("Presione 2 para ejercicio buenas noches-----"); int opcion = int.Parse(Console.ReadLine()); if (opcion == 1) { Semaforo OSemaforo = new Semaforo(); Console.WriteLine("Digite su nombre: "); string Nombre = Console.ReadLine(); OSemaforo.EstadoSemaforo(Nombre); Console.ReadKey(); } else if (opcion == 2) { Console.WriteLine("Digite su Nombre: "); string Nombre = Console.ReadLine(); Console.WriteLine("Digite su Apellido: "); string Apellido = Console.ReadLine(); Console.WriteLine("Digite su Direccion: "); string Direccion = Console.ReadLine(); Saludo OSaludo = new Saludo(); OSaludo.Nombre1 = Nombre; OSaludo.Apellido1 = Apellido; OSaludo.Direccion1 = Direccion; Console.WriteLine("Buenas noches: " + OSaludo.Nombre1 + " " + OSaludo.Apellido1 + " Tu vives en " + OSaludo.Direccion1); Console.ReadKey(); } else { Console.WriteLine("Solo puede elegir ejercicio 1 o 2"); Console.ReadKey(); } }
private static void Initialize() { Semaforo semaforo = new Semaforo(); Carro carro = new Carro(); Carro carroFiat = new Carro(); Moto moto = new Moto(); semaforo.OnSemaforoColorUpdated += carro.Update; semaforo.OnSemaforoColorUpdated += moto.Update; semaforo.OnSemaforoColorUpdated += carroFiat.Update; semaforo.Acionar(CoresSemaforo.Verde); 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); semaforo.Acionar(cor); } while (cor != CoresSemaforo.Unknown); }
public IHttpActionResult PutPlantilla(long id, Semaforo semaforo) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != semaforo.Id) { return(BadRequest()); } try { semaforosService.Put(semaforo); } catch (NoEncontradoException) { return(NotFound()); } return(StatusCode(HttpStatusCode.NoContent)); }
public void bloquearDocumento(string documento, string documentoId) { try { MongoClient client = new MongoClient(getConnection()); IMongoDatabase db = client.GetDatabase("Usuarios"); IMongoCollection <Semaforo> CollectionSemaforo = db.GetCollection <Semaforo>("Semaforo"); Semaforo item = new Semaforo(); item.Empresa = getKeyToken("empresa", "token"); item.Documento = documento; item.DocumentoId = documentoId; item.Usuario = getKeyToken("user", "token"); item.usuarioId = getKeyToken("id", "token"); CollectionSemaforo.InsertOne(item); } catch (Exception ex) { throw; } }
public void DisponibilidadDocumento(string documento, string documentoId) { try { MongoClient client = new MongoClient(getConnection()); IMongoDatabase db = client.GetDatabase("Usuarios"); IMongoCollection <Semaforo> CollectionSemaforo = db.GetCollection <Semaforo>("Semaforo"); string Empresa = getKeyToken("empresa", "token"); Semaforo item = CollectionSemaforo.Find <Semaforo>(d => d.Empresa == Empresa && d.DocumentoId == documentoId && d.Documento == documento).FirstOrDefault(); if (item != null) { throw new Exception("Este documento se encuentra en uso por el usuario: " + item.Usuario); } } catch (Exception) { throw; } }
public void Execute(IJobExecutionContext context) { if (semaforo.EstaProcesando == false) { semaforo.EstaProcesando = true; try { DescargaAutomaticaActualizacionBLL descargaAutomaticaActualizacionBll = new DescargaAutomaticaActualizacionBLL(); EmailBLL emailBll = new EmailBLL(); Task tarea1 = new Task(() => descargaAutomaticaActualizacionBll.ExtraerInformacionPaginaSoporte()); Task tarea2 = new Task(() => emailBll.EnvioArchivoActualizacionSoftware()); tarea1.Start(); tarea2.Start(); Task.WaitAll(tarea1); } catch (Exception e) { Logger log = LogManager.GetLogger("Error"); log.Error(e.Message.ToString()); EmailBLL managerEmail = new EmailBLL(); managerEmail.EnviarMailAdmin("ERROR: " + e.Message.ToString(), "Envío notificación Descarga Automatica CEPET"); } finally { if (semaforo.EstaProcesando == true) { Semaforo.setInstance("EnvioNotificacionDescargaAutomaticaActualizacion"); if (semaforo.CantidadArchivosConError > 0) { Semaforo.setInstance("EnvioNotificacionDescargaAutomaticaActualizacion"); } } } } }
public void LoadControls(String panelName) { //Cargamos la configuracion var configuracion = ProyectoCraft.Base.Configuracion.Configuracion.Instance(); var opcion = configuracion.GetValue("Semaforos_Brasil_Enabled"); //puede retornar un true, false o null var pathxml = ""; Path = opcion.HasValue && opcion.Value.Equals(true) ? @"panel de control/Brasil" : @"panel de control/Chile"; pathxml = System.IO.Path.Combine(Application.StartupPath, string.Format( @Path + "/panel de control/{0}", panelName)); var xmldoc = new XmlDocument(); xmldoc.Load(pathxml); var panelNodes = xmldoc.SelectNodes("/panel/panel"); foreach (XmlNode panelNode in panelNodes) { var size = new Size(Convert.ToInt16(panelNode.Attributes["width"].Value), Convert.ToInt16(panelNode.Attributes["heigth"].Value)); var location = new Point(Convert.ToInt16(panelNode.Attributes["x"].Value), Convert.ToInt16(panelNode.Attributes["y"].Value)); var panelContainer = new PanelContainer(panelNode.Attributes["title"].Value, location, size); var xmlnodes = panelNode.SelectNodes("control"); foreach (XmlNode xmlnode in xmlnodes) { if (!String.IsNullOrEmpty(xmlnode.InnerText.Trim())) { MyControl myControl = null; var xmldocControles = new XmlDocument(); xmldocControles.Load(System.IO.Path.Combine(Application.StartupPath, string.Format( @Path + "/controles/{0}", xmlnode.InnerText.Trim()))); var TypeOfControl = xmldocControles.SelectSingleNode("/control").Attributes["type"].Value; size = new Size(Convert.ToInt16(xmlnode.Attributes["width"].Value), Convert.ToInt16(xmlnode.Attributes["heigth"].Value)); location = new Point(Convert.ToInt16(xmlnode.Attributes["x"].Value), Convert.ToInt16(xmlnode.Attributes["y"].Value)); switch (TypeOfControl.ToUpper()) { case "DIGITALGAUGE": myControl = new DigitalGauge(xmldocControles, location, size); break; case "LINEARGAUGE": myControl = new LinearGauge(xmldocControles, location, size); break; case "SEMAFORO": myControl = new Semaforo(xmldocControles, location, size); break; case "GRAFICOBARRA3D": myControl = new GraficoBarra3D(xmldocControles, location, size); break; case "SEMAFORO_V2": myControl = new SemaforoV2(xmldocControles, location, size); break; } if (myControl != null) { panelContainer.Controles.Add(myControl); } } } PanelContainers.Add(panelContainer); } }
public Semaforo Create(Semaforo semaforo) { return(ApplicationDbContext.applicationDbContext.Semaforos.Add(semaforo)); }
public void CarregaMapaSimulacao(string CaminhoArquivoSimulacao) { Entrada DadosEntrada = new Entrada();; using (StreamReader file = new StreamReader(CaminhoArquivoSimulacao)) { if (file == null) { throw new Exception($"Arquivo {CaminhoArquivoSimulacao} não foi encontrado!"); } string conteudoArquivo = file.ReadToEnd(); DadosEntrada = JsonConvert.DeserializeObject <Entrada>(conteudoArquivo); file.Close(); } if (DadosEntrada == null) { throw new Exception("Não foi possível realizar a serialização do arquivo de entrada de dados"); } #region ProcessaEntrada int auxId = 0; /// grafo e ruas foreach (var item in DadosEntrada.Ruas) { grafo.AdicionaAresta(item.VerticeOrigem, item.VerticeDestino, item.Distancia, auxId); Aresta aresta = grafo.ObtenhaAresta(item.VerticeOrigem, item.VerticeDestino); Rua ruaAdicionar = new Rua() { Comprimento = aresta.Peso, NumeroFaixas = item.NumeroVias, IdAresta = aresta.Id, VelocidadeMaxima = item.VelocidadeMaxima, Id = auxId++, Descricao = $"Rua sentido {aresta.Origem} até {aresta.Destino}", }; ruaAdicionar.PreparaRua(); RuasSimulacao.Add(ruaAdicionar); } /// comprimento veiculos foreach (var item in DadosEntrada.ComprimentosVeiculos) { if (item <= 0) { throw new Exception("Um comprimento não pode ser menor ou igual a zero"); } geradorVeiculos.AdicionarComprimentoPossivel(item); } /// velocidade inicial foreach (var item in DadosEntrada.VelocidadeInicial) { if (item <= 0) { throw new Exception("A velocidade inicial não pode ser menor ou igual a zero"); } geradorVeiculos.AdicionarVelocidadePossivel(item); } /// Semaforos auxId = 0; foreach (var item in DadosEntrada.Semaforos) { Semaforo auxSema = new Semaforo() { Id = auxId++, TempoAberto = item.TempoAberto, TempoAmarelo = item.TempoAmarelo, TempoFechado = item.TempoFechado, EstadoSemaforo = Entidades.Enuns.EstadosSemaforo.ABERTO, ProximoTempoAberto = item.TempoAberto, ProximoTempoFechado = item.TempoFechado, TempoAtual = 0 }; auxSema.LogSemaforos.Add(new LogSemaforos { InstanteTempo = 0, TempoAberto = item.TempoAberto, TempoFechado = item.TempoFechado }); Rua RuaOrigem = GetRua(item.VerticeOrigemOrigem, item.VerticeDestinoOrigem); Rua RuaDestino = GetRua(item.VerticeOrigemDestino, item.VerticeDestinoDestino); if (item.VerticeOrigemDestino == item.VerticeDestinoDestino && RuaDestino == null)//Ultimo semáforo e sem rua depois do semáforo { throw new Exception("Não existe uma rua após o último semáforo."); } if (RuaOrigem == null || RuaDestino == null) { throw new Exception("Rua de Origem/Destino não foi encontrada."); } auxSema.RuasOrigem.Add(RuaOrigem.Id); auxSema.RuasDestino.Add(RuaDestino.Id); Semaforos.Add(auxSema); } // taxa de geracao veiculos TaxaGeracao.AddRange(DadosEntrada.TaxasGeracao.OrderBy((x) => x.Vertice).Select((x) => x.Taxa)); if (TaxaGeracao.Count != grafo.NumeroVertices) { throw new Exception("Quantidade de taxas de geração está inclopeta"); } #endregion ProcessaEntrada }
public void Put(Semaforo semaforo) { semaforosRepository.Put(semaforo); }
public void LoadControls(String panelName) { //Cargamos la configuracion var configuracion = ProyectoCraft.Base.Configuracion.Configuracion.Instance(); var opcion = configuracion.GetValue("Semaforos_Brasil_Enabled"); //puede retornar un true, false o null var pathxml = ""; Path = opcion.HasValue && opcion.Value.Equals(true) ? @"panel de control/Brasil" : @"panel de control/Chile"; pathxml = System.IO.Path.Combine(Application.StartupPath, string.Format( @Path + "/panel de control/{0}", panelName)); var xmldoc = new XmlDocument(); xmldoc.Load(pathxml); var panelNodes = xmldoc.SelectNodes("/panel/panel"); foreach (XmlNode panelNode in panelNodes) { var size = new Size(Convert.ToInt16(panelNode.Attributes["width"].Value), Convert.ToInt16(panelNode.Attributes["heigth"].Value)); var location = new Point(Convert.ToInt16(panelNode.Attributes["x"].Value), Convert.ToInt16(panelNode.Attributes["y"].Value)); var panelContainer = new PanelContainer(panelNode.Attributes["title"].Value, location, size); var xmlnodes = panelNode.SelectNodes("control"); foreach (XmlNode xmlnode in xmlnodes) { if (!String.IsNullOrEmpty(xmlnode.InnerText.Trim())) { MyControl myControl = null; var xmldocControles = new XmlDocument(); xmldocControles.Load(System.IO.Path.Combine(Application.StartupPath, string.Format( @Path + "/controles/{0}", xmlnode.InnerText.Trim()))); var TypeOfControl = xmldocControles.SelectSingleNode("/control").Attributes["type"].Value; size = new Size(Convert.ToInt16(xmlnode.Attributes["width"].Value), Convert.ToInt16(xmlnode.Attributes["heigth"].Value)); location = new Point(Convert.ToInt16(xmlnode.Attributes["x"].Value), Convert.ToInt16(xmlnode.Attributes["y"].Value)); switch (TypeOfControl.ToUpper()) { case "DIGITALGAUGE": myControl = new DigitalGauge(xmldocControles, location, size); break; case "LINEARGAUGE": myControl = new LinearGauge(xmldocControles, location, size); break; case "SEMAFORO": myControl = new Semaforo(xmldocControles, location, size); break; case "GRAFICOBARRA3D": myControl = new GraficoBarra3D(xmldocControles, location, size); break; case "SEMAFORO_V2": myControl = new SemaforoV2(xmldocControles, location, size); break; } if (myControl != null) panelContainer.Controles.Add(myControl); } } PanelContainers.Add(panelContainer); } }
public Semaforo Create(Semaforo semaforo) { return(semaforosRepository.Create(semaforo)); }