first commit
This commit is contained in:
6
Graph/WindowsFormsApp2/App.config
Normal file
6
Graph/WindowsFormsApp2/App.config
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
</configuration>
|
599
Graph/WindowsFormsApp2/MainForm.Designer.cs
generated
Normal file
599
Graph/WindowsFormsApp2/MainForm.Designer.cs
generated
Normal file
@ -0,0 +1,599 @@
|
||||
namespace WindowsFormsApp1
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
|
||||
System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
this.chart_Graph = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||
this.serialPort_COM = new System.IO.Ports.SerialPort(this.components);
|
||||
this.timer_Tick = new System.Windows.Forms.Timer(this.components);
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.checkBox_AutoY = new System.Windows.Forms.CheckBox();
|
||||
this.numericUpDown_Min = new System.Windows.Forms.NumericUpDown();
|
||||
this.numericUpDown_Graph_MinY = new System.Windows.Forms.NumericUpDown();
|
||||
this.label24 = new System.Windows.Forms.Label();
|
||||
this.checkBox_Track = new System.Windows.Forms.CheckBox();
|
||||
this.label23 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown_Graph_MaxY = new System.Windows.Forms.NumericUpDown();
|
||||
this.colorDialog_Color = new System.Windows.Forms.ColorDialog();
|
||||
this.panel_GraphX = new System.Windows.Forms.Panel();
|
||||
this.trackBar_GraphX_Down = new System.Windows.Forms.TrackBar();
|
||||
this.panel_GraphY = new System.Windows.Forms.Panel();
|
||||
this.trackBar_GraphY_Right = new System.Windows.Forms.TrackBar();
|
||||
this.trackBar_GraphY_Left = new System.Windows.Forms.TrackBar();
|
||||
this.groupBox_Connect = new System.Windows.Forms.GroupBox();
|
||||
this.comboBox_Port = new System.Windows.Forms.ComboBox();
|
||||
this.button_Connect = new System.Windows.Forms.Button();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.button_Update = new System.Windows.Forms.Button();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown3 = new System.Windows.Forms.NumericUpDown();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown4 = new System.Windows.Forms.NumericUpDown();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chart_Graph)).BeginInit();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Min)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Graph_MinY)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Graph_MaxY)).BeginInit();
|
||||
this.panel_GraphX.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphX_Down)).BeginInit();
|
||||
this.panel_GraphY.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Right)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Left)).BeginInit();
|
||||
this.groupBox_Connect.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||
this.panel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// chart_Graph
|
||||
//
|
||||
chartArea4.AxisX.Maximum = 100D;
|
||||
chartArea4.AxisX.Minimum = 0D;
|
||||
chartArea4.Name = "ChartArea1";
|
||||
this.chart_Graph.ChartAreas.Add(chartArea4);
|
||||
this.chart_Graph.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
legend4.Name = "Legend1";
|
||||
this.chart_Graph.Legends.Add(legend4);
|
||||
this.chart_Graph.Location = new System.Drawing.Point(216, 0);
|
||||
this.chart_Graph.Name = "chart_Graph";
|
||||
series7.ChartArea = "ChartArea1";
|
||||
series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
|
||||
series7.Color = System.Drawing.Color.Red;
|
||||
series7.Legend = "Legend1";
|
||||
series7.Name = "Series1";
|
||||
series8.ChartArea = "ChartArea1";
|
||||
series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
|
||||
series8.Color = System.Drawing.Color.Blue;
|
||||
series8.Legend = "Legend1";
|
||||
series8.Name = "Series2";
|
||||
this.chart_Graph.Series.Add(series7);
|
||||
this.chart_Graph.Series.Add(series8);
|
||||
this.chart_Graph.Size = new System.Drawing.Size(553, 531);
|
||||
this.chart_Graph.TabIndex = 1;
|
||||
this.chart_Graph.Text = "chart1";
|
||||
//
|
||||
// serialPort_COM
|
||||
//
|
||||
this.serialPort_COM.BaudRate = 460800;
|
||||
this.serialPort_COM.PortName = "COM4";
|
||||
this.serialPort_COM.ReadBufferSize = 128;
|
||||
this.serialPort_COM.ReadTimeout = 1;
|
||||
this.serialPort_COM.WriteTimeout = 1;
|
||||
//
|
||||
// timer_Tick
|
||||
//
|
||||
this.timer_Tick.Interval = 1;
|
||||
this.timer_Tick.Tick += new System.EventHandler(this.timer_Tick_Tick);
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.panel2);
|
||||
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.groupBox2.Location = new System.Drawing.Point(769, 0);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(132, 571);
|
||||
this.groupBox2.TabIndex = 2;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = " Graph ";
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.Controls.Add(this.label4);
|
||||
this.panel2.Controls.Add(this.checkBox_AutoY);
|
||||
this.panel2.Controls.Add(this.numericUpDown_Min);
|
||||
this.panel2.Controls.Add(this.numericUpDown_Graph_MinY);
|
||||
this.panel2.Controls.Add(this.label24);
|
||||
this.panel2.Controls.Add(this.checkBox_Track);
|
||||
this.panel2.Controls.Add(this.label23);
|
||||
this.panel2.Controls.Add(this.numericUpDown_Graph_MaxY);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panel2.Location = new System.Drawing.Point(3, 16);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(126, 188);
|
||||
this.panel2.TabIndex = 14;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(3, 12);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(38, 13);
|
||||
this.label4.TabIndex = 4;
|
||||
this.label4.Text = "Len X:";
|
||||
//
|
||||
// checkBox_AutoY
|
||||
//
|
||||
this.checkBox_AutoY.AutoSize = true;
|
||||
this.checkBox_AutoY.Checked = true;
|
||||
this.checkBox_AutoY.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.checkBox_AutoY.Location = new System.Drawing.Point(6, 148);
|
||||
this.checkBox_AutoY.Name = "checkBox_AutoY";
|
||||
this.checkBox_AutoY.Size = new System.Drawing.Size(58, 17);
|
||||
this.checkBox_AutoY.TabIndex = 13;
|
||||
this.checkBox_AutoY.Text = "Auto Y";
|
||||
this.checkBox_AutoY.UseVisualStyleBackColor = true;
|
||||
this.checkBox_AutoY.CheckedChanged += new System.EventHandler(this.checkBox_AutoY_CheckedChanged);
|
||||
//
|
||||
// numericUpDown_Min
|
||||
//
|
||||
this.numericUpDown_Min.Location = new System.Drawing.Point(46, 10);
|
||||
this.numericUpDown_Min.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown_Min.Minimum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown_Min.Name = "numericUpDown_Min";
|
||||
this.numericUpDown_Min.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown_Min.TabIndex = 5;
|
||||
this.numericUpDown_Min.Value = new decimal(new int[] {
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown_Min.ValueChanged += new System.EventHandler(this.numericUpDown_Min_ValueChanged);
|
||||
//
|
||||
// numericUpDown_Graph_MinY
|
||||
//
|
||||
this.numericUpDown_Graph_MinY.Enabled = false;
|
||||
this.numericUpDown_Graph_MinY.Location = new System.Drawing.Point(46, 122);
|
||||
this.numericUpDown_Graph_MinY.Maximum = new decimal(new int[] {
|
||||
32000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown_Graph_MinY.Minimum = new decimal(new int[] {
|
||||
32000,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.numericUpDown_Graph_MinY.Name = "numericUpDown_Graph_MinY";
|
||||
this.numericUpDown_Graph_MinY.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown_Graph_MinY.TabIndex = 12;
|
||||
this.numericUpDown_Graph_MinY.Value = new decimal(new int[] {
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.numericUpDown_Graph_MinY.ValueChanged += new System.EventHandler(this.numericUpDown_Graph_MaxY_ValueChanged);
|
||||
//
|
||||
// label24
|
||||
//
|
||||
this.label24.AutoSize = true;
|
||||
this.label24.Location = new System.Drawing.Point(6, 124);
|
||||
this.label24.Name = "label24";
|
||||
this.label24.Size = new System.Drawing.Size(37, 13);
|
||||
this.label24.TabIndex = 11;
|
||||
this.label24.Text = "Min Y:";
|
||||
//
|
||||
// checkBox_Track
|
||||
//
|
||||
this.checkBox_Track.AutoSize = true;
|
||||
this.checkBox_Track.Location = new System.Drawing.Point(6, 69);
|
||||
this.checkBox_Track.Name = "checkBox_Track";
|
||||
this.checkBox_Track.Size = new System.Drawing.Size(54, 17);
|
||||
this.checkBox_Track.TabIndex = 7;
|
||||
this.checkBox_Track.Text = "Track";
|
||||
this.checkBox_Track.UseVisualStyleBackColor = true;
|
||||
this.checkBox_Track.CheckedChanged += new System.EventHandler(this.numericUpDown_Min_ValueChanged);
|
||||
//
|
||||
// label23
|
||||
//
|
||||
this.label23.AutoSize = true;
|
||||
this.label23.Location = new System.Drawing.Point(3, 98);
|
||||
this.label23.Name = "label23";
|
||||
this.label23.Size = new System.Drawing.Size(40, 13);
|
||||
this.label23.TabIndex = 9;
|
||||
this.label23.Text = "Max Y:";
|
||||
//
|
||||
// numericUpDown_Graph_MaxY
|
||||
//
|
||||
this.numericUpDown_Graph_MaxY.Enabled = false;
|
||||
this.numericUpDown_Graph_MaxY.Location = new System.Drawing.Point(46, 96);
|
||||
this.numericUpDown_Graph_MaxY.Maximum = new decimal(new int[] {
|
||||
32000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown_Graph_MaxY.Minimum = new decimal(new int[] {
|
||||
32000,
|
||||
0,
|
||||
0,
|
||||
-2147483648});
|
||||
this.numericUpDown_Graph_MaxY.Name = "numericUpDown_Graph_MaxY";
|
||||
this.numericUpDown_Graph_MaxY.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown_Graph_MaxY.TabIndex = 8;
|
||||
this.numericUpDown_Graph_MaxY.Value = new decimal(new int[] {
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown_Graph_MaxY.ValueChanged += new System.EventHandler(this.numericUpDown_Graph_MaxY_ValueChanged);
|
||||
//
|
||||
// panel_GraphX
|
||||
//
|
||||
this.panel_GraphX.Controls.Add(this.trackBar_GraphX_Down);
|
||||
this.panel_GraphX.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panel_GraphX.Location = new System.Drawing.Point(175, 531);
|
||||
this.panel_GraphX.Name = "panel_GraphX";
|
||||
this.panel_GraphX.Size = new System.Drawing.Size(594, 40);
|
||||
this.panel_GraphX.TabIndex = 6;
|
||||
//
|
||||
// trackBar_GraphX_Down
|
||||
//
|
||||
this.trackBar_GraphX_Down.AutoSize = false;
|
||||
this.trackBar_GraphX_Down.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.trackBar_GraphX_Down.Location = new System.Drawing.Point(0, 0);
|
||||
this.trackBar_GraphX_Down.Minimum = 1;
|
||||
this.trackBar_GraphX_Down.Name = "trackBar_GraphX_Down";
|
||||
this.trackBar_GraphX_Down.Size = new System.Drawing.Size(594, 40);
|
||||
this.trackBar_GraphX_Down.TabIndex = 1;
|
||||
this.trackBar_GraphX_Down.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
|
||||
this.trackBar_GraphX_Down.Value = 10;
|
||||
this.trackBar_GraphX_Down.Scroll += new System.EventHandler(this.numericUpDown_Min_ValueChanged);
|
||||
//
|
||||
// panel_GraphY
|
||||
//
|
||||
this.panel_GraphY.Controls.Add(this.trackBar_GraphY_Right);
|
||||
this.panel_GraphY.Controls.Add(this.trackBar_GraphY_Left);
|
||||
this.panel_GraphY.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel_GraphY.Enabled = false;
|
||||
this.panel_GraphY.Location = new System.Drawing.Point(175, 0);
|
||||
this.panel_GraphY.Name = "panel_GraphY";
|
||||
this.panel_GraphY.Size = new System.Drawing.Size(41, 531);
|
||||
this.panel_GraphY.TabIndex = 7;
|
||||
//
|
||||
// trackBar_GraphY_Right
|
||||
//
|
||||
this.trackBar_GraphY_Right.AutoSize = false;
|
||||
this.trackBar_GraphY_Right.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.trackBar_GraphY_Right.Location = new System.Drawing.Point(19, 0);
|
||||
this.trackBar_GraphY_Right.Name = "trackBar_GraphY_Right";
|
||||
this.trackBar_GraphY_Right.Orientation = System.Windows.Forms.Orientation.Vertical;
|
||||
this.trackBar_GraphY_Right.Size = new System.Drawing.Size(22, 531);
|
||||
this.trackBar_GraphY_Right.TabIndex = 1;
|
||||
this.trackBar_GraphY_Right.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
|
||||
this.trackBar_GraphY_Right.Value = 10;
|
||||
this.trackBar_GraphY_Right.Scroll += new System.EventHandler(this.trackBar_GraphY_Left_Scroll);
|
||||
//
|
||||
// trackBar_GraphY_Left
|
||||
//
|
||||
this.trackBar_GraphY_Left.AutoSize = false;
|
||||
this.trackBar_GraphY_Left.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.trackBar_GraphY_Left.Location = new System.Drawing.Point(0, 0);
|
||||
this.trackBar_GraphY_Left.Name = "trackBar_GraphY_Left";
|
||||
this.trackBar_GraphY_Left.Orientation = System.Windows.Forms.Orientation.Vertical;
|
||||
this.trackBar_GraphY_Left.Size = new System.Drawing.Size(21, 531);
|
||||
this.trackBar_GraphY_Left.TabIndex = 0;
|
||||
this.trackBar_GraphY_Left.Scroll += new System.EventHandler(this.trackBar_GraphY_Left_Scroll);
|
||||
//
|
||||
// groupBox_Connect
|
||||
//
|
||||
this.groupBox_Connect.Controls.Add(this.comboBox_Port);
|
||||
this.groupBox_Connect.Controls.Add(this.button_Connect);
|
||||
this.groupBox_Connect.Controls.Add(this.label1);
|
||||
this.groupBox_Connect.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.groupBox_Connect.Location = new System.Drawing.Point(0, 0);
|
||||
this.groupBox_Connect.Name = "groupBox_Connect";
|
||||
this.groupBox_Connect.Size = new System.Drawing.Size(175, 40);
|
||||
this.groupBox_Connect.TabIndex = 0;
|
||||
this.groupBox_Connect.TabStop = false;
|
||||
this.groupBox_Connect.Text = " Link ";
|
||||
//
|
||||
// comboBox_Port
|
||||
//
|
||||
this.comboBox_Port.FormattingEnabled = true;
|
||||
this.comboBox_Port.Location = new System.Drawing.Point(32, 13);
|
||||
this.comboBox_Port.Name = "comboBox_Port";
|
||||
this.comboBox_Port.Size = new System.Drawing.Size(59, 21);
|
||||
this.comboBox_Port.TabIndex = 7;
|
||||
this.comboBox_Port.DropDown += new System.EventHandler(this.comboBox_Port_DropDown);
|
||||
//
|
||||
// button_Connect
|
||||
//
|
||||
this.button_Connect.Location = new System.Drawing.Point(97, 11);
|
||||
this.button_Connect.Name = "button_Connect";
|
||||
this.button_Connect.Size = new System.Drawing.Size(70, 23);
|
||||
this.button_Connect.TabIndex = 2;
|
||||
this.button_Connect.Text = "Connect";
|
||||
this.button_Connect.UseVisualStyleBackColor = true;
|
||||
this.button_Connect.Click += new System.EventHandler(this.button_Connect_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(6, 16);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(29, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Port:";
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.button_Update);
|
||||
this.groupBox3.Controls.Add(this.label5);
|
||||
this.groupBox3.Controls.Add(this.numericUpDown3);
|
||||
this.groupBox3.Controls.Add(this.label6);
|
||||
this.groupBox3.Controls.Add(this.numericUpDown4);
|
||||
this.groupBox3.Controls.Add(this.label3);
|
||||
this.groupBox3.Controls.Add(this.numericUpDown2);
|
||||
this.groupBox3.Controls.Add(this.label2);
|
||||
this.groupBox3.Controls.Add(this.numericUpDown1);
|
||||
this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.groupBox3.Location = new System.Drawing.Point(0, 40);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(175, 167);
|
||||
this.groupBox3.TabIndex = 3;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = " Filter ";
|
||||
//
|
||||
// button_Update
|
||||
//
|
||||
this.button_Update.Location = new System.Drawing.Point(32, 127);
|
||||
this.button_Update.Name = "button_Update";
|
||||
this.button_Update.Size = new System.Drawing.Size(70, 23);
|
||||
this.button_Update.TabIndex = 14;
|
||||
this.button_Update.Text = "Update";
|
||||
this.button_Update.UseVisualStyleBackColor = true;
|
||||
this.button_Update.Click += new System.EventHandler(this.button_Update_Click);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(14, 103);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(31, 13);
|
||||
this.label5.TabIndex = 13;
|
||||
this.label5.Text = "Pow:";
|
||||
//
|
||||
// numericUpDown3
|
||||
//
|
||||
this.numericUpDown3.DecimalPlaces = 5;
|
||||
this.numericUpDown3.Location = new System.Drawing.Point(47, 101);
|
||||
this.numericUpDown3.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown3.Name = "numericUpDown3";
|
||||
this.numericUpDown3.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown3.TabIndex = 12;
|
||||
this.numericUpDown3.Value = new decimal(new int[] {
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(14, 77);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(27, 13);
|
||||
this.label6.TabIndex = 11;
|
||||
this.label6.Text = "Mul:";
|
||||
//
|
||||
// numericUpDown4
|
||||
//
|
||||
this.numericUpDown4.DecimalPlaces = 5;
|
||||
this.numericUpDown4.Location = new System.Drawing.Point(47, 75);
|
||||
this.numericUpDown4.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown4.Name = "numericUpDown4";
|
||||
this.numericUpDown4.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown4.TabIndex = 10;
|
||||
this.numericUpDown4.Value = new decimal(new int[] {
|
||||
20,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(14, 51);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(30, 13);
|
||||
this.label3.TabIndex = 9;
|
||||
this.label3.Text = "Max:";
|
||||
//
|
||||
// numericUpDown2
|
||||
//
|
||||
this.numericUpDown2.DecimalPlaces = 5;
|
||||
this.numericUpDown2.Location = new System.Drawing.Point(47, 49);
|
||||
this.numericUpDown2.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown2.Name = "numericUpDown2";
|
||||
this.numericUpDown2.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown2.TabIndex = 8;
|
||||
this.numericUpDown2.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(14, 25);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(27, 13);
|
||||
this.label2.TabIndex = 7;
|
||||
this.label2.Text = "Min:";
|
||||
//
|
||||
// numericUpDown1
|
||||
//
|
||||
this.numericUpDown1.DecimalPlaces = 5;
|
||||
this.numericUpDown1.Location = new System.Drawing.Point(47, 23);
|
||||
this.numericUpDown1.Maximum = new decimal(new int[] {
|
||||
1000,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Name = "numericUpDown1";
|
||||
this.numericUpDown1.Size = new System.Drawing.Size(75, 20);
|
||||
this.numericUpDown1.TabIndex = 6;
|
||||
this.numericUpDown1.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
196608});
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.groupBox3);
|
||||
this.panel1.Controls.Add(this.groupBox_Connect);
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(175, 571);
|
||||
this.panel1.TabIndex = 4;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(901, 571);
|
||||
this.Controls.Add(this.chart_Graph);
|
||||
this.Controls.Add(this.panel_GraphY);
|
||||
this.Controls.Add(this.panel_GraphX);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.MinimumSize = new System.Drawing.Size(914, 515);
|
||||
this.Name = "MainForm";
|
||||
this.Text = "Telemetry";
|
||||
((System.ComponentModel.ISupportInitialize)(this.chart_Graph)).EndInit();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Min)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Graph_MinY)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown_Graph_MaxY)).EndInit();
|
||||
this.panel_GraphX.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphX_Down)).EndInit();
|
||||
this.panel_GraphY.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Right)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Left)).EndInit();
|
||||
this.groupBox_Connect.ResumeLayout(false);
|
||||
this.groupBox_Connect.PerformLayout();
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.groupBox3.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.DataVisualization.Charting.Chart chart_Graph;
|
||||
private System.IO.Ports.SerialPort serialPort_COM;
|
||||
private System.Windows.Forms.Timer timer_Tick;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown_Min;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.ColorDialog colorDialog_Color;
|
||||
private System.Windows.Forms.CheckBox checkBox_Track;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown_Graph_MinY;
|
||||
private System.Windows.Forms.Label label24;
|
||||
private System.Windows.Forms.Label label23;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown_Graph_MaxY;
|
||||
private System.Windows.Forms.CheckBox checkBox_AutoY;
|
||||
private System.Windows.Forms.Panel panel_GraphX;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphX_Down;
|
||||
private System.Windows.Forms.Panel panel_GraphY;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphY_Right;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphY_Left;
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.GroupBox groupBox_Connect;
|
||||
private System.Windows.Forms.ComboBox comboBox_Port;
|
||||
private System.Windows.Forms.Button button_Connect;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown3;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown4;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown2;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
||||
private System.Windows.Forms.Button button_Update;
|
||||
}
|
||||
}
|
||||
|
216
Graph/WindowsFormsApp2/MainForm.cs
Normal file
216
Graph/WindowsFormsApp2/MainForm.cs
Normal file
@ -0,0 +1,216 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO.Ports;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms.DataVisualization.Charting;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Net;
|
||||
|
||||
namespace WindowsFormsApp1
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
foreach (var s in chart_Graph.Series) s.XValueType = ChartValueType.DateTime;
|
||||
chart_Graph.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss";
|
||||
|
||||
chart_Graph.ChartAreas[0].AxisX.Minimum = DateTime.Now.ToOADate();
|
||||
chart_Graph.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddSeconds(trackBar_GraphX_Down.Value).ToOADate();
|
||||
chart_Graph.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.FixedCount;
|
||||
chart_Graph.ChartAreas[0].AxisX.Interval = (new DateTime(1, 1, 1, 0, 0, 1)).ToOADate();
|
||||
|
||||
}
|
||||
|
||||
private const int RecvCount = 4;
|
||||
private byte[] RecvData = new byte[RecvCount];
|
||||
private int RecvSize = 0;
|
||||
|
||||
private enum RecvModeEnum : byte { Begin, Data, Done };
|
||||
|
||||
private int TimerStop = 0;
|
||||
|
||||
private DateTime GraphLast = DateTime.Now;
|
||||
|
||||
private RecvModeEnum RecvMode;
|
||||
|
||||
private void DrawGraph(byte[] data, int from, int size)
|
||||
{
|
||||
if (checkBox_Track.Checked)
|
||||
{
|
||||
chart_Graph.ChartAreas[0].AxisX.Minimum = DateTime.Now.AddSeconds(-trackBar_GraphX_Down.Value).ToOADate();
|
||||
chart_Graph.ChartAreas[0].AxisX.Maximum = DateTime.Now.ToOADate();
|
||||
}
|
||||
else
|
||||
{
|
||||
TimeSpan shift = DateTime.Now.Subtract(GraphLast);
|
||||
if (shift.TotalSeconds > trackBar_GraphX_Down.Value)
|
||||
{
|
||||
GraphLast = DateTime.Now;
|
||||
for (int a = 0; a < chart_Graph.Series.Count; a++) chart_Graph.Series[a].Points.Clear();
|
||||
chart_Graph.ChartAreas[0].AxisX.Minimum = DateTime.Now.ToOADate();
|
||||
chart_Graph.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddSeconds(trackBar_GraphX_Down.Value).ToOADate();
|
||||
}
|
||||
}
|
||||
|
||||
float[] lines = new float[1];
|
||||
Buffer.BlockCopy(data, from, lines, 0, size);
|
||||
|
||||
chart_Graph.Series[0].Points.AddXY(DateTime.Now, lines[0]);
|
||||
|
||||
if (checkBox_Track.Checked)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if ((DateTime.Now - DateTime.FromOADate(chart_Graph.Series[0].Points[0].XValue)).TotalSeconds > trackBar_GraphX_Down.Value + 1)
|
||||
chart_Graph.Series[0].Points.RemoveAt(0);
|
||||
else break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Connect_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (button_Connect.Text == "Connect")
|
||||
{
|
||||
try { serialPort_COM.PortName = comboBox_Port.Text; } catch { MessageBox.Show("Error to set port", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
|
||||
try
|
||||
{
|
||||
serialPort_COM.Open();
|
||||
serialPort_COM.DiscardInBuffer();
|
||||
}
|
||||
catch { MessageBox.Show("Error to connect", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
|
||||
|
||||
timer_Tick.Enabled = true;
|
||||
button_Connect.Text = "Disonnect";
|
||||
}
|
||||
else
|
||||
{
|
||||
serialPort_COM.Close();
|
||||
timer_Tick.Enabled = false;
|
||||
button_Connect.Text = "Connect";
|
||||
}
|
||||
}
|
||||
|
||||
private void timer_Tick_Tick(object sender, EventArgs e)
|
||||
{
|
||||
switch (RecvMode)
|
||||
{
|
||||
case RecvModeEnum.Begin:
|
||||
{
|
||||
TimerStop = 20;
|
||||
|
||||
byte[] recv = new byte[1];
|
||||
int len;
|
||||
try { len = serialPort_COM.Read(recv, 0, 1); } catch { break; }
|
||||
if (recv[0] == 'Z')
|
||||
{
|
||||
RecvMode = RecvModeEnum.Data;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case RecvModeEnum.Data:
|
||||
{
|
||||
int len;
|
||||
try { len = serialPort_COM.Read(RecvData, RecvSize, RecvData.Length - RecvSize); } catch { break; }
|
||||
RecvSize += len;
|
||||
if (RecvSize < RecvData.Length) break;
|
||||
RecvSize = 0;
|
||||
|
||||
DrawGraph(RecvData, 0, RecvData.Length);
|
||||
RecvMode = RecvModeEnum.Begin;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
RecvMode = RecvModeEnum.Begin;
|
||||
break;
|
||||
}
|
||||
}
|
||||
TimerStop--;
|
||||
if (TimerStop <= 0)
|
||||
{
|
||||
RecvMode = RecvModeEnum.Begin;
|
||||
}
|
||||
}
|
||||
|
||||
private void comboBox_Port_DropDown(object sender, EventArgs e)
|
||||
{
|
||||
comboBox_Port.Items.Clear();
|
||||
foreach (string p in SerialPort.GetPortNames()) comboBox_Port.Items.Add(p);
|
||||
}
|
||||
|
||||
private void numericUpDown_Min_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
trackBar_GraphX_Down.Maximum = (int)numericUpDown_Min.Value;
|
||||
if (sender == numericUpDown_Min) trackBar_GraphX_Down.Value = trackBar_GraphX_Down.Maximum;
|
||||
else foreach (var s in chart_Graph.Series) s.Points.Clear();
|
||||
GraphLast = DateTime.Now;
|
||||
chart_Graph.ChartAreas[0].AxisX.Minimum = DateTime.Now.ToOADate();
|
||||
chart_Graph.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddSeconds(trackBar_GraphX_Down.Value).ToOADate();
|
||||
chart_Graph.ChartAreas[0].AxisX.Interval = (new DateTime(1, 1, 1, 0, 0, 0).AddSeconds(((double)trackBar_GraphX_Down.Value) / 10)).ToOADate();
|
||||
if (trackBar_GraphX_Down.Value < 10) chart_Graph.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss.f";
|
||||
else chart_Graph.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss";
|
||||
}
|
||||
|
||||
private void numericUpDown_Graph_MaxY_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
chart_Graph.ChartAreas[0].AxisY.Minimum = (double)numericUpDown_Graph_MinY.Value;
|
||||
chart_Graph.ChartAreas[0].AxisY.Maximum = (double)numericUpDown_Graph_MaxY.Value;
|
||||
trackBar_GraphY_Left.Maximum = (int)numericUpDown_Graph_MaxY.Value;
|
||||
trackBar_GraphY_Left.Minimum = (int)numericUpDown_Graph_MinY.Value;
|
||||
trackBar_GraphY_Right.Maximum = (int)numericUpDown_Graph_MaxY.Value;
|
||||
trackBar_GraphY_Right.Minimum = (int)numericUpDown_Graph_MinY.Value;
|
||||
}
|
||||
|
||||
private void checkBox_AutoY_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkBox_AutoY.Checked)
|
||||
{
|
||||
chart_Graph.ChartAreas[0].AxisY.Minimum = double.NaN;
|
||||
chart_Graph.ChartAreas[0].AxisY.Maximum = double.NaN;
|
||||
numericUpDown_Graph_MinY.Enabled = false;
|
||||
numericUpDown_Graph_MaxY.Enabled = false;
|
||||
panel_GraphY.Enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
numericUpDown_Graph_MaxY_ValueChanged(null, null);
|
||||
numericUpDown_Graph_MinY.Enabled = true;
|
||||
numericUpDown_Graph_MaxY.Enabled = true;
|
||||
panel_GraphY.Enabled = true;
|
||||
trackBar_GraphY_Left.Value = trackBar_GraphY_Left.Minimum;
|
||||
trackBar_GraphY_Right.Value = trackBar_GraphY_Right.Maximum;
|
||||
}
|
||||
}
|
||||
|
||||
private void trackBar_GraphY_Left_Scroll(object sender, EventArgs e)
|
||||
{
|
||||
int min = trackBar_GraphY_Left.Value;
|
||||
int max = trackBar_GraphY_Right.Value;
|
||||
if (min > max)
|
||||
{
|
||||
int sub = min;
|
||||
min = max;
|
||||
max = sub;
|
||||
}
|
||||
|
||||
if (max == min) max += 1;
|
||||
|
||||
chart_Graph.ChartAreas[0].AxisY.Minimum = min;
|
||||
chart_Graph.ChartAreas[0].AxisY.Maximum = max;
|
||||
}
|
||||
|
||||
private void button_Update_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
129
Graph/WindowsFormsApp2/MainForm.resx
Normal file
129
Graph/WindowsFormsApp2/MainForm.resx
Normal file
@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="serialPort_COM.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="timer_Tick.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>153, 17</value>
|
||||
</metadata>
|
||||
<metadata name="colorDialog_Color.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>261, 17</value>
|
||||
</metadata>
|
||||
</root>
|
22
Graph/WindowsFormsApp2/Program.cs
Normal file
22
Graph/WindowsFormsApp2/Program.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace WindowsFormsApp1
|
||||
{
|
||||
internal static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
}
|
||||
}
|
36
Graph/WindowsFormsApp2/Properties/AssemblyInfo.cs
Normal file
36
Graph/WindowsFormsApp2/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("WindowsFormsApp1")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("WindowsFormsApp1")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("a4db35b3-5eff-4b9c-b34b-8271ac3768f8")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
71
Graph/WindowsFormsApp2/Properties/Resources.Designer.cs
generated
Normal file
71
Graph/WindowsFormsApp2/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,71 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WindowsFormsApp1.Properties
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsApp1.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
117
Graph/WindowsFormsApp2/Properties/Resources.resx
Normal file
117
Graph/WindowsFormsApp2/Properties/Resources.resx
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
30
Graph/WindowsFormsApp2/Properties/Settings.Designer.cs
generated
Normal file
30
Graph/WindowsFormsApp2/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,30 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WindowsFormsApp1.Properties
|
||||
{
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
Graph/WindowsFormsApp2/Properties/Settings.settings
Normal file
7
Graph/WindowsFormsApp2/Properties/Settings.settings
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
223
Graph/WindowsFormsApp2/Record.Designer.cs
generated
Normal file
223
Graph/WindowsFormsApp2/Record.Designer.cs
generated
Normal file
@ -0,0 +1,223 @@
|
||||
namespace WindowsFormsApp1
|
||||
{
|
||||
partial class Record
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
|
||||
System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
|
||||
this.chart_Graph = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||
this.panel_GraphY = new System.Windows.Forms.Panel();
|
||||
this.trackBar_GraphY_Right = new System.Windows.Forms.TrackBar();
|
||||
this.trackBar_GraphY_Left = new System.Windows.Forms.TrackBar();
|
||||
this.panel_GraphX = new System.Windows.Forms.Panel();
|
||||
this.trackBar_GraphX_Up = new System.Windows.Forms.TrackBar();
|
||||
this.trackBar_GraphX_Down = new System.Windows.Forms.TrackBar();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.button_Color = new System.Windows.Forms.Button();
|
||||
this.checkedListBox_Series = new System.Windows.Forms.CheckedListBox();
|
||||
this.colorDialog_Color = new System.Windows.Forms.ColorDialog();
|
||||
this.checkBox_AutoY = new System.Windows.Forms.CheckBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chart_Graph)).BeginInit();
|
||||
this.panel_GraphY.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Right)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Left)).BeginInit();
|
||||
this.panel_GraphX.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphX_Up)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphX_Down)).BeginInit();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// chart_Graph
|
||||
//
|
||||
chartArea2.AxisX.IntervalAutoMode = System.Windows.Forms.DataVisualization.Charting.IntervalAutoMode.VariableCount;
|
||||
chartArea2.Name = "ChartArea1";
|
||||
this.chart_Graph.ChartAreas.Add(chartArea2);
|
||||
this.chart_Graph.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
legend2.Name = "Legend1";
|
||||
this.chart_Graph.Legends.Add(legend2);
|
||||
this.chart_Graph.Location = new System.Drawing.Point(41, 0);
|
||||
this.chart_Graph.Name = "chart_Graph";
|
||||
this.chart_Graph.Size = new System.Drawing.Size(626, 413);
|
||||
this.chart_Graph.TabIndex = 2;
|
||||
this.chart_Graph.Text = "chart1";
|
||||
//
|
||||
// panel_GraphY
|
||||
//
|
||||
this.panel_GraphY.Controls.Add(this.trackBar_GraphY_Right);
|
||||
this.panel_GraphY.Controls.Add(this.trackBar_GraphY_Left);
|
||||
this.panel_GraphY.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel_GraphY.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel_GraphY.Name = "panel_GraphY";
|
||||
this.panel_GraphY.Size = new System.Drawing.Size(41, 413);
|
||||
this.panel_GraphY.TabIndex = 8;
|
||||
//
|
||||
// trackBar_GraphY_Right
|
||||
//
|
||||
this.trackBar_GraphY_Right.AutoSize = false;
|
||||
this.trackBar_GraphY_Right.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.trackBar_GraphY_Right.Location = new System.Drawing.Point(19, 0);
|
||||
this.trackBar_GraphY_Right.Name = "trackBar_GraphY_Right";
|
||||
this.trackBar_GraphY_Right.Orientation = System.Windows.Forms.Orientation.Vertical;
|
||||
this.trackBar_GraphY_Right.Size = new System.Drawing.Size(22, 413);
|
||||
this.trackBar_GraphY_Right.TabIndex = 1;
|
||||
this.trackBar_GraphY_Right.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
|
||||
this.trackBar_GraphY_Right.Value = 10;
|
||||
this.trackBar_GraphY_Right.Scroll += new System.EventHandler(this.trackBar_GraphY_Left_Scroll);
|
||||
//
|
||||
// trackBar_GraphY_Left
|
||||
//
|
||||
this.trackBar_GraphY_Left.AutoSize = false;
|
||||
this.trackBar_GraphY_Left.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.trackBar_GraphY_Left.Location = new System.Drawing.Point(0, 0);
|
||||
this.trackBar_GraphY_Left.Name = "trackBar_GraphY_Left";
|
||||
this.trackBar_GraphY_Left.Orientation = System.Windows.Forms.Orientation.Vertical;
|
||||
this.trackBar_GraphY_Left.Size = new System.Drawing.Size(21, 413);
|
||||
this.trackBar_GraphY_Left.TabIndex = 0;
|
||||
this.trackBar_GraphY_Left.Scroll += new System.EventHandler(this.trackBar_GraphY_Left_Scroll);
|
||||
//
|
||||
// panel_GraphX
|
||||
//
|
||||
this.panel_GraphX.Controls.Add(this.trackBar_GraphX_Up);
|
||||
this.panel_GraphX.Controls.Add(this.trackBar_GraphX_Down);
|
||||
this.panel_GraphX.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.panel_GraphX.Location = new System.Drawing.Point(0, 413);
|
||||
this.panel_GraphX.Name = "panel_GraphX";
|
||||
this.panel_GraphX.Size = new System.Drawing.Size(667, 37);
|
||||
this.panel_GraphX.TabIndex = 9;
|
||||
//
|
||||
// trackBar_GraphX_Up
|
||||
//
|
||||
this.trackBar_GraphX_Up.AutoSize = false;
|
||||
this.trackBar_GraphX_Up.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.trackBar_GraphX_Up.Location = new System.Drawing.Point(0, 0);
|
||||
this.trackBar_GraphX_Up.Minimum = 1;
|
||||
this.trackBar_GraphX_Up.Name = "trackBar_GraphX_Up";
|
||||
this.trackBar_GraphX_Up.Size = new System.Drawing.Size(667, 21);
|
||||
this.trackBar_GraphX_Up.TabIndex = 2;
|
||||
this.trackBar_GraphX_Up.TickStyle = System.Windows.Forms.TickStyle.None;
|
||||
this.trackBar_GraphX_Up.Value = 10;
|
||||
//
|
||||
// trackBar_GraphX_Down
|
||||
//
|
||||
this.trackBar_GraphX_Down.AutoSize = false;
|
||||
this.trackBar_GraphX_Down.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.trackBar_GraphX_Down.Location = new System.Drawing.Point(0, 16);
|
||||
this.trackBar_GraphX_Down.Minimum = 1;
|
||||
this.trackBar_GraphX_Down.Name = "trackBar_GraphX_Down";
|
||||
this.trackBar_GraphX_Down.Size = new System.Drawing.Size(667, 21);
|
||||
this.trackBar_GraphX_Down.TabIndex = 1;
|
||||
this.trackBar_GraphX_Down.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
|
||||
this.trackBar_GraphX_Down.Value = 10;
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.checkBox_AutoY);
|
||||
this.groupBox1.Controls.Add(this.button_Color);
|
||||
this.groupBox1.Controls.Add(this.checkedListBox_Series);
|
||||
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.groupBox1.Location = new System.Drawing.Point(667, 0);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(133, 450);
|
||||
this.groupBox1.TabIndex = 10;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = " Graph ";
|
||||
//
|
||||
// button_Color
|
||||
//
|
||||
this.button_Color.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.button_Color.Location = new System.Drawing.Point(3, 350);
|
||||
this.button_Color.Name = "button_Color";
|
||||
this.button_Color.Size = new System.Drawing.Size(127, 23);
|
||||
this.button_Color.TabIndex = 7;
|
||||
this.button_Color.Text = "Color";
|
||||
this.button_Color.UseVisualStyleBackColor = true;
|
||||
this.button_Color.Click += new System.EventHandler(this.button_Color_Click);
|
||||
//
|
||||
// checkedListBox_Series
|
||||
//
|
||||
this.checkedListBox_Series.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.checkedListBox_Series.FormattingEnabled = true;
|
||||
this.checkedListBox_Series.Location = new System.Drawing.Point(3, 16);
|
||||
this.checkedListBox_Series.Name = "checkedListBox_Series";
|
||||
this.checkedListBox_Series.Size = new System.Drawing.Size(127, 334);
|
||||
this.checkedListBox_Series.TabIndex = 1;
|
||||
this.checkedListBox_Series.SelectedIndexChanged += new System.EventHandler(this.checkedListBox_Series_SelectedIndexChanged);
|
||||
this.checkedListBox_Series.DoubleClick += new System.EventHandler(this.checkedListBox_Series_SelectedIndexChanged);
|
||||
//
|
||||
// checkBox_AutoY
|
||||
//
|
||||
this.checkBox_AutoY.AutoSize = true;
|
||||
this.checkBox_AutoY.Location = new System.Drawing.Point(6, 379);
|
||||
this.checkBox_AutoY.Name = "checkBox_AutoY";
|
||||
this.checkBox_AutoY.Size = new System.Drawing.Size(58, 17);
|
||||
this.checkBox_AutoY.TabIndex = 8;
|
||||
this.checkBox_AutoY.Text = "Auto Y";
|
||||
this.checkBox_AutoY.UseVisualStyleBackColor = true;
|
||||
this.checkBox_AutoY.CheckedChanged += new System.EventHandler(this.checkBox_AutoY_CheckedChanged);
|
||||
//
|
||||
// Record
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Controls.Add(this.chart_Graph);
|
||||
this.Controls.Add(this.panel_GraphY);
|
||||
this.Controls.Add(this.panel_GraphX);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Name = "Record";
|
||||
this.Text = "Record";
|
||||
this.Load += new System.EventHandler(this.Record_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.chart_Graph)).EndInit();
|
||||
this.panel_GraphY.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Right)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphY_Left)).EndInit();
|
||||
this.panel_GraphX.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphX_Up)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.trackBar_GraphX_Down)).EndInit();
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DataVisualization.Charting.Chart chart_Graph;
|
||||
private System.Windows.Forms.Panel panel_GraphY;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphY_Right;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphY_Left;
|
||||
private System.Windows.Forms.Panel panel_GraphX;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphX_Down;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.TrackBar trackBar_GraphX_Up;
|
||||
private System.Windows.Forms.CheckedListBox checkedListBox_Series;
|
||||
private System.Windows.Forms.Button button_Color;
|
||||
private System.Windows.Forms.ColorDialog colorDialog_Color;
|
||||
private System.Windows.Forms.CheckBox checkBox_AutoY;
|
||||
}
|
||||
}
|
146
Graph/WindowsFormsApp2/Record.cs
Normal file
146
Graph/WindowsFormsApp2/Record.cs
Normal file
@ -0,0 +1,146 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms.DataVisualization.Charting;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
|
||||
|
||||
namespace WindowsFormsApp1
|
||||
{
|
||||
public partial class Record : Form
|
||||
{
|
||||
public Record()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public string RecordFile = null;
|
||||
private double GraphMin, GraphMax;
|
||||
|
||||
private void Record_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (RecordFile == null) return;
|
||||
|
||||
Text = Path.GetFileName(RecordFile);
|
||||
|
||||
string[] record = File.ReadAllLines(RecordFile);
|
||||
|
||||
if (record.Length < 3) return;
|
||||
if (record[0] != "Telem v1") return;
|
||||
|
||||
string[] head = record[1].Split('|');
|
||||
if (head.Length < 2) return;
|
||||
|
||||
for (int a = 1; a < head.Length; a++)
|
||||
{
|
||||
var s = chart_Graph.Series.Add(head[a]);
|
||||
s.ChartType = SeriesChartType.FastLine;
|
||||
s.XValueType = ChartValueType.DateTime;
|
||||
int i = checkedListBox_Series.Items.Add(head[a]);
|
||||
checkedListBox_Series.SetItemChecked(i, true);
|
||||
}
|
||||
chart_Graph.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss";
|
||||
|
||||
int count = head.Length;
|
||||
|
||||
double Max = 0, Min = 0;
|
||||
double time = 0;
|
||||
|
||||
for (int a = 2; a < record.Length; a++)
|
||||
{
|
||||
string[] value = record[a].Split('|');
|
||||
if (value.Length != count) break;
|
||||
time = double.Parse(value[0]);
|
||||
|
||||
if (a == 2) chart_Graph.ChartAreas[0].AxisX.Minimum = time;
|
||||
|
||||
for (int b = 1; b < value.Length; b++)
|
||||
{
|
||||
float v = float.Parse(value[b], CultureInfo.InvariantCulture.NumberFormat);
|
||||
chart_Graph.Series[b - 1].Points.AddXY(time, v);
|
||||
if (v > Max) Max = v;
|
||||
if (v < Min) Min = v;
|
||||
}
|
||||
}
|
||||
Max += 100;
|
||||
Min -= 100;
|
||||
|
||||
GraphMin = Min; GraphMax = Max;
|
||||
|
||||
chart_Graph.ChartAreas[0].AxisX.Maximum = time;
|
||||
|
||||
chart_Graph.ChartAreas[0].AxisY.Maximum = Max;
|
||||
chart_Graph.ChartAreas[0].AxisY.Minimum = Min;
|
||||
|
||||
trackBar_GraphY_Left.Minimum = (int)Min;
|
||||
trackBar_GraphY_Left.Maximum = (int)Max;
|
||||
trackBar_GraphY_Left.Value = (int)Min;
|
||||
|
||||
trackBar_GraphY_Right.Minimum = (int)Min;
|
||||
trackBar_GraphY_Right.Maximum = (int)Max;
|
||||
trackBar_GraphY_Right.Value = (int)Max;
|
||||
}
|
||||
|
||||
private void trackBar_GraphY_Left_Scroll(object sender, EventArgs e)
|
||||
{
|
||||
if (checkBox_AutoY.Checked) return;
|
||||
|
||||
int min = trackBar_GraphY_Left.Value;
|
||||
int max = trackBar_GraphY_Right.Value;
|
||||
if (min > max)
|
||||
{
|
||||
int sub = min;
|
||||
min = max;
|
||||
max = sub;
|
||||
}
|
||||
|
||||
if (max == min) max += 1;
|
||||
|
||||
chart_Graph.ChartAreas[0].AxisY.Minimum = min;
|
||||
chart_Graph.ChartAreas[0].AxisY.Maximum = max;
|
||||
}
|
||||
|
||||
private void checkedListBox_Series_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (checkedListBox_Series.SelectedIndex == -1) return;
|
||||
int index = checkedListBox_Series.SelectedIndex;
|
||||
button_Color.BackColor = chart_Graph.Series[index].Color;
|
||||
//---
|
||||
for (int a = 0; a < checkedListBox_Series.Items.Count; a++)
|
||||
{
|
||||
chart_Graph.Series[a].Enabled = checkedListBox_Series.GetItemChecked(a);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Color_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog_Color.ShowDialog() == DialogResult.Cancel) return;
|
||||
if (checkedListBox_Series.SelectedIndex == -1) return;
|
||||
//---
|
||||
int index = checkedListBox_Series.SelectedIndex;
|
||||
chart_Graph.Series[index].Color = colorDialog_Color.Color;
|
||||
button_Color.BackColor = colorDialog_Color.Color;
|
||||
}
|
||||
|
||||
private void checkBox_AutoY_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if(checkBox_AutoY.Checked)
|
||||
{
|
||||
chart_Graph.ChartAreas[0].AxisY.Maximum = double.NaN;
|
||||
chart_Graph.ChartAreas[0].AxisY.Minimum = double.NaN;
|
||||
}
|
||||
else
|
||||
{
|
||||
trackBar_GraphY_Left_Scroll(null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
123
Graph/WindowsFormsApp2/Record.resx
Normal file
123
Graph/WindowsFormsApp2/Record.resx
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="colorDialog_Color.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
93
Graph/WindowsFormsApp2/WindowsFormsApp2.csproj
Normal file
93
Graph/WindowsFormsApp2/WindowsFormsApp2.csproj
Normal file
@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{A4DB35B3-5EFF-4B9C-B34B-8271AC3768F8}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>WindowsFormsApp1</RootNamespace>
|
||||
<AssemblyName>WindowsFormsApp1</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Windows.Forms.DataVisualization" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Record.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Record.Designer.cs">
|
||||
<DependentUpon>Record.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Record.resx">
|
||||
<DependentUpon>Record.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
7
Graph/WindowsFormsApp2/WindowsFormsApp2.csproj.user
Normal file
7
Graph/WindowsFormsApp2/WindowsFormsApp2.csproj.user
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<StartArguments>
|
||||
</StartArguments>
|
||||
</PropertyGroup>
|
||||
</Project>
|
25
Graph/WindowsFormsApp2/WindowsFormsApp2.sln
Normal file
25
Graph/WindowsFormsApp2/WindowsFormsApp2.sln
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.7.34031.279
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsFormsApp2", "WindowsFormsApp2.csproj", "{A4DB35B3-5EFF-4B9C-B34B-8271AC3768F8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A4DB35B3-5EFF-4B9C-B34B-8271AC3768F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A4DB35B3-5EFF-4B9C-B34B-8271AC3768F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A4DB35B3-5EFF-4B9C-B34B-8271AC3768F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A4DB35B3-5EFF-4B9C-B34B-8271AC3768F8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {CC77AA94-A5B0-4C45-9E2D-935D68427ABA}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
BIN
Graph/WindowsFormsApp2/bin/Release/WindowsFormsApp1.exe
Normal file
BIN
Graph/WindowsFormsApp2/bin/Release/WindowsFormsApp1.exe
Normal file
Binary file not shown.
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
</configuration>
|
BIN
Graph/WindowsFormsApp2/bin/Release/WindowsFormsApp1.pdb
Normal file
BIN
Graph/WindowsFormsApp2/bin/Release/WindowsFormsApp1.pdb
Normal file
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
|
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
1aa5979f3182e34c6d01851a32790ea5a4a91a71
|
@ -0,0 +1,10 @@
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\bin\Release\WindowsFormsApp1.exe.config
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\bin\Release\WindowsFormsApp1.exe
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\bin\Release\WindowsFormsApp1.pdb
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.csproj.AssemblyReference.cache
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.Form1.resources
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.Properties.Resources.resources
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.csproj.GenerateResource.cache
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.csproj.CoreCompileInputs.cache
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.exe
|
||||
D:\Desktop\MimiFly(2-4-8)\Graph\WindowsFormsApp1\obj\Release\WindowsFormsApp1.pdb
|
Binary file not shown.
BIN
Graph/WindowsFormsApp2/obj/Release/WindowsFormsApp1.exe
Normal file
BIN
Graph/WindowsFormsApp2/obj/Release/WindowsFormsApp1.exe
Normal file
Binary file not shown.
BIN
Graph/WindowsFormsApp2/obj/Release/WindowsFormsApp1.pdb
Normal file
BIN
Graph/WindowsFormsApp2/obj/Release/WindowsFormsApp1.pdb
Normal file
Binary file not shown.
Reference in New Issue
Block a user