Ejemplo n.º 1
0
        private void MQ_singleArrivalEvent(string data)
        {
            ShowMsg(data);
            MsgBase msg = null;

            try
            {
                msg = JsonConvert.DeserializeObject <MsgBase>(data);
            }
            catch (Exception ex)
            {
                string errMsg = "协议格式错误!";
                MyLog.WriteLog(errMsg, ex);
                ShowMsg(errMsg);
                return;
            }
            //判断时间戳在启动时间之前的信息丢弃
            DateTime dtMsg;

            if (DateTime.TryParse(msg.time_stamp, out dtMsg))
            {
                if (dtMsg < dtStart)
                {
                    return;
                }
            }
            List <string> jiaobiaoNos = new List <string>()
            {
                "E00113", "E00114", "E00115", "E00117", "E02001",
                "E02101", "E02201"//先跑初调1和复校1
            };

            try
            {
                if (msg.MESSAGE_TYPE == "plc")
                {
                    if (!jiaobiaoNos.Contains(msg.NO))
                    {
                        return;
                    }
                    var    dev    = DeviceBase.GetDevice(msg.NO);
                    PLCMsg plcMsg = JsonConvert.DeserializeObject <PLCMsg>(data);
                    dev.DoWork(plcMsg);
                    this.Dispatcher.Invoke(() =>
                    {
                        if (!dgDevices.Items.Contains(dev))
                        {
                            dgDevices.Items.Add(dev);
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                ShowMsg(ex.Message + ex.StackTrace);
            }
        }