private void showStateInfoToolStripMenuItem_Click(object sender, EventArgs e) { if (SI == null) { SI = new SysInfo(sys); } else { SI.UpdateInfo(sys); } this.SI.Show(); }
private void CreateSys() { sys = new ESystem(CreateF1.sys1.current_state); if (sys != null) { //грузим полученный sys в формочку if (SI == null && sys != null)//проверка на открытие файла снова { SI = new SysInfo(sys); } else { SI.UpdateInfo(sys); } //разблокировка элементов this.showStateInfoToolStripMenuItem.Enabled = true; this.startEmulationToolStripMenuItem.Enabled = true; tabControl1.SelectTab(0); if (!debug) { step = 0; } else { step = 4; } tabPage2.Controls.Clear(); tabPage2.Controls.Add(button2); tabPage1.Controls.Clear(); tabPage1.Controls.Add(button1); tabPage1.Controls.Add(label1); tabPage1.Controls.Add(lAnalogEquation); lAnalogEquation.Text = "x'(t) = "; for (int i = 0; i < sys.current_state.analog_A()[0].Count; i++) { if (i != 0) { this.lAnalogEquation.Text += " + "; } this.lAnalogEquation.Text += "Ан" + i.ToString() + "x(t"; if (i == 0) { this.lAnalogEquation.Text += ")"; } else { this.lAnalogEquation.Text += " - " + sys.current_state.tau[i] + ")"; } } for (int i = 0; i < sys.current_state.analog_B()[0].Count; i++) { this.lAnalogEquation.Text += " + Bн" + i.ToString() + "u(t"; if (i == 0) { this.lAnalogEquation.Text += ")"; } else { this.lAnalogEquation.Text += " - " + sys.current_state.teta[i] + ")"; } } UniversalMatrixBox = new List <MatrixDrawer>(); LabelList = new List <System.Windows.Forms.Label>(); int loctemp = 20; int j = 0; for (int i = 0; i < sys.current_state.analog_B()[0].Count + sys.current_state.analog_A()[0].Count; i++) { MatrixDrawer tmp = new MatrixDrawer(new MatrixLibrary.Matrix(10, 10)); this.UniversalMatrixBox.Add(new MatrixDrawer(new MatrixLibrary.Matrix(10, 10))); this.LabelList.Add(new System.Windows.Forms.Label()); UniversalMatrixBox[i].Visible = false; UniversalMatrixBox[i].Location = new Point(loctemp, 130); this.LabelList[i].Location = new Point(loctemp, 115); this.LabelList[i].Font = new Font(this.Font, FontStyle.Bold); this.tabPage1.Controls.Add(UniversalMatrixBox[i]); this.tabPage1.Controls.Add(LabelList[i]); if (i < sys.current_state.analog_A()[0].Count) { this.UniversalMatrixBox[i].ReloadMatrix(sys.current_state.analog_A()[0][i]); this.LabelList[i].Text = "Ан" + i.ToString() + ": "; } else { this.UniversalMatrixBox[i].ReloadMatrix(sys.current_state.analog_B()[0][j]); this.LabelList[i].Text = "Bн" + j.ToString() + ": "; j++; } UniversalMatrixBox[i].Visible = true; loctemp += UniversalMatrixBox[i].Size.Width + 20; } button1.Location = new Point(20, UniversalMatrixBox[0].Location.Y + 20 + UniversalMatrixBox[0].Size.Height); button1.Visible = true; } }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { //отлавливаем исключения инициализации try { //загрузка sys из файла sys = GUI.OpenJsonFile(isSpline, isNoiseEnabled); } catch (Exception excption) //если при определении следующего шага чтото пошло нетак { MessageBox.Show(excption.Message + "\n" + excption.StackTrace.ToString(), "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); //вываливаем сообщение } //если файл был успешно загружен if (sys != null) { //грузим полученный sys в формочку if (SI == null && sys != null)//проверка на открытие файла снова { SI = new SysInfo(sys); } else { SI.UpdateInfo(sys); } //разблокировка элементов this.showStateInfoToolStripMenuItem.Enabled = true; this.startEmulationToolStripMenuItem.Enabled = true; tabControl1.SelectTab(0); if (!debug) { step = 0; } else { step = 4; } tabPage2.Controls.Clear(); tabPage2.Controls.Add(button2); tabPage1.Controls.Clear(); tabPage1.Controls.Add(button1); tabPage1.Controls.Add(label1); tabPage1.Controls.Add(lAnalogEquation); lAnalogEquation.Text = "x'(t) = "; for (int i = 0; i < sys.current_state.analog_A()[0].Count; i++) { if (i != 0) { this.lAnalogEquation.Text += " + "; } this.lAnalogEquation.Text += "Ан" + i.ToString() + "x(t"; if (i == 0) { this.lAnalogEquation.Text += ")"; } else { this.lAnalogEquation.Text += " - " + sys.current_state.tau[i] + ")"; } } for (int i = 0; i < sys.current_state.analog_B()[0].Count; i++) { this.lAnalogEquation.Text += " + Bн" + i.ToString() + "u(t"; if (i == 0) { this.lAnalogEquation.Text += ")"; } else { this.lAnalogEquation.Text += " - " + sys.current_state.teta[i] + ")"; } } UniversalMatrixBox = new List <MatrixDrawer>(); LabelList = new List <System.Windows.Forms.Label>(); int loctemp = 20; int j = 0; for (int i = 0; i < sys.current_state.analog_B()[0].Count + sys.current_state.analog_A()[0].Count; i++) { MatrixDrawer tmp = new MatrixDrawer(new MatrixLibrary.Matrix(10, 10)); this.UniversalMatrixBox.Add(new MatrixDrawer(new MatrixLibrary.Matrix(10, 10))); this.LabelList.Add(new System.Windows.Forms.Label()); UniversalMatrixBox[i].Visible = false; UniversalMatrixBox[i].Location = new Point(loctemp, 130); this.LabelList[i].Location = new Point(loctemp, 115); this.LabelList[i].Font = new Font(this.Font, FontStyle.Bold); this.tabPage1.Controls.Add(UniversalMatrixBox[i]); this.tabPage1.Controls.Add(LabelList[i]); if (i < sys.current_state.analog_A()[0].Count) { this.UniversalMatrixBox[i].ReloadMatrix(sys.current_state.analog_A()[0][i]); this.LabelList[i].Text = "Ан" + i.ToString() + ": "; } else { this.UniversalMatrixBox[i].ReloadMatrix(sys.current_state.analog_B()[0][j]); this.LabelList[i].Text = "Bн" + j.ToString() + ": "; j++; } UniversalMatrixBox[i].Visible = true; loctemp += UniversalMatrixBox[i].Size.Width + 20; } button1.Location = new Point(20, UniversalMatrixBox[0].Location.Y + 20 + UniversalMatrixBox[0].Size.Height); button1.Visible = true; } }
/// <summary> /// Следующий шаг и по кнопке и по таймеру /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainCalcTimer_Tick(object sender, EventArgs e) { //моргалка подписью таймера if (this.TimerIntervalValue.Enabled) { this.TimerIntervalValue.Enabled = false; } else { this.TimerIntervalValue.Enabled = true; } try//отлов событий из системы { //следующий шаг системы к светлому будующему. данные пока неоткуда. sys.next_stage(DataGetter.GetData(sys.current_state)); } catch (Exception excption) //если при определении следующего шага чтото пошло нетак { IsTimerEnabled.Checked = false; //останавливаем время MessageBox.Show(excption.Message + "\n" + excption.StackTrace.ToString(), "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); //вываливаем сообщение } if (SI == null) { SI = new SysInfo(sys); } else { SI.UpdateInfo(sys); } //грузим новые графики //GUI.LoadPanes(sys); //обновляем графики //GUI.redraw(); List <List <PointF> > pointList0 = new List <List <PointF> >(); for (int i = 0; i < sys.current_state.n; i++) { pointList0.Add(Graph.LoadPointsFromSys(sys.current_state.x, i)); } Graph.CreateGraph(zedGraphControl1, "X", pointList0, sys.current_state.n); List <List <PointF> > pointList1 = new List <List <PointF> >(); for (int i = 0; i < sys.current_state.m; i++) { pointList1.Add(Graph.LoadPointsFromSys(sys.current_state.u, i)); } Graph.CreateGraph(zedGraphControl2, "U", pointList1, sys.current_state.m); List <List <PointF> > pointList2 = new List <List <PointF> >(); for (int i = 0; i < sys.current_state.y[0].NoRows; i++) { pointList2.Add(Graph.LoadPointsFromSys(sys.current_state.y, i)); } Graph.CreateGraph(zedGraphControl3, "Y", pointList2, sys.current_state.y[0].NoRows); //var pointList2 = Graph.LoadPointsFromSys(sys.current_state.y, 0); //Graph.CreateGraph(zedGraphControl3, "Y", pointList2); var pointList3 = Graph.LoadPointsFromDouble(sys.current_state.quality_f); Graph.CreateGraph(zedGraphControl4, "F (Quality)", pointList3); view_matrixG.Enabled = true; }