public Task OnSecond(DateTime time, DateTime starTime, ReadingData data, ReadingData minorData, ReadingData majorData) { return(Task.Run(() => { DispatcherHelper.CheckBeginInvokeOnUI(() => { OctaveValues.Clear(); if ((building ? minorData : data) == null) { return; } if (band == OctaveBand.OneOne) { foreach (var obp in DecibelHelper.GetOneOneOctaveBand()) { OctaveValues.Add(new OctaveBandGraphValue(obp.Display, (building ? minorData : data).GetValue("1-1-" + obp.Method), obp.LimitAjust, _settings.MinorDBLimit)); } } else { foreach (var obp in DecibelHelper.GetOneThirdOctaveBand()) { OctaveValues.Add(new OctaveBandGraphValue(obp.Display, (building ? minorData : data).GetValue("1-3-" + obp.Method), obp.LimitAjust, _settings.MinorDBLimit)); } } }); })); }
private void calculateOneOneBand() { LAeqOctaveBandOneOne = new OctaveBandOneOne() { Hz16 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz12_5, lAeqOctaveBandOneThird.Hz16, lAeqOctaveBandOneThird.Hz20), Hz31_5 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz25, lAeqOctaveBandOneThird.Hz31_5, lAeqOctaveBandOneThird.Hz40), Hz63 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz50, lAeqOctaveBandOneThird.Hz63, lAeqOctaveBandOneThird.Hz80), Hz125 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz100, lAeqOctaveBandOneThird.Hz125, lAeqOctaveBandOneThird.Hz160), Hz250 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz200, lAeqOctaveBandOneThird.Hz250, lAeqOctaveBandOneThird.Hz315), Hz500 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz400, lAeqOctaveBandOneThird.Hz500, lAeqOctaveBandOneThird.Hz630), Hz1000 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz800, lAeqOctaveBandOneThird.Hz1000, lAeqOctaveBandOneThird.Hz1250), Hz2000 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz1600, lAeqOctaveBandOneThird.Hz2000, lAeqOctaveBandOneThird.Hz2500), Hz4000 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz3150, lAeqOctaveBandOneThird.Hz4000, lAeqOctaveBandOneThird.Hz5000), Hz8000 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz6300, lAeqOctaveBandOneThird.Hz8000, lAeqOctaveBandOneThird.Hz10000), Hz16000 = DecibelHelper.CalculateOneOneOctaveBand(lAeqOctaveBandOneThird.Hz12500, lAeqOctaveBandOneThird.Hz16000, lAeqOctaveBandOneThird.Hz20000) }; }
public Task OnSecond(DateTime time, DateTime starTime, ReadingData data, ReadingData minorData, ReadingData majorData) { return(Task.Run(() => { DispatcherHelper.CheckBeginInvokeOnUI(() => { readingHistory.Add(starTime, data); minorGraphViewModel.OnLineReading(); // Add data for the octave bar OctaveValues.Clear(); if (minorData != null) { foreach (var obp in DecibelHelper.GetOneOneOctaveBand()) { OctaveValues.Add(new OctaveBandGraphValue(obp.Display, minorData.GetValue("1-1-" + obp.Method), obp.LimitAjust, settings.MinorDBLimit)); } } }); })); }
protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); if (this.BarValues == null) { return; } graphBounds = getGraphBound(); double yOffset = 0; workingWidth = this.ActualWidth; workingHeight = this.ActualHeight; if (DisplayAxis) { workingWidth = this.ActualWidth - LeftMargin; workingHeight = this.ActualHeight - buttomMargin; yOffset = buttomMargin; } double spacePrBar = workingWidth / (double)this.BarValues.Count; spacePrBar = spacePrBar - (2 * borderWith); yValuePr = workingHeight / (graphBounds.Item2 - graphBounds.Item1); if (DisplayAxis) { drawAxis(drawingContext); } double x1 = borderWith; if (DisplayAxis) { x1 += LeftMargin; } int each = 1; int currentTextIndex = 2; if (ActualWidth < 1000) { each = 3; } foreach (var barValue in BarValues) { x1 += borderWith; var y = getY(barValue.Value); var barHeight = Math.Max(0, workingHeight - y); if (DisplayAxis) { barHeight += buttomMargin; } drawingContext.DrawRectangle(barValue.OverLimit ? BarOverFillBrush : BarFillBrush, barValue.OverLimit ? BarOverBorderPen : BarBorderPen, new Rect(new Point(x1, this.ActualHeight - barHeight - yOffset), new Size(spacePrBar, barHeight))); if (DisplayAxis && currentTextIndex % each == 0) { var text = new FormattedText(DecibelHelper.HzToSlim(barValue.Key), CultureInfo.CurrentCulture, FlowDirection.LeftToRight, FontTypeFace, axisFontSize, AxisBrush); double text_x = x1 + (spacePrBar / 2) - (text.Width / 2); double text_y = this.ActualHeight - buttomMargin + buttomTextMargin; drawingContext.DrawText(text, new Point(text_x, text_y)); } currentTextIndex++; x1 += spacePrBar + borderWith; } }
public override bool IsReadingOverLimit(double limit) { double limitOffset = DecibelHelper.GetLimitOffSet(displayValue); return(colorByValue >= limitOffset + limit); }
public static ReadingData Average(ICollection <ReadingData> readings) { var result = new ReadingData() { lAeqOctaveBandOneThird = new OctaveBandOneThird(), LAeqOctaveBandOneOne = new OctaveBandOneOne() }; foreach (var readingData in readings) { result.LAeq += DecibelHelper.GetPowerFromDecibel(readingData.LAeq); result.LCeq += DecibelHelper.GetPowerFromDecibel(readingData.LCeq); result.LAMax += DecibelHelper.GetPowerFromDecibel(readingData.LAMax); result.LAMin += DecibelHelper.GetPowerFromDecibel(readingData.LAMin); result.LZMax += DecibelHelper.GetPowerFromDecibel(readingData.LZMax); result.LZMin += DecibelHelper.GetPowerFromDecibel(readingData.LZMin); // OneOne result.LAeqOctaveBandOneOne.Hz16 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz16); result.LAeqOctaveBandOneOne.Hz31_5 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz31_5); result.LAeqOctaveBandOneOne.Hz63 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz63); result.LAeqOctaveBandOneOne.Hz125 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz125); result.LAeqOctaveBandOneOne.Hz250 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz250); result.LAeqOctaveBandOneOne.Hz500 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz500); result.LAeqOctaveBandOneOne.Hz1000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz1000); result.LAeqOctaveBandOneOne.Hz2000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz2000); result.LAeqOctaveBandOneOne.Hz4000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz4000); result.LAeqOctaveBandOneOne.Hz8000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz8000); result.LAeqOctaveBandOneOne.Hz16000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneOne.Hz16000); // OneThird result.LAeqOctaveBandOneThird.Hz6_3 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz6_3); result.LAeqOctaveBandOneThird.Hz8 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz8); result.LAeqOctaveBandOneThird.Hz10 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz10); result.LAeqOctaveBandOneThird.Hz12_5 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz12_5); result.LAeqOctaveBandOneThird.Hz16 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz16); result.LAeqOctaveBandOneThird.Hz20 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz20); result.LAeqOctaveBandOneThird.Hz25 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz25); result.LAeqOctaveBandOneThird.Hz31_5 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz31_5); result.LAeqOctaveBandOneThird.Hz40 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz40); result.LAeqOctaveBandOneThird.Hz50 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz50); result.LAeqOctaveBandOneThird.Hz63 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz63); result.LAeqOctaveBandOneThird.Hz80 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz80); result.LAeqOctaveBandOneThird.Hz100 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz100); result.LAeqOctaveBandOneThird.Hz125 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz125); result.LAeqOctaveBandOneThird.Hz160 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz160); result.LAeqOctaveBandOneThird.Hz200 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz200); result.LAeqOctaveBandOneThird.Hz250 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz250); result.LAeqOctaveBandOneThird.Hz315 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz315); result.LAeqOctaveBandOneThird.Hz400 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz400); result.LAeqOctaveBandOneThird.Hz500 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz500); result.LAeqOctaveBandOneThird.Hz630 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz630); result.LAeqOctaveBandOneThird.Hz800 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz800); result.LAeqOctaveBandOneThird.Hz1000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz1000); result.LAeqOctaveBandOneThird.Hz1250 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz1250); result.LAeqOctaveBandOneThird.Hz1600 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz1600); result.LAeqOctaveBandOneThird.Hz2000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz2000); result.LAeqOctaveBandOneThird.Hz2500 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz2500); result.LAeqOctaveBandOneThird.Hz3150 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz3150); result.LAeqOctaveBandOneThird.Hz4000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz4000); result.LAeqOctaveBandOneThird.Hz5000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz5000); result.LAeqOctaveBandOneThird.Hz6300 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz6300); result.LAeqOctaveBandOneThird.Hz8000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz8000); result.LAeqOctaveBandOneThird.Hz10000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz10000); result.LAeqOctaveBandOneThird.Hz12500 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz12500); result.LAeqOctaveBandOneThird.Hz16000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz16000); result.LAeqOctaveBandOneThird.Hz20000 += DecibelHelper.GetPowerFromDecibel(readingData.LAeqOctaveBandOneThird.Hz20000); } // Avarage the power and convert that to decibel result.LAeq = DecibelHelper.GetDecibelFromPower(result.LAeq / readings.Count); result.LCeq = DecibelHelper.GetDecibelFromPower(result.LCeq / readings.Count); result.LAMax = DecibelHelper.GetDecibelFromPower(result.LAMax / readings.Count); result.LAMin = DecibelHelper.GetDecibelFromPower(result.LAMin / readings.Count); result.LZMax = DecibelHelper.GetDecibelFromPower(result.LZMax / readings.Count); result.LZMin = DecibelHelper.GetDecibelFromPower(result.LZMin / readings.Count); // OneOne result.LAeqOctaveBandOneOne.Hz16 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz16 / readings.Count); result.LAeqOctaveBandOneOne.Hz31_5 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz31_5 / readings.Count); result.LAeqOctaveBandOneOne.Hz63 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz63 / readings.Count); result.LAeqOctaveBandOneOne.Hz125 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz125 / readings.Count); result.LAeqOctaveBandOneOne.Hz250 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz250 / readings.Count); result.LAeqOctaveBandOneOne.Hz500 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz500 / readings.Count); result.LAeqOctaveBandOneOne.Hz1000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz1000 / readings.Count); result.LAeqOctaveBandOneOne.Hz2000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz2000 / readings.Count); result.LAeqOctaveBandOneOne.Hz4000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz4000 / readings.Count); result.LAeqOctaveBandOneOne.Hz8000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz8000 / readings.Count); result.LAeqOctaveBandOneOne.Hz16000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneOne.Hz16000 / readings.Count); // OneThird result.LAeqOctaveBandOneThird.Hz6_3 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz6_3 / readings.Count); result.LAeqOctaveBandOneThird.Hz8 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz8 / readings.Count); result.LAeqOctaveBandOneThird.Hz10 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz10 / readings.Count); result.LAeqOctaveBandOneThird.Hz12_5 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz12_5 / readings.Count); result.LAeqOctaveBandOneThird.Hz16 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz16 / readings.Count); result.LAeqOctaveBandOneThird.Hz20 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz20 / readings.Count); result.LAeqOctaveBandOneThird.Hz25 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz25 / readings.Count); result.LAeqOctaveBandOneThird.Hz31_5 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz31_5 / readings.Count); result.LAeqOctaveBandOneThird.Hz40 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz40 / readings.Count); result.LAeqOctaveBandOneThird.Hz50 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz50 / readings.Count); result.LAeqOctaveBandOneThird.Hz63 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz63 / readings.Count); result.LAeqOctaveBandOneThird.Hz80 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz80 / readings.Count); result.LAeqOctaveBandOneThird.Hz100 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz100 / readings.Count); result.LAeqOctaveBandOneThird.Hz125 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz125 / readings.Count); result.LAeqOctaveBandOneThird.Hz160 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz160 / readings.Count); result.LAeqOctaveBandOneThird.Hz200 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz200 / readings.Count); result.LAeqOctaveBandOneThird.Hz250 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz250 / readings.Count); result.LAeqOctaveBandOneThird.Hz315 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz315 / readings.Count); result.LAeqOctaveBandOneThird.Hz400 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz400 / readings.Count); result.LAeqOctaveBandOneThird.Hz500 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz500 / readings.Count); result.LAeqOctaveBandOneThird.Hz630 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz630 / readings.Count); result.LAeqOctaveBandOneThird.Hz800 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz800 / readings.Count); result.LAeqOctaveBandOneThird.Hz1000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz1000 / readings.Count); result.LAeqOctaveBandOneThird.Hz1250 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz1250 / readings.Count); result.LAeqOctaveBandOneThird.Hz1600 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz1600 / readings.Count); result.LAeqOctaveBandOneThird.Hz2000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz2000 / readings.Count); result.LAeqOctaveBandOneThird.Hz2500 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz2500 / readings.Count); result.LAeqOctaveBandOneThird.Hz3150 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz3150 / readings.Count); result.LAeqOctaveBandOneThird.Hz4000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz4000 / readings.Count); result.LAeqOctaveBandOneThird.Hz5000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz5000 / readings.Count); result.LAeqOctaveBandOneThird.Hz6300 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz6300 / readings.Count); result.LAeqOctaveBandOneThird.Hz8000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz8000 / readings.Count); result.LAeqOctaveBandOneThird.Hz10000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz10000 / readings.Count); result.LAeqOctaveBandOneThird.Hz12500 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz12500 / readings.Count); result.LAeqOctaveBandOneThird.Hz16000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz16000 / readings.Count); result.LAeqOctaveBandOneThird.Hz20000 = DecibelHelper.GetDecibelFromPower(result.LAeqOctaveBandOneThird.Hz20000 / readings.Count); return(result); }
public void TestHzToName() { Assert.AreEqual("6.3Hz", DecibelHelper.HzToName("Hz6_3")); }
public void OnMinorGraphSettingsChanged(string value) { minorGraphViewModel.ChangeDisplayItem(value, DecibelHelper.GetLimitOffSet(value)); majorGraphViewModel.ChangeDisplayItem(value, DecibelHelper.GetLimitOffSet(value)); }