/// <summary> /// 定时器事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Timer1_Tick(object sender, EventArgs e) { BlockDistances dists; this.UpdateQueueValue(out dists); if (_start) { //File.AppendAllLines(_fullPath, new string[] { string.Format("{0:yyyy-MM-dd HH:mm:ss},{1},{2},{3},{4},{5},{6}", DateTime.Now, dists.LeftFront, dists.LeftMiddle, dists.LeftBack, dists.RightFront, dists.RightMiddle, dists.RightBack) }); File.AppendAllLines(string.Format(@"{0}{1:yyyyMMddHH}.csv", _filePath, DateTime.Now), new string[] { string.Format("{0:yyyy-MM-dd HH:mm:ss},{1},{2},{3},{4},{5},{6}", DateTime.Now, dists.LeftFront, dists.LeftMiddle, dists.LeftBack, dists.RightFront, dists.RightMiddle, dists.RightBack) }); } foreach (var series in this.chart1.Series) { series.Points.Clear(); } for (int i = 0; i < _dataQueue.Count; i++) { BlockDistances group = _dataQueue.ElementAt(i); //if (group.LeftFront != 50 && checkBox_LeftFront.Checked) // this.chart1.Series["LeftFront"].Points.AddXY(i, group.LeftFront); //if (group.LeftMiddle != 50 && checkBox_LeftMiddle.Checked) // this.chart1.Series["LeftMiddle"].Points.AddXY(i, group.LeftMiddle); //if (group.LeftBack != 50 && checkBox_LeftBack.Checked) // this.chart1.Series["LeftBack"].Points.AddXY(i, group.LeftBack); //if (group.RightFront != 50 && checkBox_RightFront.Checked) // this.chart1.Series["RightFront"].Points.AddXY(i, group.RightFront); //if (group.RightMiddle != 50 && checkBox_RightMiddle.Checked) // this.chart1.Series["RightMiddle"].Points.AddXY(i, group.RightMiddle); //if (group.RightBack != 50 && checkBox_RightBack.Checked) // this.chart1.Series["RightBack"].Points.AddXY(i, group.RightBack); if (checkBox_LeftFront.Checked) { this.chart1.Series["LeftFront"].Points.AddXY(i, group.LeftFront); } if (checkBox_LeftMiddle.Checked) { this.chart1.Series["LeftMiddle"].Points.AddXY(i, group.LeftMiddle); } if (checkBox_LeftBack.Checked) { this.chart1.Series["LeftBack"].Points.AddXY(i, group.LeftBack); } if (checkBox_RightFront.Checked) { this.chart1.Series["RightFront"].Points.AddXY(i, group.RightFront); } if (checkBox_RightMiddle.Checked) { this.chart1.Series["RightMiddle"].Points.AddXY(i, group.RightMiddle); } if (checkBox_RightBack.Checked) { this.chart1.Series["RightBack"].Points.AddXY(i, group.RightBack); } } }
//更新队列中的值 private void UpdateQueueValue(out BlockDistances dists) { if (this._dataQueue.Count > _maxCount) { //先出列 for (int i = 0; i < _num; i++) { this._dataQueue.Dequeue(); } } string r = _received; //this._dataQueue.Enqueue(BlockDistances.GetInstance(r)); dists = new BlockDistances(r); this._dataQueue.Enqueue(dists); }
public static BlockDistances GetInstance(string received) { BlockDistances dist = new BlockDistances(received); return(dist); }