Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
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("Ошибка");
            }
        }
Esempio n. 3
0
        /// <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);
            }
        }
Esempio n. 4
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;
             }
         }
     }
 }
Esempio n. 5
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);
            }
        }
Esempio n. 6
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);
            }
        }
Esempio n. 7
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("Не Работает", "Ошибка");
            }
        }