Exemplo n.º 1
0
 private void HandleNone(VibrationMessage message)
 {
     foreach (var sub in _linkList)
     {
         sub.Tell(message);
     }
 }
Exemplo n.º 2
0
 private void HandleNotWorkingVParmRequest(VibrationMessage message)
 {
     foreach (var linker in _linkList)
     {
         linker.Tell(message);
     }
 }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 private void HandleVibrationMessage(VibrationMessage message)
 {
     hasProcessed = true;
     SetSignal(message.DataContract);
     foreach (var linker in _linkList)
     {
         linker.Tell(message);
     }
 }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
 private void HandleNotWorkingVibrationMessage(VibrationMessage message)
 {
     foreach (var sub in _subscriptions)
     {
         sub.Tell(message);
     }
     foreach (var linker in _linkList)
     {
         linker.Tell(message);
     }
 }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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();
            }
        }
Exemplo n.º 11
0
 private void HandleVibrationMessage(VibrationMessage message)
 {
     _byteToSingleActor.Tell(message);
 }
Exemplo n.º 12
0
        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();
            }
        }