CRVM-redis-6/Host/PlottingReview.cs

1202 lines
53 KiB
C#
Raw Normal View History

2025-11-07 02:02:31 +08:00
using System;
using System.Drawing;
using System.Windows.Forms;
using ZedGraph;
using CRVM.SIDExcuter;
using CRVM.Entity;
using CRVM.Utility;
namespace CRVM
{
public partial class PlottingReview : WeifenLuo.WinFormsUI.Docking.DockContent
{
private int oneStepPoints;
private double timeSpan;
private int displayPoints;
private int indexPos = 0;
private int orient = 1;//正为正向,负为反向
private int coeff = 1;//步数放大比例
private MasterPane master;
private GraphPane gpt;
IViewHelper fileHelper;
private Machine macReview = null;
Color[] rollLineColor = { Color.FromArgb(20, 25, 244), Color.FromArgb(11, 147, 47), Color.FromArgb(209, 184, 37) };
public PlottingReview(IViewHelper fileHelper, Machine mac)
{
this.fileHelper = fileHelper;
this.macReview = mac;
timeSpan = Convert.ToDouble(SysParam.Instance.reTimeSpan);
displayPoints = Convert.ToInt32(timeSpan * SysParam.Instance.reSampleFre);
oneStepPoints = SysParam.Instance.reSamplePoint;
InitializeComponent();
}
private void Plot_Load(object sender, EventArgs e)
{
LoadIni();
}
private void LoadIni()
{
indexPos = 0;
btLeft.Enabled = false;
btRight.Enabled = false;
btPause.Enabled = false;
btStart.Enabled = true;
btStop.Enabled = false;
stepBar.Maximum = fileHelper.signalLengthOrigin - Convert.ToInt32(SysParam.Instance.reTimeSpan) * SysParam.Instance.reSampleFre;
stepBar.Minimum = 0;
stepBar.LargeChange = 5 * oneStepPoints;
stepBar.SmallChange = oneStepPoints;
GraRefresh();
}
public void GraRefresh()
{
SubExcute();
}
private void SubExcute()
{
if (fileHelper != null)
{
//zedGraphControl1.IsShowPointValues = false;
master = new MasterPane();
master.PaneList.Clear();
if (SysParam.Instance.orderByOther)
{
if (SysParam.Instance.orderByChannel)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.channelCount - 1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
if (SysParam.Instance.checkBoxTime)
OrderByChannel_Time(macReview.Stand[i], i);
if (SysParam.Instance.checkBoxEnergy)
OrderByChannel_Energy(i);
}
}
}
else
{
if (SysParam.Instance.checkBoxTime)
OrderByKind_Time();
if (SysParam.Instance.checkBoxEnergy)
OrderByKind_Energy();
}
}
else if (SysParam.Instance.orderByStandnoR2L)
{
if (SysParam.Instance.checkBoxTime)
OrderByKind_Time();
if (SysParam.Instance.checkBoxEnergy)
OrderByKind_Energy();
}
else if (SysParam.Instance.orderByStandnoL2R)
{
if (SysParam.Instance.checkBoxTime)
OrderByKind_Time2();
if (SysParam.Instance.checkBoxEnergy)
OrderByKind_Energy2();
}
master.Border.IsVisible = false;
master.Margin.All = 3f;
master.InnerPaneGap = 3f;
master.Fill = new Fill(SysParam.Instance.colorBackgroud);
master.AxisChange();
zedGraphControl1.MasterPane = master;
if (SysParam.Instance.orderByStandnoR2L || SysParam.Instance.orderByStandnoL2R)
{
int colNumTemp = 0;//显示的列数,按机架排列
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
{
if (SysParam.Instance.channel[i].ChChecked)
{
colNumTemp++;
}
}
int picNumber = 0;
if (SysParam.Instance.checkBoxTime)
{
if (SysParam.Instance.checkBoxTimeAll)
{
picNumber++;
}
if (SysParam.Instance.checkBoxTimeL)
{
picNumber++;
}
if (SysParam.Instance.checkBoxTimeM)
{
picNumber++;
}
if (SysParam.Instance.checkBoxTimeH)
{
picNumber++;
}
if (SysParam.Instance.checkBoxTimeFre)
{
picNumber++;
}
if (SysParam.Instance.checkBoxTimeFilt)
{
picNumber++;
}
}
if (SysParam.Instance.checkBoxEnergy)
{
if (SysParam.Instance.checkBoxEnergyAll)
{
picNumber++;
}
if (SysParam.Instance.checkBoxEnergyL)
{
picNumber++;
}
if (SysParam.Instance.checkBoxEnergyM)
{
picNumber++;
}
if (SysParam.Instance.checkBoxEnergyH)
{
picNumber++;
}
if (SysParam.Instance.checkBoxEnergySpeed)
{
picNumber++;
}
}
if (picNumber == 0)
{
picNumber = 1;
}
zedGraphControl1.MasterPane.RowNum = picNumber;
if (colNumTemp == 0 || colNumTemp > SysParam.Instance.SpeedChannelCount)
{
}
else
{
zedGraphControl1.MasterPane.ColNum = colNumTemp;
}
zedGraphControl1.MasterPane.SetLayout(zedGraphControl1.CreateGraphics(), PaneLayout.UserFormat);
}
else if (SysParam.Instance.orderByOther)
{
if (SysParam.Instance.orderBySingleColumn)
{
zedGraphControl1.MasterPane.SetLayout(zedGraphControl1.CreateGraphics(), PaneLayout.SingleColumn);
}
else
{
zedGraphControl1.MasterPane.SetLayout(zedGraphControl1.CreateGraphics(), PaneLayout.SquareRowPreferred);
}
}
zedGraphControl1.Height = ClientRectangle.Height;
zedGraphControl1.Refresh();
//Console.WriteLine(DateTime.Now.ToString("mmss.fff")+"结束");
}
}
private void OrderByChannel_Time(Stand stand, int standNo)
{
if (standNo >= SysParam.Instance.SpeedChannelCount)
{
return;
}
double[] tvib = getData(standNo, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
GetAlarmParam(fileHelper.originSpeedList[standNo][indexPos], stand);
for (int i = 0; i < displayPoints; i++)
{
tx[i] = x_min + Convert.ToDouble(i) / SysParam.Instance.reSampleFre;
}
if (SysParam.Instance.checkBoxTimeAll)
{
SetTimeGra_All(tx, tvib, x_min, x_max, SysParam.Instance.comboBoxTimeAll, (standNo + 1) + "号机架时域波形", standNo);
}
if (SysParam.Instance.checkBoxTimeL)
{
SetTimeGra_LMH(tx, tvib, x_min, x_max, stand.band_Fre_L1, stand.band_Fre_L2, SysParam.Instance.comboBoxTimeL, (standNo + 1) + "号机架低频时域", 5);
}
if (SysParam.Instance.checkBoxTimeM)
{
SetTimeGra_LMH(tx, tvib, x_min, x_max, stand.band_Fre_M1, stand.band_Fre_M2, SysParam.Instance.comboBoxTimeM, (standNo + 1) + "号机架中频时域", 5);
}
if (SysParam.Instance.checkBoxTimeH)
{
SetTimeGra_LMH(tx, tvib, x_min, x_max, stand.band_Fre_H1, stand.band_Fre_H2, SysParam.Instance.comboBoxTimeH, (standNo + 1) + "号机架高频时域", 5);
}
if (SysParam.Instance.checkBoxTimeFre)
{
SetTimeGra_Fre(tvib, SysParam.Instance.comboBoxTimeFre, (standNo + 1) + "号机架频谱");
}
if (SysParam.Instance.checkBoxTimeFilt)
{
SetTimeGra_LMH(tx, tvib, x_min, x_max, Convert.ToInt32(SysParam.Instance.textBoxf1), Convert.ToInt32(SysParam.Instance.textBoxf2), SysParam.Instance.ComboBoxTimeFilt, (standNo + 1) + "号机架带通滤波", standNo);
}
}
/// <summary>
/// 倒叙 SysParam.Instance.SpeedChannelCount ~ 1
/// </summary>
private void OrderByKind_Time()
{
if (SysParam.Instance.checkBoxTimeAll)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
if (SysParam.Instance.channel[i].ChChecked)
{
SetTimeGra_All(tx, tvib, x_min, x_max, SysParam.Instance.comboBoxTimeAll, (i + 1) + "号机架时域波形", i);
}
}
}
if (SysParam.Instance.checkBoxTimeL)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
GetAlarmParam(fileHelper.originSpeedList[i][indexPos], macReview.Stand[i]);
SetTimeGra_LMH(tx, tvib, x_min, x_max, macReview.Stand[i].band_Fre_L1, macReview.Stand[i].band_Fre_L2, SysParam.Instance.comboBoxTimeL, (i + 1) + "号机架低频时域", 5);
}
}
}
if (SysParam.Instance.checkBoxTimeM)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
GetAlarmParam(fileHelper.originSpeedList[i][indexPos], macReview.Stand[i]);
SetTimeGra_LMH(tx, tvib, x_min, x_max, macReview.Stand[i].band_Fre_M1, macReview.Stand[i].band_Fre_M2, SysParam.Instance.comboBoxTimeM, (i + 1) + "号机架中频时域", 5);
}
}
}
if (SysParam.Instance.checkBoxTimeH)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
GetAlarmParam(fileHelper.originSpeedList[i][indexPos], macReview.Stand[i]);
SetTimeGra_LMH(tx, tvib, x_min, x_max, macReview.Stand[i].band_Fre_H1, macReview.Stand[i].band_Fre_H2, SysParam.Instance.comboBoxTimeH, (i + 1) + "号机架高频时域", 5);
}
}
}
if (SysParam.Instance.checkBoxTimeFre)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
SetTimeGra_Fre(tvib, SysParam.Instance.comboBoxTimeFre, (i + 1) + "号机架频谱");
}
}
}
if (SysParam.Instance.checkBoxTimeFilt)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
SetTimeGra_LMH(tx, tvib, x_min, x_max, Convert.ToInt32(SysParam.Instance.textBoxf1), Convert.ToInt32(SysParam.Instance.textBoxf2), SysParam.Instance.ComboBoxTimeFilt, (i + 1) + "号机架带通滤波", i);
}
}
}
}
/// <summary>
/// 顺序 1 ~ SysParam.Instance.SpeedChannelCount
/// </summary>
private void OrderByKind_Time2()
{
if (SysParam.Instance.checkBoxTimeAll)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
if (SysParam.Instance.channel[i].ChChecked)
{
SetTimeGra_All(tx, tvib, x_min, x_max, SysParam.Instance.comboBoxTimeAll, (i + 1) + "号机架时域波形", i);
}
}
}
if (SysParam.Instance.checkBoxTimeL)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
GetAlarmParam(fileHelper.originSpeedList[i][indexPos], macReview.Stand[i]);
SetTimeGra_LMH(tx, tvib, x_min, x_max, macReview.Stand[i].band_Fre_L1, macReview.Stand[i].band_Fre_L2, SysParam.Instance.comboBoxTimeL, (i + 1) + "号机架低频时域", 5);
}
}
}
if (SysParam.Instance.checkBoxTimeM)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
GetAlarmParam(fileHelper.originSpeedList[i][indexPos], macReview.Stand[i]);
SetTimeGra_LMH(tx, tvib, x_min, x_max, macReview.Stand[i].band_Fre_M1, macReview.Stand[i].band_Fre_M2, SysParam.Instance.comboBoxTimeM, (i + 1) + "号机架中频时域", 5);
}
}
}
if (SysParam.Instance.checkBoxTimeH)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
GetAlarmParam(fileHelper.originSpeedList[i][indexPos], macReview.Stand[i]);
SetTimeGra_LMH(tx, tvib, x_min, x_max, macReview.Stand[i].band_Fre_H1, macReview.Stand[i].band_Fre_H2, SysParam.Instance.comboBoxTimeH, (i + 1) + "号机架高频时域", 5);
}
}
}
if (SysParam.Instance.checkBoxTimeFre)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
SetTimeGra_Fre(tvib, SysParam.Instance.comboBoxTimeFre, (i + 1) + "号机架频谱");
}
}
}
if (SysParam.Instance.checkBoxTimeFilt)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
double[] tvib = getData(i, indexPos, displayPoints);
double x_min = indexPos * Convert.ToDouble(SysParam.Instance.reSamplePoint) / SysParam.Instance.reSampleFre;
double x_max = x_min + timeSpan;
double[] tx = new double[displayPoints];
for (int j = 0; j < displayPoints; j++)
{
tx[j] = x_min + Convert.ToDouble(j) / SysParam.Instance.reSampleFre;
}
SetTimeGra_LMH(tx, tvib, x_min, x_max, Convert.ToInt32(SysParam.Instance.textBoxf1), Convert.ToInt32(SysParam.Instance.textBoxf2), SysParam.Instance.ComboBoxTimeFilt, (i + 1) + "号机架带通滤波", i);
}
}
}
}
private void OrderByChannel_Energy(int standNo)
{
if (standNo >= SysParam.Instance.SpeedChannelCount)
{
return;
}
if (SysParam.Instance.checkBoxEnergyAll)
{
energy_All(fileHelper.energyData, SysParam.Instance.comboBoxEnergyAll, standNo);
}
if (SysParam.Instance.checkBoxEnergyL)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyL, standNo, 0, "低频");
}
if (SysParam.Instance.checkBoxEnergyM)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyM, standNo, 1, "中频");
}
if (SysParam.Instance.checkBoxEnergyH)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyH, standNo, 2, "高频");
}
if (SysParam.Instance.checkBoxEnergySpeed && (standNo < SysParam.Instance.SpeedChannelCount))
{
energy_Speed(fileHelper.energyData, SysParam.Instance.comboBoxEnergySpeed, standNo);
}
}
private void OrderByKind_Energy()
{
if (SysParam.Instance.checkBoxEnergyAll)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_All(fileHelper.energyData, SysParam.Instance.comboBoxEnergyAll, i);
}
}
}
if (SysParam.Instance.checkBoxEnergyL)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyL, i, 0, "低频");
}
}
}
if (SysParam.Instance.checkBoxEnergyM)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyM, i, 1, "中频");
}
}
}
if (SysParam.Instance.checkBoxEnergyH)
{
//for (int i = 0; i < SysParam.Instance.channelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyH, i, 2, "高频");
}
}
}
if (SysParam.Instance.checkBoxEnergySpeed)
{
//for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
for (int i = SysParam.Instance.SpeedChannelCount-1; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_Speed(fileHelper.energyData, SysParam.Instance.comboBoxEnergySpeed, i);
}
}
}
}
private void OrderByKind_Energy2()
{
if (SysParam.Instance.checkBoxEnergyAll)
{
for (int i = 0; i < SysParam.Instance.channelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_All(fileHelper.energyData, SysParam.Instance.comboBoxEnergyAll, i);
}
}
}
if (SysParam.Instance.checkBoxEnergyL)
{
for (int i = 0; i < SysParam.Instance.channelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyL, i, 0, "低频");
}
}
}
if (SysParam.Instance.checkBoxEnergyM)
{
for (int i = 0; i < SysParam.Instance.channelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyM, i, 1, "中频");
}
}
}
if (SysParam.Instance.checkBoxEnergyH)
{
for (int i = 0; i < SysParam.Instance.channelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_LMH(fileHelper.energyData, SysParam.Instance.comboBoxEnergyH, i, 2, "高频");
}
}
}
if (SysParam.Instance.checkBoxEnergySpeed)
{
for (int i = 0; i < SysParam.Instance.SpeedChannelCount; i++)
//for (int i = 4; i >= 0; i--)
{
if (SysParam.Instance.channel[i].ChChecked)
{
energy_Speed(fileHelper.energyData, SysParam.Instance.comboBoxEnergySpeed, i);
}
}
}
}
private void SetTimeGra_All(double[] tx, double[] lineList, double xmin, double xmax, string yAxisVal, string title, int standno)
{
if (standno >= SysParam.Instance.SpeedChannelCount)
{
return;
}
DevelopLog.DeBug.WriteLogFile("review", "XXXXXXXXXX");
gpt = new GraphPane();
gpt.CurveList.Clear();
if (standno < SysParam.Instance.SpeedChannelCount)
{
//辊系故障判别线
if (SysParam.Instance.rollLineVisible && fileHelper.originSpeedList[standno][indexPos] > 5)
{
double rotatetimeB, rotatetimeM, rotatetimeW;
rotatetimeB = (Math.PI * (macReview.Stand[standno].rollDiameterBL + macReview.Stand[standno].rollDiameterBU) / 2.0) / (fileHelper.originSpeedList[standno][indexPos] / 60 * 1000);//支撑辊的旋转周期
rotatetimeM = (Math.PI * (macReview.Stand[standno].rollDiameterML + macReview.Stand[standno].rollDiameterMU) / 2.0) / (fileHelper.originSpeedList[standno][indexPos] / 60 * 1000);//中间辊的旋转周期
rotatetimeW = (Math.PI * (macReview.Stand[standno].rollDiameterWL + macReview.Stand[standno].rollDiameterWU) / 2.0) / (fileHelper.originSpeedList[standno][indexPos] / 60 * 1000);//工作辊的旋转周期
if (rotatetimeB < timeSpan)
{
double[] x = { rotatetimeB + xmin, rotatetimeB + xmin };
double[] y = { Convert.ToDouble(yAxisVal), -Convert.ToDouble(yAxisVal) };
gpt.AddStick("支撑辊(" + rotatetimeB.ToString("0.000") + "s)", x, y, SysParam.Instance.colorBackupRoll).Line.Width = 2f;
}
if (rotatetimeM < timeSpan)
{
double[] x = { rotatetimeM + xmin, rotatetimeM + xmin };
double[] y = { Convert.ToDouble(yAxisVal), -Convert.ToDouble(yAxisVal) };
gpt.AddStick("中间辊(" + rotatetimeM.ToString("0.000") + "s)", x, y, SysParam.Instance.colorMidRoll).Line.Width = 2f;
}
if (rotatetimeW < timeSpan)
{
double[] x = { rotatetimeW + xmin, rotatetimeW + xmin };
double[] y = { Convert.ToDouble(yAxisVal), -Convert.ToDouble(yAxisVal) };
gpt.AddStick("工作辊(" + rotatetimeW.ToString("0.000") + "s)", x, y, SysParam.Instance.colorWorkRoll).Line.Width = 2f;
}
}
}
gpt.AddCurve("", tx, lineList, SysParam.Instance.colorTime, SymbolType.None);
gpt.XAxis.Scale.Min = xmin;
gpt.XAxis.Scale.Max = xmax;
gpt.YAxis.Scale.Min = -Convert.ToSingle(yAxisVal);
gpt.YAxis.Scale.Max = Convert.ToSingle(yAxisVal);
gpt.Title.Text = title;
GraPaneSetting(gpt);
master.Add(gpt);
}
private void SetTimeGra_LMH(double[] tx, double[] lineList, double xmin, double xmax, int fre_1, int fre_2, string yAxisVal, string title, int standno)
{
if (standno >= SysParam.Instance.SpeedChannelCount)
{
return;
}
gpt = new GraphPane();
gpt.CurveList.Clear();
if (standno < SysParam.Instance.SpeedChannelCount)
{
//辊系故障判别线
if (SysParam.Instance.rollLineVisible && fileHelper.originSpeedList[standno][indexPos] > 5)
{
double rotatetimeB, rotatetimeM, rotatetimeW;
rotatetimeB = (Math.PI * (macReview.Stand[standno].rollDiameterBL + macReview.Stand[standno].rollDiameterBU) / 2.0) / (fileHelper.originSpeedList[standno][indexPos] / 60 * 1000);//支撑辊的旋转周期
rotatetimeM = (Math.PI * (macReview.Stand[standno].rollDiameterML + macReview.Stand[standno].rollDiameterMU) / 2.0) / (fileHelper.originSpeedList[standno][indexPos] / 60 * 1000);//中间辊的旋转周期
rotatetimeW = (Math.PI * (macReview.Stand[standno].rollDiameterWL + macReview.Stand[standno].rollDiameterWU) / 2.0) / (fileHelper.originSpeedList[standno][indexPos] / 60 * 1000);//工作辊的旋转周期
if (rotatetimeB < timeSpan)
{
double[] x = { rotatetimeB + xmin, rotatetimeB + xmin };
double[] y = { Convert.ToDouble(yAxisVal), -Convert.ToDouble(yAxisVal) };
gpt.AddStick("支撑辊", x, y, SysParam.Instance.colorBackupRoll).Line.Width = 2f;
}
if (rotatetimeM < timeSpan)
{
double[] x = { rotatetimeM + xmin, rotatetimeM + xmin };
double[] y = { Convert.ToDouble(yAxisVal), -Convert.ToDouble(yAxisVal) };
gpt.AddStick("中间辊", x, y, SysParam.Instance.colorBackupRoll).Line.Width = 2f;
}
if (rotatetimeW < timeSpan)
{
double[] x = { rotatetimeW + xmin, rotatetimeW + xmin };
double[] y = { Convert.ToDouble(yAxisVal), -Convert.ToDouble(yAxisVal) };
gpt.AddStick("工作辊", x, y, SysParam.Instance.colorBackupRoll).Line.Width = 2f;
}
}
}
int length = lineList.Length;
//double[] tXAxis = new double[length];
double[] llf;
llf = SysParam.Instance.filterAlgor(lineList, fre_1, fre_2, length, 100, Convert.ToInt32(SysParam.Instance.reSampleFre));
//for (int i = 0; i < length; i++)
//{
// tXAxis[i] = Convert.ToDouble(i) / SysParam.Instance.sampleFre;
//}
gpt.AddCurve("", tx, llf, SysParam.Instance.colorTime, SymbolType.None);
gpt.XAxis.Scale.Min = xmin;
gpt.XAxis.Scale.Max = xmax;
gpt.YAxis.Scale.Min = -Convert.ToSingle(yAxisVal);
gpt.YAxis.Scale.Max = Convert.ToSingle(yAxisVal);
gpt.YAxis.Scale.Format = "90.99g";
gpt.Title.Text = title;
GraPaneSetting(gpt);
master.Add(gpt);
}
private void SetTimeGra_Fre(double[] lineList, string yAxisVal, string title)
{
gpt = new GraphPane();
gpt.CurveList.Clear();
PointPairList list_f = new PointPairList();
list_f.Clear();
int orgLength = lineList.Length;
int length = Convert.ToInt32(Math.Pow(2, SysParam.Instance.N2M(orgLength)));
double[] f = new double[length];
double[] tt = new double[length];
for (int i = 0; i < length; i++)
{
tt[i] = lineList[orgLength - length + i];
}
SysParam.Instance.FFT(tt, f, length, 1);
for (int i = 0; i < length / 2; i++)
{
f[i] = 2 * Math.Sqrt(tt[i] * tt[i] + f[i] * f[i]) / length;
list_f.Add(Convert.ToDouble(i) * SysParam.Instance.reSampleFre / length, f[i]);
}
gpt.AddCurve("", list_f, SysParam.Instance.colorFre, SymbolType.None);
gpt.XAxis.Scale.Max = 1000;
gpt.XAxis.Scale.Min = 0;
gpt.YAxis.Scale.Max = Convert.ToSingle(yAxisVal);
gpt.YAxis.Scale.Min = 0;
gpt.Title.Text = title;
GraPaneSetting(gpt);
master.Add(gpt);
}
private void energy_All(double[,] lineList, string yAxisVal, int stdNo)
{
gpt = new GraphPane();
gpt.CurveList.Clear();
int length = fileHelper.signalLengthEnergy;
double[] tx = new double[length];
double[] ty = new double[length];
for (int i = 0; i < length; i++)
{
tx[i] = i * SysParam.Instance.reSamplePoint / Convert.ToDouble(SysParam.Instance.reSampleFre);
ty[i] = lineList[stdNo * 8 + 1, i];
}
gpt.AddCurve("", tx, ty, SysParam.Instance.colorEnergy, SymbolType.None);
gpt.XAxis.Scale.Min = 0.0;
gpt.XAxis.Scale.Max = tx[length - 1];
gpt.YAxis.Scale.Min = 0.0;
gpt.YAxis.Scale.Max = Convert.ToDouble(yAxisVal);
gpt.Title.Text = (stdNo + 1) + "号机架全局能量";
GraPaneSetting(gpt);
this.master.Add(gpt);
}
private void energy_LMH(double[,] lineList, string yAxisVal, int stdNo, int typeNo, string type)
{
gpt = new GraphPane();
gpt.CurveList.Clear();
int length = fileHelper.signalLengthEnergy;
double[] tx = new double[length];
double[] ty = new double[length];
double[] tyalarm = new double[length];
for (int i = 0; i < length; i++)
{
tx[i] = i * SysParam.Instance.reSamplePoint / Convert.ToDouble(SysParam.Instance.reSampleFre);
ty[i] = lineList[stdNo * 8 + 2 + typeNo, i];
tyalarm[i] = lineList[stdNo * 8 + 5 + typeNo, i];
}
gpt.AddCurve("能量线", tx, ty, SysParam.Instance.colorEnergy, SymbolType.None);
gpt.AddCurve("报警线", tx, tyalarm, SysParam.Instance.colorAlarm, SymbolType.None).Line.Width = 2f;
gpt.XAxis.Scale.Min = 0.0;
gpt.XAxis.Scale.Max = tx[length - 1];
gpt.YAxis.Scale.Min = 0.0;
gpt.YAxis.Scale.Max = Convert.ToDouble(yAxisVal);
gpt.Title.Text = (stdNo + 1) + "号机架" + type + "能量";
GraPaneSetting(gpt);
this.master.Add(gpt);
}
private void energy_Speed(double[,] lineList, string yAxisVal, int stdNo)
{
gpt = new GraphPane();
gpt.CurveList.Clear();
int length = fileHelper.signalLengthEnergy;
double[] tx = new double[length];
double[] ty = new double[length];
for (int i = 0; i < length; i++)
{
tx[i] = i * SysParam.Instance.reSamplePoint / Convert.ToDouble(SysParam.Instance.reSampleFre);
ty[i] = lineList[stdNo * 8, i];
}
gpt.AddCurve("", tx, ty, SysParam.Instance.colorSpeed, SymbolType.None).Line.IsSmooth = true;
gpt.XAxis.Scale.Min = 0.0;
gpt.XAxis.Scale.Max = tx[length - 1];
gpt.YAxis.Scale.Min = 0.0;
gpt.YAxis.Scale.Max = Convert.ToDouble(yAxisVal);
gpt.Title.Text = (stdNo + 1) + "号机架速度";
GraPaneSetting(gpt);
this.master.Add(gpt);
}
private static void GraPaneSetting(GraphPane tempGraph)
{
float fontsize = SysParam.Instance.fontSize;
Color myFontColor = SysParam.Instance.colorFont;
//tempGraph.Margin.All = 2f;
tempGraph.Fill.IsVisible = false;
tempGraph.IsFontsScaled = false;
tempGraph.TitleGap = 0f;
tempGraph.Margin.All = 3f;
tempGraph.Border.Color = Color.FromArgb(127, myFontColor);
tempGraph.Chart.Border.Color = myFontColor;
tempGraph.Chart.Fill.IsVisible = false;
tempGraph.Title.FontSpec.FontColor = myFontColor;
tempGraph.Title.FontSpec.Family = "微软雅黑";
tempGraph.Title.FontSpec.IsBold = false;
tempGraph.Title.FontSpec.Size = 1.2f * fontsize;
tempGraph.Legend.Border.IsVisible = false;
tempGraph.Legend.Position = LegendPos.InsideTopLeft;
tempGraph.Legend.IsHStack = false;
tempGraph.Legend.IsShowLegendSymbols = false;
tempGraph.Legend.FontSpec.Size = 0.8f * fontsize;
tempGraph.Legend.Fill.IsVisible = false;
tempGraph.Legend.FontSpec.FontColor = myFontColor;
tempGraph.Legend.FontSpec.Family = "微软雅黑";
tempGraph.XAxis.Title.FontSpec.Family = "微软雅黑";
tempGraph.XAxis.Title.FontSpec.IsBold = false;
tempGraph.XAxis.Scale.FontSpec.FontColor = myFontColor;
tempGraph.XAxis.Scale.FontSpec.Size = fontsize;
tempGraph.XAxis.Title.IsVisible = false;
tempGraph.XAxis.MajorTic.IsOutside = false;
tempGraph.XAxis.MajorTic.Color = Color.FromArgb(127, myFontColor);
tempGraph.XAxis.MinorTic.IsAllTics = false;
tempGraph.YAxis.Title.FontSpec.Family = "微软雅黑";
tempGraph.YAxis.Title.FontSpec.IsBold = false;
tempGraph.YAxis.Scale.FontSpec.FontColor = myFontColor;
tempGraph.YAxis.Scale.FontSpec.Size = fontsize;
tempGraph.XAxis.Title.IsVisible = false;
tempGraph.YAxis.MajorTic.IsOutside = false;
tempGraph.YAxis.MajorTic.Color = Color.FromArgb(127, myFontColor);
tempGraph.YAxis.MinorTic.IsAllTics = false;
tempGraph.YAxis.MajorGrid.IsZeroLine = false;
if (SysParam.Instance.BackgroundGridOn)
{
tempGraph.XAxis.MajorGrid.IsVisible = true;
tempGraph.XAxis.MajorGrid.Color = Color.FromArgb(127, myFontColor);
tempGraph.YAxis.MajorGrid.IsVisible = true;
tempGraph.YAxis.MajorGrid.Color = Color.FromArgb(127, myFontColor);
}
else
{
tempGraph.XAxis.MajorGrid.IsVisible = false;
tempGraph.YAxis.MajorGrid.IsVisible = false;
}
}
private double[] getData(int standNo, int index, int length)
{
double[] originData = new double[length];
index = index * SysParam.Instance.reSamplePoint;
try
{
for (int i = 0; i < length; i++)
{
originData[i] = fileHelper.originDataList[standNo][index + i];
}
}
catch (Exception)
{
originData = new double[length];
for (int i = 0; i < length; i++)
{
originData[i] = fileHelper.originDataList[standNo][fileHelper.signalLengthOrigin - length + i];
}
}
return originData;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (fileHelper.signalLengthOrigin >= SysParam.Instance.reSampleFre)
{
stepBar.Maximum = fileHelper.signalLengthOrigin - Convert.ToInt32(SysParam.Instance.reTimeSpan) * SysParam.Instance.reSampleFre;
int ecchstep = orient * coeff;
timeSpan = Convert.ToDouble(SysParam.Instance.reTimeSpan);
displayPoints = Convert.ToInt32(timeSpan * SysParam.Instance.reSampleFre);
indexPos = indexPos + ecchstep;
if (indexPos < 0)
{
indexPos = 0;
}
if (indexPos * SysParam.Instance.reSamplePoint + displayPoints <= fileHelper.signalLengthOrigin)
{
stepBar.Value = indexPos * SysParam.Instance.reSamplePoint;
GraRefresh();
}
else
{
timer1.Enabled = false;
btRight.Enabled = false;
btLeft.Enabled = true;
}
}
else
{
timer1.Enabled = false;
MessageBox.Show("记录长度短于1秒不可回放", "警告");
btRight.Enabled = false;
btPause.Enabled = false;
btStart.Enabled = false;
master.PaneList.Clear();
}
}
private void btStart_Click(object sender, EventArgs e)
{
//indexPos = 0;
orient = 1;
timer1.Enabled = true;
btStop.Enabled = true;
btPause.Enabled = true;
btStart.Enabled = false;
btRight.Enabled = false;
btLeft.Enabled = true;
}
private void btStop_Click(object sender, EventArgs e)
{
indexPos = 0;
timer1.Enabled = false;
btStart.Enabled = true;
btStop.Enabled = false;
btPause.Enabled = false;
btRight.Enabled = false;
btLeft.Enabled = false;
stepBar.Value = 0;
LoadIni();
}
private void btPaues_Click(object sender, EventArgs e)
{
stepBar.Enabled = true;
timer1.Enabled = false;
btStart.Enabled = false;
btStop.Enabled = false;
btPause.Enabled = false;
btRight.Enabled = true;
btLeft.Enabled = true;
}
private void btRight_Click(object sender, EventArgs e)
{
orient = 1;
timer1.Enabled = true;
btStart.Enabled = false;
btStop.Enabled = true;
btPause.Enabled = true;
btRight.Enabled = false;
btLeft.Enabled = true;
}
private void stepBar_Scroll(object sender, ScrollEventArgs e)
{
stepBar.Maximum = fileHelper.signalLengthOrigin - Convert.ToInt32(SysParam.Instance.reTimeSpan) * SysParam.Instance.reSampleFre;
//int eachstep = orient * coeff;
timeSpan = Convert.ToDouble(SysParam.Instance.reTimeSpan);
displayPoints = Convert.ToInt32(timeSpan * SysParam.Instance.reSampleFre);
indexPos = Convert.ToInt32(stepBar.Value / SysParam.Instance.reSamplePoint);
if (indexPos * SysParam.Instance.reSamplePoint + displayPoints <= fileHelper.signalLengthOrigin)
{
stepBar.Value = indexPos * SysParam.Instance.reSamplePoint;
}
else
{
btRight.Enabled = false;
btLeft.Enabled = true;
}
GraRefresh();
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
int itmp = trackBar1.Value;
if (itmp < 0)
{
timer1.Interval = -itmp * 200;
}
else if (itmp == 0)
{
timer1.Interval = 200;
}
else
{
timer1.Interval = 200 / itmp;
}
if (itmp > 1)
{
coeff = itmp / 2;
}
else
{
coeff = 1;
}
}
private void btLeft_Click(object sender, EventArgs e)
{
orient = -1;
timer1.Enabled = true;
btStart.Enabled = false;
btStop.Enabled = true;
btPause.Enabled = true;
btRight.Enabled = true;
btLeft.Enabled = false;
}
private void GetAlarmParam(double speed, Stand std)
{
int ias = std.alarm_spd.Length;
int i_fre = std.fre_l_S1.Length - 1;
int iIndex = std.alarm_spd[0].alarmSpeed;
if (speed <= std.alarm_spd[0].alarmSpeed)
{
std.band_Fre_L1 = std.fre_l_S1[0];//.fre_l_A1;
std.band_Fre_L2 = std.fre_l_S2[0];
std.band_Fre_M1 = std.fre_m_S1[0];
std.band_Fre_M2 = std.fre_m_S2[0];
std.band_Fre_H1 = std.fre_h_S1[0];
std.band_Fre_H2 = std.fre_h_S2[0];
std.alarm_L_Value_ck = std.fre_l_V[0];
std.alarm_M_Value_ck = std.fre_m_V[0];
std.alarm_H_Value_ck = std.fre_h_V[0];
std.defect_L_Value_ck = std.fre_l_D[0];
std.defect_M_Value_ck = std.fre_m_D[0];
std.defect_H_Value_ck = std.fre_h_D[0];
}
else if (speed >= std.alarm_spd[ias - 1].alarmSpeed)
{
std.band_Fre_L1 = std.fre_l_S1[i_fre];
std.band_Fre_L2 = std.fre_l_S2[i_fre];
std.band_Fre_M1 = std.fre_m_S1[i_fre];
std.band_Fre_M2 = std.fre_m_S2[i_fre];
std.band_Fre_H1 = std.fre_h_S1[i_fre];
std.band_Fre_H2 = std.fre_h_S2[i_fre];
std.alarm_L_Value_ck = std.fre_l_V[i_fre];
std.alarm_M_Value_ck = std.fre_m_V[i_fre];
std.alarm_H_Value_ck = std.fre_h_V[i_fre];
std.defect_L_Value_ck = std.fre_l_D[i_fre];
std.defect_M_Value_ck = std.fre_m_D[i_fre];
std.defect_H_Value_ck = std.fre_h_D[i_fre];
}
else
{
std.band_Fre_L1 = std.fre_l_S1[Convert.ToInt32(speed - iIndex)];
std.band_Fre_L2 = std.fre_l_S2[Convert.ToInt32(speed - iIndex)];
std.band_Fre_M1 = std.fre_m_S1[Convert.ToInt32(speed - iIndex)];
std.band_Fre_M2 = std.fre_m_S2[Convert.ToInt32(speed - iIndex)];
std.band_Fre_H1 = std.fre_h_S1[Convert.ToInt32(speed - iIndex)];
std.band_Fre_H2 = std.fre_h_S2[Convert.ToInt32(speed - iIndex)];
std.alarm_L_Value_ck = std.fre_l_V[Convert.ToInt32(speed - iIndex)];
std.alarm_M_Value_ck = std.fre_m_V[Convert.ToInt32(speed - iIndex)];
std.alarm_H_Value_ck = std.fre_h_V[Convert.ToInt32(speed - iIndex)];
std.defect_L_Value_ck = std.fre_l_D[Convert.ToInt32(speed - iIndex)];
std.defect_M_Value_ck = std.fre_m_D[Convert.ToInt32(speed - iIndex)];
std.defect_H_Value_ck = std.fre_h_D[Convert.ToInt32(speed - iIndex)];
}
}
private string zedGraphControl1_PointValueEvent(ZedGraphControl sender, GraphPane pane, CurveItem curve, int iPt)
{
if (pane.Title.Text.Contains("能量"))
{
if (iPt < curve.Points.Count)
{
PointPair pt = curve[iPt];
return (pt.X.ToString("0.0") + "s " + pt.Y.ToString("0.00000") + "g " + fileHelper.originDistanceList[iPt].ToString("0.0") + "m");
}
else
{
return "";
}
}
else if (pane.Title.Text.Contains("速度"))
{
if (iPt < curve.Points.Count)
{
PointPair pt = curve[iPt];
return (pt.X.ToString("0.0") + "s " + pt.Y.ToString("0.0") + "m/min " + fileHelper.originDistanceList[iPt].ToString("0.0") + "m");
}
else
{
return "";
}
}
else if (pane.Title.Text.Contains("频谱"))
{
if (iPt < curve.Points.Count)
{
PointPair pt = curve[iPt];
return (pt.X.ToString("0.0") + "Hz " + pt.Y.ToString("0.00000") + "g");
}
else
{
return "";
}
}
else
{
if (iPt < curve.Points.Count)
{
PointPair pt = curve[iPt];
return (pt.X.ToString("0.000") + "s " + pt.Y.ToString("0.00000") + "g");
}
else
{
return "";
}
}
}
private void zedGraphControl1_ContextMenuBuilder(ZedGraphControl sender, ContextMenuStrip menuStrip, Point mousePt, ZedGraphControl.ContextMenuObjectState objState)
{
for (int i = 0; i < menuStrip.Items.Count; i++)
{
switch (menuStrip.Items[i].Tag.ToString().Trim())
{
case "copy":
menuStrip.Items[i].Text = "复制图片";
break;
case "show_val":
menuStrip.Items[i].Text = "查看坐标";
break;
case "save_as":
menuStrip.Items[i].Text = "图片保存至...";
break;
case "page_setup":
menuStrip.Items[i].Text = "页面设置";
break;
case "print":
menuStrip.Items[i].Text = "打印";
break;
case "unzoom":
menuStrip.Items[i].Text = "还原缩放";
break;
case "undo_all":
menuStrip.Items[i].Text = @"还原缩放\移动";
break;
case "set_default":
menuStrip.Items[i].Text = "恢复默认设置";
break;
}
}
}
}
}