/// <summary> /// Вычитывает нужные файлы /// </summary> public void ВычитываемДанныеНужные() { bool endd = false; int x = 0; while (!endd) { lock (OcherediNaZapic) { if (OcherediNaZapic.Count() == 0) { x++; } else { x = 0; } if (x > 3) { endd = true; } } Thread.Sleep(1000); } }
public void DeInitializeKlaster1()//Функция производит отписку от всех действия для работы { try { ConnnectURANDelegate -= ConnectAll; //подписка на конект НастройкаURANDelegate -= Настройка; //подписка на запуск(загрузка регистров начало, создание файла и тд ) НастройкаURANOldDelegate -= НастройкаOld; ReadDataURANDelegate -= ReadData; NewFileURANDelegate -= NewFileData; StopURANDelegate -= Stop; DiscConnnectURANDelegate -= DicsConectAll; ПускURANDelegate -= Пуск; TempURANDelegate -= TempPacetov; TestRanSetUpDelegate -= TestRanПодготовка; TestRanStartDelegate -= TriggerStartProgram; TestRanTheEndDelegate -= TestRanTheEnd; ЗаписьВремяРегистрDelegate -= FirsTime; СтартЧасовDelegate -= ПускСтартТайм; ЗаписьвФайлDelegate -= WriteInFileIzOcheredi; СтопТриггерDelegate -= TriggerStop; ЗаписьвФайлБДDelegate -= WriteInFileIzOcherediBD; while (!OcherediNaZapicBD.IsEmpty) { OcherediNaZapicBD.TryDequeue(out ClassZapicBD classZapicBD); } while (!OcherediNaZapic.IsEmpty) { DataYu dataYu = new DataYu(); OcherediNaZapic.TryDequeue(out dataYu); } //OcherediNaZapic. //OcherediNaZapicBD if (clientBAAK12T.Connected) { clientBAAK12T.Close(); ns.Close(); ns = null; } if (clientBAAK12TData.Connected) { clientBAAK12TData.Close(); nsData.Close(); nsData = null; } CloseFile(); ДеИнсталяцияDelegate -= DeInitializeKlaster1; } catch (Exception) { // MessageBox.Show("Ошибка"); } }
/// <summary> /// записываем данные из очереди в файл и в бд /// </summary> public override void WriteInFileIzOcheredi()//работа с данными из очереди { try { bool?ed = OcherediNaZapic.TryDequeue(out dataYu); if (ed == true) { if (dataYu.ListData != null) { byte[] d = new byte[dataYu.ListData.Count]; int x = 0; foreach (Byte b in dataYu.ListData) { d[x] = b; x++; } if (data_w != null) { data_w.Write(d); } Double[] sigm = new double[12]; ClassZapicBD100 classZapicBD100 = new ClassZapicBD100(); Obrabotka(dataYu.ListData, out int[] Ampl, out double[] NL, (int)DataLenght, out int dN, out bool neutron, ref classZapicBD100); //парсинг данных // if (neu) { OcherediNaZapicBD.Enqueue(classZapicBD100); } КолПакетовОчер++; // DataBAAKList1 = null; d = null; } } } catch (InvalidOperationException) { } catch (NullReferenceException) { } catch (Exception e) { CтатусБААК12 = "Ошибка. Отключена " + e; InDe(false); } }
public void СохраняемДанныеНужные() { if (FlagSaveBin) { while (true) { try { DataYu clasdata = new DataYu(); OcherediNaZapic.TryDequeue(out clasdata); if (clasdata != null && clasdata.ListData != null) { int f = clasdata.ListData.Count; byte[] d = new byte[f]; int x = 0; foreach (Byte b in clasdata.ListData) { d[x] = b; x++; } data_w.Write(d); clasdata.ListData.Clear(); Array.Clear(d, 0, f); } else { break; } } catch (InvalidOperationException) { break; } catch (NullReferenceException) { break; } } } }
/// <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 virtual void WriteInFileIzOcheredi()//работа с данными из очереди { try { dataYu = new DataYu(); bool?ed = OcherediNaZapic?.TryDequeue(out dataYu); if (ed == true) { if (dataYu.ListData != null) { byte[] d = new byte[dataYu.ListData.Count]; int x = 0; foreach (Byte b in dataYu.ListData) { d[x] = b; x++; } if (FlagSaveBin) { if (data_w != null) { data_w.Write(d); } } if (UserSetting.FlagOtbor) { int[] coutN = new int[12]; Double[] sigm = new double[12]; if (BAAKTAIL) { Obrabotka(dataYu.ListData, out int[] Ampl, out string time1, out coutN, out double[] NL, out sigm, dataYu.tipDataTest, out bool bad);//парсинг данных КолПакетовN += coutN.Sum(); Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Render, new Action(() => { MyGrafic.AddTecPointN(Nkl, Convert.ToInt32(КолПакетовN) - ПакетовN); })); if (!dataYu.tipDataTest) { OcherediNaZapicBD.Enqueue(new ClassZapicBD() { tipDataTest = dataYu.tipDataTest, tipDataSob = true, nameFileBD = NameFileClose, nameBAAKBD = NameBAAK12, timeBD = time1, nameRanBD = BAAK12T.NameRan, AmpBD = Ampl, nameklasterBD = NamKl, NnutBD = coutN, NlBD = NL, sigBDnew = sigm, bad = bad }); } } } КолПакетовОчер++; DataBAAKList1 = null; d = null; } } } catch (InvalidOperationException) { } catch (NullReferenceException ee) { Debug.WriteLine("Error 656"); } catch (Exception e) { Brushes = System.Windows.Media.Brushes.Red; CтатусБААК12 = "Ошибка. Отключена " + e; 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("Не Работает", "Ошибка"); } }