예제 #1
0
        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("Ошибка");
            }
        }
예제 #2
0
 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;
             }
         }
     }
 }
예제 #3
0
        /// <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);
            }
        }