/// <summary> /// Método encargado de iniciar actualizaciones para el despliegue de /// el listado de dispositivos cercanos y niveles de contaminación. /// </summary> public void actualizar() { try { if (HayConexiónInternet()) { WS = new WSSemanticSearchSoapClient(); DispatcherTimer dispatcherTimer; dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(actualizaciones_Tick); dispatcherTimer.Interval = new TimeSpan(0, 0, tSegundosConsultas); //Con t = 1 seg esta funcionando perfecto dispatcherTimer.Start(); DispatcherTimer timerConexionInternet; timerConexionInternet = new System.Windows.Threading.DispatcherTimer(); timerConexionInternet.Tick += new EventHandler(ConexionInternet_TimerTick); //Se establece a quien se va a estar invocando timerConexionInternet.Interval = new TimeSpan(0, 0, tSegundosHayInternet); //Se establece intervalos de tiempo (t = 4) timerConexionInternet.Start(); } } finally { } }
/// <summary> /// Se encarga de obtener los FeedXively en un radio de 1km. /// </summary> private async void ObetenerFeedXively() { /// Que esten muchas condiciones anidadas es porque cada llamado se demora su tiempo, puede /// que se pierda la conexión en algun momento. if (HayConexiónInternet()) { Geolocator myGeolocator = new Geolocator(); Geoposition myGeoposition = await myGeolocator.GetGeopositionAsync(); if (HayConexiónInternet()) { Double la = Convert.ToDouble(myGeoposition.Coordinate.Latitude); Double lo = Convert.ToDouble(myGeoposition.Coordinate.Longitude); Geocoordinate myGeocoordinate = myGeoposition.Coordinate; GeoCoordinate myGeoCoordinate = CoordinateConverter.ConvertGeocoordinate(myGeocoordinate); if (HayConexiónInternet()) { WSSemanticSearchSoapClient WS = new WSSemanticSearchSoapClient(); WS.RetornarMapaLugarDatapointsAsync(la, lo, paramConsulta, DateTime.Now.AddSeconds(tSegundosAntes), DateTime.Now, "Español", rangoConsulta); WS.RetornarMapaLugarDatapointsCompleted += ob_RetornarMapaLugarDatapointsCompleted; } } } }
/// <summary> /// Este método es invocado desde un ojeto DispatcherTimer cada cierto intervalo de tiempo /// y que Si esta activada la opción de 'Activar Alertas' entonces se consulta al Indice /// Semántico y se recuperan los dispositivos mas cercanos, son procesados los datos y /// si es pertinente se muetra una alarma. /// </summary> /// <param name="sender">Objeto enviante.</param> /// <param name="e">Resultados del evento</param> private void actualizaciones_TimerTick(object sender, EventArgs e) { try { if (ActivarAlerta.IsChecked == true) //Si esta activa la opción de 'Activar Mensajes' en la vista principal en tiempo de ejecución { if (HayConexiónInternet()) { WSSemanticSearchSoapClient WS = new WSSemanticSearchSoapClient(); WS.RetornarMapaLugarDatapointsAsync(la, lo, paramConsulta, DateTime.Now.AddSeconds(tSegundosAntes), DateTime.Now, "Español", rangoSeguridad); WS.RetornarMapaLugarDatapointsCompleted += ob1_RetornarMapaLugarDatapointsCompleted; } } } finally { } }
/// <summary> /// Se inicializan Componentes de la vista. /// </summary> public Page1() { InitializeComponent(); try { if (HayConexiónInternet()) { WS = new WSSemanticSearchSoapClient(); } DispatcherTimer timerConexionInternet; timerConexionInternet = new System.Windows.Threading.DispatcherTimer(); timerConexionInternet.Tick += new EventHandler(ConexionInternet_TimerTick); //Se establece a quien se va a estar invocando timerConexionInternet.Interval = new TimeSpan(0, 0, tSegundosHayInternet); //Se establece intervalos de tiempo (t = 4) timerConexionInternet.Start(); } finally { } }
/// <summary> /// Este método es invocado desde un ojeto DispatcherTimer cada cierto intervalo de tiempo /// y que Si esta activada la opción de 'Activar Alertas' entonces se consulta al Indice /// Semántico y se recuperan los dispositivos mas cercanos, son procesados los datos y /// si es pertinente se muetra una alarma. /// </summary> /// <param name="sender">Objeto enviante.</param> /// <param name="e">Resultados del evento</param> private void actualizaciones_TimerTick(object sender, EventArgs e) { try { if (HayConexiónInternet()) { WSb.RetornarMapaLugarDatapointsAsync(la, lo, paramConsulta, DateTime.Now.AddSeconds(tSegundosAntes), DateTime.Now, "Español", rangoSeguridad); WSb.RetornarMapaLugarDatapointsCompleted += ob1_RetornarMapaLugarDatapointsCompleted; WSa.RetornarMapaLugarDatapointsAsync(la, lo, paramConsulta, DateTime.Now.AddSeconds(tSegundosAntes), DateTime.Now, "Español", rangoConsulta); WSa.RetornarMapaLugarDatapointsCompleted += ob_RetornarMapaLugarDatapointsCompleted; } } finally { /// En caso de que haya existido algun error de conexión, se intenta establecer /// nuevamente la conexión if (HayConexiónInternet()) { WSa = new WSSemanticSearchSoapClient(); WSb = new WSSemanticSearchSoapClient(); } } }