/// <summary> /// 绑定PLC通道 /// </summary> /// <param name="Adress"></param> private void f_绑定稳态数据通道(string Adress, string PlotName) { 稳态波形通道 class_稳态波形通道 = new 稳态波形通道(); class_稳态波形通道.波形间隔 = -1; class_稳态波形通道.数据编码 = 数据存储.数据来源编码规则.GetPLC(Adress); class_稳态波形通道.稳态波形 = this.f_GetWaveData; 曲线信息 _曲线信息 = new 曲线信息(); _曲线信息.稳态波形通道 = class_稳态波形通道; _曲线信息.Plot = new NationalInstruments.UI.ScatterPlot(); _曲线信息.Plot.YAxis = new NationalInstruments.UI.YAxis(); _曲线信息.Plot.YAxis.Visible = false; this.Graph_View.YAxes.Add(_曲线信息.Plot.YAxis); this.Graph_View.Plots.Add(_曲线信息.Plot); LegendItem item = new LegendItem(); item.Source = _曲线信息.Plot; item.Text = PlotName; legend1.Items.Add(item); 数据项 _数据项 = 数据项哈希存储.GetItem(class_稳态波形通道.数据编码); _数据项.TheWChannelManager.注册通道(class_稳态波形通道); _数据项.TheWChannelManager.开始绘制波形(); _曲线信息.数据项 = _数据项; List_曲线信息.Add(_曲线信息); }
/// <summary> /// 绘制曲线方法 /// </summary> /// <param name="编码"></param> /// <param name="x"></param> /// <param name="y"></param> private void f_绘制曲线(string 编码, double[] x, double[] y) { 曲线信息 _曲线信息 = List_曲线信息.Find(item => item.稳态波形通道.数据编码.Equals(编码)); for (int i = 0; i < x.Length; i++) { x[i] = xAxis_Looking.Range.Minimum + x[i]; } _曲线信息.Plot.PlotXY(x, y); }
public void f_绘制指定的曲线(string PlotName, double[] x, double[] y, int _拟合次数) { List <double> _拟合曲线X值; List <double> _拟合曲线Y值; 曲线信息 _曲线信息 = List_曲线信息.Find(item => item.Name.Equals(PlotName)); //_曲线信息.ShadowPlot.PlotXY(x, y); //CurveFitting.f_曲线拟合(x, y, _拟合次数, x[0], 5000, out _拟合曲线X值, out _拟合曲线Y值); //_曲线信息.Plot.PlotXY(_拟合曲线X值.ToArray(), _拟合曲线Y值.ToArray()); }
/// <summary> /// 绑定功率分析仪通道 /// </summary> /// <param name="IP"></param> /// <param name="Adress"></param> private void f_绑定稳态数据通道(string IP, string Adress, string PlotName) { // 创建绘制波形的对象 稳态波形通道 class_稳态波形通道 = new 稳态波形通道(); class_稳态波形通道.波形间隔 = -1; class_稳态波形通道.数据编码 = 数据存储.数据来源编码规则.GetAnyWay(IP, Adress); class_稳态波形通道.稳态波形 = this.f_GetWaveData; // 创建保存绘制波形对象的引用类,保存相关信息 曲线信息 _曲线信息 = new 曲线信息(); _曲线信息.稳态波形通道 = class_稳态波形通道; _曲线信息.Plot = new NationalInstruments.UI.ScatterPlot(); _曲线信息.Plot.YAxis = new NationalInstruments.UI.YAxis(); _曲线信息.Plot.YAxis.Visible = false; LegendItem item = new LegendItem(); item.Source = _曲线信息.Plot; item.Text = PlotName; legend1.Items.Add(item); this.Graph_View.YAxes.Add(_曲线信息.Plot.YAxis); this.Graph_View.Plots.Add(_曲线信息.Plot); // 找到数据源 数据项 _数据项 = 数据项哈希存储.GetItem(class_稳态波形通道.数据编码); //System.Threading.Thread.Sleep(100); _数据项.TheWChannelManager.注册通道(class_稳态波形通道); _数据项.TheWChannelManager.开始绘制波形(); // 保存数据源相关信息 _曲线信息.数据项 = _数据项; // 保存进内存 List_曲线信息.Add(_曲线信息); }