Esempio n. 1
0
        private void SoundNotification(PlotPassEventData eventData)
        {
            if(_soundChekBox.IsChecked == false || _soundAvailable == false)
            {
                _soundPlayDelay.Start();
                return;
            }
            SoundPlayer soundPlayer;
            if (eventData.IsWinPass)
            {
                soundPlayer = new SoundPlayer(Resource1.filter_pass_proof);
            }
            else if (eventData.IsAnyPass)
            {
                soundPlayer = new SoundPlayer(Resource1.filter_pass_no_proof);
            }
            else
            {
                soundPlayer = new SoundPlayer(Resource1.plot_missed);
            }

            soundPlayer.Play();
            _soundAvailable = false;
            _soundPlayDelay.Start();
        }
Esempio n. 2
0
        private void GeneratePlotData(string data)
        {
            Regex dateTimeReg = new Regex(@"^(\d+-\d+-\d+T\d+:\d+:\d+.\d+)");
            Regex cleaningReg = new Regex(@"\D+");

            string dateTimeS = dateTimeReg.Match(data).Value;

            dateTimeS = cleaningReg.Replace(dateTimeS, " ");
            string[] splitedData = dateTimeS.Split(' ');
            int[]    dateElement = new int[7];
            for (int i = 0; i < dateElement.Length; i++)
            {
                dateElement[i] = int.Parse(splitedData[i]);
            }
            DateTime dateTime = new DateTime(dateElement[0], dateElement[1], dateElement[2],
                                             dateElement[3], dateElement[4], dateElement[5], dateElement[6]);

            Regex eligableRef = new Regex(@"(\d+\splots were eligible)");
            int   plotsPassed = int.Parse(eligableRef.Match(data).Value.Split(' ')[0]);

            Regex proofRef    = new Regex(@"(\d+\sproofs)");
            int   proofPassed = int.Parse(proofRef.Match(data).Value.Split(' ')[0]);

            Regex           passTimeRef = new Regex(@"(Time: \S+)");
            IFormatProvider formatter   = new NumberFormatInfo {
                NumberDecimalSeparator = "."
            };
            double passTime = double.Parse(passTimeRef.Match(data).Value.Split(' ')[1], formatter);

            PlotPassEventData passEventData = new PlotPassEventData(dateTime, plotsPassed, proofPassed, passTime);

            _plotEvents.Add(passEventData);
        }
Esempio n. 3
0
        public PlotPassEventData GetNextPassEvent()
        {
            if (_plotEvents.Count == 0)
            {
                return(null);
            }
            PlotPassEventData passEventData = _plotEvents[0];

            _plotEvents.RemoveAt(0);

            return(passEventData);
        }
Esempio n. 4
0
        private void UpdateStatistic(PlotPassEventData eventData)
        {
            _totalTryStat++;
            if(eventData.IsAnyPass)
            {
                _filterPassedStat++;
            }
            if (eventData.IsWinPass)
            {
                _proofFoundStat++;
            }

            if(_smallestTimeStat > eventData.PassTime)
            {
                _smallestTimeStat = eventData.PassTime;
            }

            if (_longestTimeStat < eventData.PassTime)
            {
                _longestTimeStat = eventData.PassTime;
            }

            _timeDeltaStat = _longestTimeStat - _smallestTimeStat;

            _totalTryBlock.Text = _totalTryStat.ToString();
            _filterPassBlock.Text = _filterPassedStat.ToString();
            _proofFoundBlock.Text = _proofFoundStat.ToString();

            _smallestTimeBlock.Text = _smallestTimeStat.ToString();

            if(_longestTimeStat > 10)
            {
                _longestTimeBlock.Foreground = Brushes.Red;
            }
            else if(_longestTimeStat > 5)
            {
                _longestTimeBlock.Foreground = Brushes.OrangeRed;
            }
            else if(_longestTimeStat > 1)
            {
                _longestTimeBlock.Foreground = Brushes.Yellow;
            }
            else
            {
                _longestTimeBlock.Foreground = Brushes.White;
            }

            _longestTimeBlock.Text = _longestTimeStat.ToString();           

            _deltaTimeBlock.Text = _timeDeltaStat.ToString();
        }
Esempio n. 5
0
        private  void ConsoleRuntime()
        {
            PlotPassEventData passEventData = _asyncDebugReader.GetNextPassEvent();
            if (passEventData != null)
            {
                UpdateStatistic(passEventData);
                SoundNotification(passEventData);
                if (_showFailedCheckbox.IsChecked == false && !passEventData.IsAnyPass)
                {
                    
                    return;
                }

                Run run = new Run(passEventData.ToString());
                Paragraph paragraph = new Paragraph(run);

                if (!passEventData.IsAnyPass)
                {
                    paragraph.Foreground = Brushes.MediumVioletRed;
                }

                if (passEventData.IsAnyPass)
                {
                    paragraph.Foreground = Brushes.DarkOrange;
                }

                if (passEventData.IsWinPass)
                {
                    paragraph.Foreground = Brushes.Green;
                }

                _consoleTextBox.Document.Blocks.Add(paragraph);
                if(_autoScroll.IsChecked == true)
                {
                    _consoleTextBox.ScrollToEnd();
                }
            }
        }