private void Timer_Tick(object sender, EventArgs e) { if (mensaje != "") { lstMensajes.Items.Add($"{DateTime.Now.ToShortTimeString()}: {mensaje}"); mensaje = ""; } if (mensajeRecibido != null) { if (mensajeRecibido.Topico == topico) { lstMensajes.Items.Add($"[{mensajeRecibido.Topico}]>{mensajeRecibido.Mensaje}"); if (mensajeRecibido.Mensaje.Contains("=")) { string[] parte = mensajeRecibido.Mensaje.Split('='); switch (parte[0]) { case "B": lblEBuzzer.Content = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R1": lblER1.Content = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R2": lblER2.Content = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R3": lblER3.Content = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R4": lblER4.Content = parte[1] == "1" ? "Encendido" : "Apagado"; break; case "R": lblER1.Content = parte[1][0] == '1' ? "Encendido" : "Apagado"; lblER2.Content = parte[1][1] == '1' ? "Encendido" : "Apagado"; lblER3.Content = parte[1][2] == '1' ? "Encendido" : "Apagado"; lblER4.Content = parte[1][3] == '1' ? "Encendido" : "Apagado"; break; case "M": lblEPIR.Content = DateTime.Now.ToShortTimeString(); break; default: break; } } } mensajeRecibido = null; } }
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); }
private void MqttService_MensajeRecibido(object sender, MensajeRecibido e) { mensajeRecibido = e; }
private void MqttService_MensajeRecibido(object sender, MensajeRecibido e) { Debug.WriteLine($"MQTT<--[{e.Topico}] {e.Mensaje}"); }