Beispiel #1
0
        /// <summary>
        /// Добавить линию на основной арене. ПРи этом, один и тот же параметр можно несколько раз рисовать. Сделано, чтобы иметь возможность сшивать графики по времени.
        /// </summary>
        /// <param name="chart1">График, с которым работаем</param>
        /// <param name="selectedKKSs">Выбранная пользователем группа параметров</param>
        /// <param name="chartareaName"> Выбранное пользователем имя главной арены, на которой рисуем.</param>
        /// <param name="myFileActs">Передает данные</param>
        /// <param name="r_L">Сообщает сторону оси</param>
        public void AddMainLine(Chart myChart, System.Collections.IList selectedKKSs, string chartareaName, File_Acts myFileActs, string r_L)
        {
            //Сейчас обрабатываемый KKS из списка переданного.
            string serName = "";

            //Цикл по выдленным параметрам.
            foreach (Parameter selectedKKS_i in selectedKKSs)
            {
                //Была ли построена серия с таким именем. (Если сшивали по времени.) Тогда, в имя номер повторно добавленной серии. Или не меняем KKS.
                bool isNameIn = false; // ПРисутствует ли добавляемое имя линии
                foreach (var Seria_i in myChart.Series)
                {
                    if (Seria_i.Name == selectedKKS_i.KKS)
                    {
                        isNameIn = true;
                    }
                }
                if (isNameIn)
                {
                    slisesCounter++;
                    serName = selectedKKS_i.KKS + "_" + slisesCounter;
                }
                else
                {
                    serName = selectedKKS_i.KKS;
                }

                //Добавляем серию на график
                myChart.Series.Add(new Series(serName));
                //Выбор стороны
                if (r_L == "left")
                {
                    myChart.Series[serName].YAxisType = AxisType.Primary;
                }
                else
                {
                    myChart.Series[serName].YAxisType = AxisType.Secondary;
                }

                //Легенда видимая будет.
                myChart.Series[serName].IsVisibleInLegend = true;


                //Тип линии
                myChart.Series[serName].ChartType       = SeriesChartType.Line;
                myChart.Series[serName].BorderDashStyle = ChartDashStyle.Solid;
                //Арена линии соответствующая
                myChart.Series[serName].ChartArea = chartareaName;
                //Пополнение серии.
                foreach (Time_and_Value item1 in myFileActs.Find_Parametr(serName).Time_and_Value_List)
                {
                    myChart.Series[serName].Points.AddXY(item1.Time, item1.Value);
                }
            }
        }
Beispiel #2
0
        public void DoCurrTok_2(CancellationToken token, int milisecond, File_Acts file_Acts)
        {
            int       i  = 0;
            Parameter J2 = file_Acts.Find_Parametr("J2");

            while (!token.IsCancellationRequested)
            {
                //currentTok = (Single) Math.Sin(argument);
                currentTok2 = (Single)((1e+10) * J2.Time_and_Value_List[i].Value) * 25000;
                i          += 1;
                int delTime = (int)J2.Time_and_Value_List[i].Time.Subtract(J2.Time_and_Value_List[i - 1].Time).TotalMilliseconds;
                Thread.Sleep(delTime);
            }
        }