private void lstDispositivos_SelectionChanged(object sender, SelectionChangedEventArgs e) { ActualizarDatos(); topico = $"SolucionIoTKobra/{model.DispositivoSeleccionado.Id}"; MqttService.Suscribir(topico); btnActualizar.IsEnabled = true; }
public DispositivoTabbedPage(PanelUsuarioModel model) { InitializeComponent(); r = new Random(); log = new List <string>(); this.model = model; this.BindingContext = model; model.LecturasDelDispositivo = FactoryManager.LecturaManager().LecturasDelDispositivo(model.DispositivoSeleccionado.Id).ToList(); MqttService.Conectar("SolucionIoTMovil" + r.Next(0, 1000).ToString(), "broker.hivemq.com"); MqttService.Conectado += MqttService_Conectado; MqttService.Error += MqttService_Error; MqttService.Mensaje += MqttService_Mensaje; MqttService.MensajeRecibido += MqttService_MensajeRecibido; model.LecturasDelDispositivo = FactoryManager.LecturaManager().LecturasDelDispositivo(model.DispositivoSeleccionado.Id).OrderBy(e => e.FechaHora).ToList(); lstLecturas.ItemsSource = null; lstLecturas.ItemsSource = model.LecturasDelDispositivo; topico = "SolucionIoTKobra/" + model.DispositivoSeleccionado.Id; LlenarComandos(); Graficar(); mensajeRecibido = null; Device.StartTimer(TimeSpan.FromMilliseconds(100), () => { lstLog.ItemsSource = null; lstLog.ItemsSource = log; if (mensajeRecibido != null) { if (mensajeRecibido.Topico == topico) { log.Add($"<{ mensajeRecibido.Mensaje}"); if (mensajeRecibido.Mensaje.Contains("=")) { string[] parte = mensajeRecibido.Mensaje.Split('='); switch (parte[0]) { case "B": lblEB.Text = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R1": lblER1.Text = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R2": lblER2.Text = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R3": lblER3.Text = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R4": lblER4.Text = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R": lblER1.Text = parte[1][0] == '1' ? "Encendido" : "Apagado"; lblER2.Text = parte[1][1] == '1' ? "Encendido" : "Apagado"; lblER3.Text = parte[1][2] == '1' ? "Encendido" : "Apagado"; lblER4.Text = parte[1][3] == '1' ? "Encendido" : "Apagado"; break; case "M": lblEM.Text = DateTime.Now.ToShortTimeString(); break; default: break; } } } mensajeRecibido = null; } return(true); }); Thread.Sleep(2000); MqttService.Suscribir("SolucionIoTKobra/" + model.DispositivoSeleccionado.Id); }