Exemplo n.º 1
0
        /// <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(_曲线信息);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        /// <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(_曲线信息);
        }