/// <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); } }
/// <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("Не Работает", "Ошибка"); } }