Exemplo n.º 1
0
        /// <summary>
        /// Читает данные с платы и пишет их в очередь, считаем количество пакетов
        /// </summary>
        public virtual void ReadData()//Читает данные с платы и пишет их в очередь
        {
            try
            {
                if (clientBAAK12TData.Connected && nsData != null)
                {
                    int res = Read13007(out byte[] buf);//читаем с платы
                    if (nsData == null)
                    {
                        Brushes      = System.Windows.Media.Brushes.Red;
                        CтатусБААК12 = "nsData = null";
                    }
                    if (res > 0)
                    {
                        for (int i = 0; i < res; i++)
                        {
                            if (buf[i] == 0xFF)
                            {
                                CountFlagEnd++;
                            }
                            else
                            {
                                CountFlagEnd = 0;
                            }
                            DataBAAKList.Add(buf[i]);

                            if ((data_w != null) & (data_fs != null) & CountFlagEnd == 4)
                            {
                                if (DataBAAKList.ElementAt(DataBAAKList.Count - 4) == 0xFF && DataBAAKList.ElementAt(DataBAAKList.Count - 5) == 0xFF && DataBAAKList.ElementAt(DataBAAKList.Count - 6) == 0xFF && DataBAAKList.ElementAt(DataBAAKList.Count - 7) == 0xFF)
                                {
                                    КолПакетовEr++;
                                    //DataBAAKList.Clear();
                                }
                                else
                                {
                                    КолПакетов++;
                                    OcherediNaZapic.Enqueue(new DataYu {
                                        ListData = DataBAAKList, tipDataTest = Flagtest
                                    });
                                    if (!Flagtest)
                                    {
                                        Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Render, new Action(() => { MyGrafic.AddTecPoint(Nkl, ТемпПакетов = Convert.ToInt32(КолПакетов) - Пакетов); }));
                                    }
                                }



                                DataBAAKList = new List <byte>();
                                CountFlagEnd = 0;
                            }
                            else
                            {
                                if (data_w == null)
                                {
                                    Brushes      = System.Windows.Media.Brushes.Red;
                                    CтатусБААК12 = "data_w = null";
                                }
                                if (data_fs == null)
                                {
                                    Brushes      = System.Windows.Media.Brushes.Red;
                                    CтатусБААК12 = "data_fs = null";
                                }
                            }
                        }
                    }
                    if (res == -2)
                    {
                        Brushes      = System.Windows.Media.Brushes.Red;
                        CтатусБААК12 = nsData.CanRead.ToString() + nsData.ToString();
                        InDe(false);
                    }
                }
                else
                {
                    Brushes      = System.Windows.Media.Brushes.Red;
                    CтатусБААК12 = "Ошибка 1 чтения с платы. Отключена";
                    InDe(false);
                }
            }
            catch (NullReferenceException ee)
            {
                Debug.WriteLine("Error 939");
            }
            catch (Exception)
            {
                Brushes      = System.Windows.Media.Brushes.Red;
                CтатусБААК12 = "Ошибка 2 чтения с платы. Отключена";
                InDe(false);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Читает данные с платы и пишет их в очередь, считаем количество пакетов
        /// </summary>
        public override void ReadData()//Читает данные с платы и пишет их в очередь
        {
            try
            {
                if (clientBAAK12TData.Connected && nsData != null)
                {
                    int res = Read13007(out byte[] buf);//читаем с платы
                    if (res > 0)
                    {
                        for (int i = 0; i < res; i++)
                        {
                            if (buf[i] == 0xFF)
                            {
                                CountFlagEnd++;
                            }
                            else
                            {
                                CountFlagEnd = 0;
                            }

                            DataBAAKList.Add(buf[i]);
                            if (CountFlagEndErroy == 4)
                            {
                                //MessageBox.Show(DataBAAKList.Count.ToString());

                                КолПакетовEr++;
                                DataBAAKList.Clear();

                                DataBAAKList      = new List <byte>();
                                CountFlagEnd      = 0;
                                CountFlagEndErroy = 0;
                            }
                            if ((data_w != null) & (data_fs != null) & CountFlagEnd == 4)
                            {
                                //MessageBox.Show(DataBAAKList.Count.ToString());
                                OcherediNaZapic.Enqueue(new DataYu {
                                    ListData = DataBAAKList, tipDataTest = Flagtest
                                });
                                КолПакетов++;
                                DataBAAKList = new List <byte>();
                                CountFlagEnd = 0;

                                CountFlagEndErroy = 0;
                            }
                        }
                    }
                }
                else
                {
                    Brushes      = System.Windows.Media.Brushes.Red;
                    CтатусБААК12 = "Ошибка 1 чтения с платы. Отключена";
                    InDe(false);
                }
            }
            catch (Exception ex)
            {
                Brushes      = System.Windows.Media.Brushes.Red;
                CтатусБААК12 = "Ошибка 2 чтения с платы. Отключена" + ex.ToString();
                InDe(false);
                MessageBox.Show("Не Работает", "Ошибка");
            }
        }