private void HandleNone(VibrationMessage message) { foreach (var sub in _linkList) { sub.Tell(message); } }
private void HandleNotWorkingVParmRequest(VibrationMessage message) { foreach (var linker in _linkList) { linker.Tell(message); } }
private void HandleVibrationMessage(VibrationMessage message) { double frequencyInterval = message.SampleFre / message.SamplePoint; int length = (int)(message.SamplePoint / 2.56) + 1; double[] frequency = new double[length]; //if (message.Frequency==null || message.Frequency.Length!=length) //{ // message.Frequency = new double[length]; // message.Amplitude = new double[length]; // message.Phase = new double[length]; //} for (int i = 0; i < length; i++) { frequency[i] = frequencyInterval * i; } var output = Algorithm.Instance.FFT2AndPhaseAction(message.VData, message.SamplePoint); var updateMsg = message.UpdateFFT(frequency, output[0].Take(length).ToArray(), output[1].Take(length).ToArray()); foreach (var sub in _subscriptions) { sub.Tell(updateMsg); } foreach (var linker in _linkList) { linker.Tell(updateMsg); } }
private void HandleVibrationMessage(VibrationMessage message) { hasProcessed = true; SetSignal(message.DataContract); foreach (var linker in _linkList) { linker.Tell(message); } }
private void HandleBandPass(VibrationMessage message) { var result = bpFilter.Filter(message.VData, message.SamplePoint, message.SampleFre); var upodateMsg = message.UpdateVData(result); foreach (var sub in _linkList) { sub.Tell(upodateMsg); } }
private void HandleCepstrum(VibrationMessage message) { var result = Algorithm.Instance.Cepstrum(message.VData, message.SamplePoint); var upodateMsg = message.UpdateVData(result); foreach (var sub in _linkList) { sub.Tell(upodateMsg); } }
private void HandleBytes(VibrationMessage message) { //throw new ArgumentException("message is Null"); var result = Algorithm.Instance.ByteToSingle(message.VDataBytes); var upodateMsg = message.UpdateVData(result); foreach (var linker in _linkList) { linker.Tell(upodateMsg); } }
private void HandleNotWorkingVibrationMessage(VibrationMessage message) { foreach (var sub in _subscriptions) { sub.Tell(message); } foreach (var linker in _linkList) { linker.Tell(message); } }
private void HandleVParmRequest(VibrationMessage message) { var para = Algorithm.Instance.CalculatePara(message.VData); var upodateMsg = message.UpdateVParm(new VibrationParm(para[0], para[1], para[2], para[3], para[4], para[5], para[6], para[7], para[8], para[9], para[10])); foreach (var sub in _subscriptions) { sub.Tell(upodateMsg); } foreach (var linker in _linkList) { linker.Tell(upodateMsg); } }
private void HandleVibrationMessage(VibrationMessage message) { try { m_chart.BeginUpdate(); var vParm = message.VParm; StringBuilder sb = new StringBuilder(); sb.AppendLine(string.Format("有效值:{0}", vParm.AMS.ToString("0.00"))); sb.AppendLine(string.Format("峰值:{0}", vParm.PeakValue.ToString("0.00"))); sb.AppendLine(string.Format("峰峰值:{0}", vParm.PeakPeakValue.ToString("0.00"))); sb.AppendLine(string.Format("斜度:{0}", vParm.Slope.ToString("0.00"))); sb.AppendLine(string.Format("峭度:{0}", vParm.Kurtosis.ToString("0.00"))); sb.AppendLine(string.Format("峭度指标:{0}", vParm.KurtosisIndex.ToString("0.00"))); sb.AppendLine(string.Format("波形指标:{0}", vParm.WaveIndex.ToString("0.00"))); sb.AppendLine(string.Format("峰值指标:{0}", vParm.PeakIndex.ToString("0.00"))); sb.AppendLine(string.Format("脉冲指标:{0}", vParm.ImpulsionIndex.ToString("0.00"))); sb.AppendLine(string.Format("裕度指标:{0}", vParm.ToleranceIndex.ToString("0.00"))); if (message.IsCepstrum) { m_chart.ViewXY.SampleDataSeries[0].SamplingFrequency = message.SampleFre / 1000; } else { m_chart.ViewXY.SampleDataSeries[0].SamplingFrequency = 1; } m_chart.ViewXY.SampleDataSeries[0].SamplesDouble = message.VData; m_chart.ViewXY.SampleDataSeries[0].InvalidateData(); m_chart.ViewXY.Annotations[0].Text = sb.ToString().Trim(); //if (fitViewCheckBox.IsChecked == true) //{ m_chart.ViewXY.ZoomToFit(); //} m_chart.EndUpdate(); } catch (Exception ex) { m_chart.EndUpdate(); } }
private void HandleVibrationMessage(VibrationMessage message) { _byteToSingleActor.Tell(message); }
private void HandleVibrationMessage(VibrationMessage message) { try { m_chart.BeginUpdate(); var fftLength = message.Frequency.Length; var series = m_chart.ViewXY.PointLineSeries[0]; var phaseSeries = m_chart.ViewXY.PointLineSeries[1]; if (series.Points == null || series.Points.Length != fftLength) { series.Points = new SeriesPoint[fftLength]; } if (phaseSeries.Points == null || phaseSeries.Points.Length != fftLength) { phaseSeries.Points = new SeriesPoint[fftLength]; } for (int i = 0; i < fftLength; i++) { series.Points[i].X = message.Frequency[i]; series.Points[i].Y = message.Amplitude[i]; phaseSeries.Points[i].X = message.Frequency[i]; phaseSeries.Points[i].Y = message.Phase[i]; } if (m_chart.ViewXY.Annotations[1].Visible) { LineSeriesCursor lineSeriesCursor = m_chart.ViewXY.LineSeriesCursors[0]; int index = GetNearestPointIndex(series, lineSeriesCursor.ValueAtXAxis); if (index == -1) { m_chart.ViewXY.Annotations[1].Text = string.Empty; } else { SeriesPoint point = series.Points[index]; m_chart.ViewXY.Annotations[1].Text = string.Format("幅值:{0}", Math.Round(point.Y, 3)) + "\r\n" + string.Format("频率:{0}", Math.Round(point.X, 3)); } } m_chart.ViewXY.PointLineSeries[0].InvalidateData(); m_chart.ViewXY.PointLineSeries[1].InvalidateData(); AnnotationXY spectrumAnnotation = m_chart.ViewXY.Annotations[0]; StringBuilder spectrumSB = new StringBuilder(); spectrumSB.AppendLine("频率" + " " + "幅值"); var fftValuesDict = message.Amplitude.Select((s, i) => new { Key = i, Value = s }).OrderByDescending(o => o.Value).Take(6); foreach (var item in fftValuesDict) { spectrumSB.AppendLine(message.Frequency[item.Key].ToString("0.00") + "; " + item.Value.ToString("0.00")); } spectrumAnnotation.Text = spectrumSB.ToString().Trim(); //if (fitViewCheckBox.IsChecked == true) //{ m_chart.ViewXY.ZoomToFit(); // } m_chart.EndUpdate(); } catch (Exception ex) { m_chart.EndUpdate(); } }