示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }
示例#3
0
 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}");
 }