Пример #1
0
        /// <summary>
        /// Расчет темпа и запись результата в БД
        /// </summary>
        ///
        public virtual void TempPacetov()
        {
            //if (Conect300Statys)
            // {
            ТемпПакетов  = Convert.ToInt32(КолПакетов) - Пакетов;
            Пакетов      = Convert.ToInt32(КолПакетов);
            ТемпПакетовN = Convert.ToInt32(КолПакетовN) - ПакетовN;
            ПакетовN     = Convert.ToInt32(КолПакетовN);
            try
            {
                BDReadTemP(NameBAAK12, ТемпПакетов);
            }
            catch
            {
            }
            try
            {
                // Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { MyGrafic.AddPoint(Nkl, ТемпПакетов); }));
                lock (MyGrafic.Labels)
                {
                    MyGrafic.AddPoint(Nkl, ТемпПакетов, ТемпПакетовN);

                    //  Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Render, new Action(() => { MyGrafic.AddPoint(Nkl, ТемпПакетов, ТемпПакетовN); }));
                }
            }
            catch
            {
            }



            // }
        }
Пример #2
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);
            }
        }
Пример #3
0
        private void Obrabotka(List <Byte> buf00, out int[] Amp, out string time, out int[] nn1, out double[] Nul, out double[] sig, bool testT, out bool bad)
        {
            int[,] data     = new int[12, 1024];
            int[,] dataTail = new int[12, 20000];
            sig             = new Double[12];
            Nul             = new double[12];
            time            = "0";
            nn1             = new int[12];
            Amp             = new int[12];
            bad             = false;
            try
            {
                // byte[] bb = new byte[buf00.Count];
                //bb = buf00.ToArray();
                ParserBAAK12.ParseBinFileBAAK12.ParseBinFileBAAK200H(buf00.ToArray(), out data, out time, out dataTail);
                //  Amp = new int[12];
                // Nul = new int[12];
                //   sig = new Double[12];
                try
                {
                    if (grafOtob)
                    {
                        //  Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                        //  {
                        Application.Current.Dispatcher.Invoke((Action) delegate { MyGrafic.AddPointRaz(data, "Кластер" + namKl, masnul); });
                        //  }));
                    }

                    if (windowChart != null && !testT)
                    {
                        // Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                        // {
                        Application.Current.Dispatcher.Invoke((Action) delegate
                        {
                            windowChart.AddPointRaz(data);
                        });
                        //  }));
                    }
                    if (windowChartTail != null && !testT)
                    {
                        //Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                        //  {
                        Application.Current.Dispatcher.Invoke((Action) delegate
                        {
                            windowChartTail.AddPointRaz(dataTail);
                        });
                        // }));
                    }
                }
                catch (NullReferenceException ee)
                {
                    Debug.WriteLine("Error 708");
                }
                catch (Exception ex)
                {
                    File.AppendAllText("D:\\Erroy_URAN_file.txt", "Ошибка графика" + ex.Message.ToString() + "\n" + "otobKl " + otobKl + "\t" + "NamKl " + NamKl); //допишет текст в конец файла
                }

                if (!testT)
                {
                    ParserBAAK12.ParseBinFileBAAK12.MaxAmpAndNul(data, ref sig, ref Amp, ref Nul, ref bad, true, 1, 6);
                    // MaxAmpAndNul(data, out Amp, out Nul, out sig);
                    // MessageBox.Show(Nul.ToString()+" "+ dataTail[3, 100]+" " + dataTail[3, 101] + " " + dataTail[3, 102] + " " + dataTail[3, 103] + " " + dataTail[3, 104] + " " + dataTail[3, 105] + " " + dataTail[3, 106] + " ");
                    // nn1 = new int[12];
                    Neutron(dataTail, BAAK12T.PorogNutron, BAAK12T.DlNutron, out nn1, time, testT, Nul, bad);
                }
            }
            catch (NullReferenceException ee)
            {
                //  File.AppendAllText("D:\\Erroy_URAN_file.txt", "Error 723" + "\n"); //допишет текст в конец файла
            }
            catch (Exception ex)
            {
                //  File.AppendAllText("D:\\Erroy_URAN_file.txt", "Ошибка обработки данных" + ex.Message.ToString() + "\n" + "Время " + time + "\n"); //допишет текст в конец файла
            }
        }
Пример #4
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);
            }
        }
Пример #5
0
        private void Obrabotka(List <Byte> buf00, out int[] Amp, out double[] Nul, int dl, out int dn, out bool neutron, ref ClassZapicBD100 classZapicBD100)
        {
            int[,] data = new int[12, 1024 * dl];

            Nul = new double[12];

            dn      = 0;
            neutron = false;
            bool bad = false;

            Amp = new int[12];

            int[] coutN1 = new int[12];
            int[] timeS  = new int[12];



            try
            {
                ParserBAAK12.ParseBinFileBAAK12.ParseBinFileBAAK200(buf00.ToArray(), dl, out data, out classZapicBD100.timeBD);
                if (grafOtob)
                {
                    //  Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                    //  {
                    Application.Current.Dispatcher.Invoke((Action) delegate { MyGrafic.AddPointRaz(data, "Кластер" + namKl, masnul); });
                    //  }));
                }
                if (windowChart != null)
                {
                    // Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Normal, new Action(() =>
                    // {
                    Application.Current.Dispatcher.Invoke((Action) delegate
                    {
                        windowChart.AddPointRaz(data);
                    });
                    //  }));
                }
                // To Do
                ParserBAAK12.ParseBinFileBAAK12.MaxAmpAndNul(data, ref classZapicBD100.sig, ref Amp, ref Nul, ref bad, false, 0.6, 5);

                ObrabotcaURAN.Obrabotca.AmpAndTime(data, Nul, out classZapicBD100.TmaxACh, out classZapicBD100.Amp);



                classZapicBD100.TfACh = ObrabotcaURAN.Obrabotca.FirstTme(classZapicBD100.TmaxACh, classZapicBD100.Amp, data, Nul, ref classZapicBD100.TpmA, out classZapicBD100.TA34Ch, out classZapicBD100.TA14Ch);



                classZapicBD100.SCh  = ObrabotcaURAN.Obrabotca.ColSigVatias(data, Nul);
                classZapicBD100.SBCh = ObrabotcaURAN.Obrabotca.ColBin(data, Nul);

                for (int i = 0; i < 12; i++)
                {
                    int x = 0;
                    for (int j = 350; j < 1024; j++)
                    {
                        // Debug.WriteLine(data1[i, j].ToString());
                        //Debug.WriteLine(data1[i, j].ToString() +"-"+ Nul[i].ToString());
                        // data1S[i, j] = Convert.ToDouble(data1[i, j]) - Nul[i];
                        int AN = data[i, j] - Convert.ToInt32(Nul[i]);
                        if (AN > 5)
                        {
                            classZapicBD100.SumD[i] += AN;
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }