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(); }
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); }
public PlotPassEventData GetNextPassEvent() { if (_plotEvents.Count == 0) { return(null); } PlotPassEventData passEventData = _plotEvents[0]; _plotEvents.RemoveAt(0); return(passEventData); }
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(); }
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(); } } }