private void TopicAsociarTarea_OnMensajeRecibido(object sender, Entidades.Eventos.MqttMensajeRecibidoEventArgs e)
 {
     try
     {
     }
     catch (Exception ex)
     {
         new Log().Escribir(ex);
     }
 }
        private void TopicCalentar_OnMensajeRecibido(object sender, Entidades.Eventos.MqttMensajeRecibidoEventArgs e)
        {
            try
            {
                ConsumoPrensa consumo = JsonConvert.DeserializeObject <ConsumoPrensa>(e.Cuerpo);

                if (consumo.Prensa == this.Maquina.Posicion)
                {
                    timerCalentamiento.Start();
                }
            }
            catch (Exception ex)
            {
                new Log().Escribir(ex);
            }
        }
        private void TopicNormal_OnMensajeRecibido(object sender, Entidades.Eventos.MqttMensajeRecibidoEventArgs e)
        {
            timerCalentamiento.Stop();
            try
            {
                ConsumoPrensa consumo = JsonConvert.DeserializeObject <ConsumoPrensa>(e.Cuerpo);
                if (consumo == null)
                {
                    new Log().Escribir("consumo nulo");
                }

                if (consumo.Prensa != this.Maquina.Posicion)
                {
                    return;
                }

                if (this.Maquina.Modo != Entidades.Enum.ModoMaquina.Normal)
                {
                    this.Maquina.CambiarModo(Entidades.Enum.ModoMaquina.Normal);
                }

                this.Maquina.CargarInformacion(consumo);

                if (this.Maquina.TrabajoEjecucion != null)
                {
                    this.Maquina.Pulsos.Add(new PulsoMaquina
                    {
                        PiezaIntroducida = consumo.PiezaIntroducida == 1,
                        CodigoEtiqueta   = this.Maquina.TrabajoEjecucion.CodigoEtiquetaFichada,
                        Control          = new OperacionesControles
                        {
                            IdTipoMaquina           = 1,
                            TiempoBaseEjecucion     = 0.01,
                            TiempoCambioBarquilla   = 0.3,
                            TiempoInicio            = 0,
                            TiempoUtillajeEjecucion = 0.1,
                        },
                        Ciclo          = consumo.SgCiclo,
                        Fecha          = DateTime.Now,
                        IdOperario     = Maquina.OperarioACargo.Id,
                        PosicionGlobal = Maquina.PosicionGlobal ?? 0,
                        Pares          = (consumo.ParesUtillaje == 0?1:consumo.ParesUtillaje) * consumo.NumMoldes,
                    });

                    if (consumo.PiezaIntroducida == 1)
                    {
                        this.Maquina.InsertarPares(this.Maquina.TrabajoEjecucion, consumo.NumMoldes * (consumo.ParesUtillaje == 0 ? 1 : consumo.ParesUtillaje));
                    }

                    Notifica("Maquina");
                }
                else
                {
                    BackgroundWorker            bw          = new BackgroundWorker();
                    List <MaquinasColasTrabajo> colaTrabajo = new List <MaquinasColasTrabajo>();
                    bw.DoWork += (se, ev) =>
                    {
                        colaTrabajo = daoPuesto.ObtenerColaTrabajoMaquina(this.Maquina.ID);
                    };
                    bw.RunWorkerCompleted += (se, ev) =>
                    {
                        if (colaTrabajo.Count == 0)
                        {
                            ClienteMqtt.Publicar(string.Format("/{0}/fallo/{1}", Maquina.Tipo, this.Maquina.IpAutomata.PadLeft(3)),
                                                 string.Format("El automata {0} con maquina {1} no tiene cola de trabajo", Maquina.IpAutomata, Maquina.Posicion), 1);
                        }
                        Maquina.AsignarColaTrabajo(colaTrabajo);
                    };
                    bw.RunWorkerAsync();
                }
            }catch (Exception ex)
            {
                new Log().Escribir(ex);
            }
        }