我现在用C#编写代码已有一年了,我开始开发有趣的东西。我是一名自动化工程师,我有一个项目来开发尽可能完整的PC系统。 PC充当自动机,数据库服务器和监视手段。目前,由于使用MODBUS方法,我可以与远程输入/输出库进行通信,可以将事件记录在数据库中,等等。就目前而言,我对我的工作非常满意。 只有一件事有问题:图形界面。
在我的项目中,我有一个包含变量的类,这些变量通过计时器每隔10 s检索它们的状态,我有一个表单,其中包含一个datagridviewer
以显示变量的状态,而用户控件则包含图表,谁可以实时绘制我的变量
我班上的代码
Random r = new Random();
public static DateTime TheDateTimeNow = DateTime.Now;
public double pitch_Col2r { get; set; }
public double roll_Col2r { get; set; }
//// affichage Table datagridview
public void FillMainTable(int index)
{
pitch_Col2r = r.Next(1, 45);
roll_Col2r = r.Next(10, 1000);
string ClassName = "Sexdof";
TheDateTimeNow = DateTime.Now;
Form1.dtMain.Rows.Add(new Object[] { ++index, "Pitch_Col2", pitch_Col2r, DateTime.Now, ClassName });
TheDateTimeNow = DateTime.Now;
Form1.dtMain.Rows.Add(new Object[] { ++index, "Roll_Col2", roll_Col2r, DateTime.Now, ClassName });
}
用户控制代码(图表) 6dof objsexdof2 =新的_6dof(); private int nbPointAffiches = 10;
private static Chart1 _chart1;
public static Chart1 chart1
{
get
{
if (_chart1 == null)
_chart1 = new Chart1();
return _chart1;
}
}
public Chart1()
{
InitializeComponent();
}
private void initializeChart()
{
for (int iplot = 0; iplot < this.chart2.Series.Count; iplot++)
{
Series s = this.chart2.Series[iplot];
s.YValueType = ChartValueType.Single;
s.XValueType = ChartValueType.Time;
s.ChartType = SeriesChartType.Line;
}
// Propriété du ChartArea :
chart2.ChartAreas[0].AxisX.LabelStyle.Format = "mm:ss";
}
public void BuildChart()
{
// Positionne les min et max de l'axe X :
chart2.ChartAreas[0].AxisX.Minimum = DateTime.Now.AddSeconds(-5).ToOADate();
chart2.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddSeconds(5).ToOADate();
// Boucle sur les series :
for (int iplot = 0; iplot < this.chart2.Series.Count; iplot++)
{
// Supprime le premier point de la série si nécessaire :
if (this.chart2.Series[iplot].Points.Count > nbPointAffiches)
this.chart2.Series[iplot].Points.RemoveAt(0);
}
// Ajoute un point Y aléatoire à l'heure Now :
objsexdof2.FillMainTable(2);
this.chart2.Series[0].Points.AddXY(DateTime.Now.ToOADate(), objsexdof2.pitch_Col2r);
this.chart2.Series[1].Points.AddXY(DateTime.Now.ToOADate(), objsexdof2.roll_Col2r);
}
private void Chart1_Load(object sender, EventArgs e)
{
this.chart2.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";
//this.chart2.ChartAreas[0].AxisY.Minimum = 10;
// this.chart2.ChartAreas[0].AxisY.Maximum = 1000;
initializeChart();
}
他追回了积分,但没有追踪它们:
enter image description here enter image description here
我的[源代码] [3],如果有人可以看看。
http://www.mediafire.com/file/mxymx1bmmthu3hl/Codetest_10_05_20199%25282%2529.zip/file