/// <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); } } }
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); } }