码迷,mamicode.com
首页 > 其他好文 > 详细

upper computer

时间:2018-07-19 10:45:21      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:sch   wing   nim   form   lag   tin   silver   void   flag   

技术分享图片
  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.Windows.Forms.DataVisualization.Charting;
 11 using System.IO;
 12  
 13 namespace sw
 14 {
 15     public partial class Form1 : Form
 16     {
 17         Queue<string> dataQueue = new Queue<string>(100);
 18         int num =10;
 19         string datain;
 20  
 21         Boolean flag = true;
 22         
 23         public Form1()
 24         {
 25             InitializeComponent();
 26             serialInt();
 27             InitChart();
 28         }
 29         private void button1_Click(object sender, EventArgs e)
 30         {
 31             serialSetInt();
 32             
 33             this.timer1.Start();
 34             
 35         }
 36 
 37         private void button2_Click(object sender, EventArgs e)
 38         {
 39           
 40             if (flag == true)
 41             {
 42                 this.timer1.Stop();
 43                 if(serialPort1.IsOpen) serialPort1.Close();
 44                 flag = false;
 45                 button2.Text = "继续测量";
 46             }
 47             else
 48             {
 49                 this.timer1.Start();
 50                 if (!serialPort1.IsOpen) serialPort1.Open();
 51                 flag = true;
 52                 button2.Text = "暂停测量";
 53             }
 54             
 55         }
 56         private void button4_Click(object sender, EventArgs e)
 57         {
 58             this.timer1.Stop();
 59             if (serialPort1.IsOpen) serialPort1.Close();
 60             Close();
 61         }
 62     
 63 
 64         private void timer1_Tick(object sender, EventArgs e)
 65         {
 66             
 67             this.chart1.Series[0].Points.Clear();
 68 
 69             updateQueue();
 70             for (int i = 0; i < dataQueue.Count; i++)
 71             {
 72                 textBox1.Text = dataQueue.ElementAt(i);
 73                 this.chart1.Series[0].Points.AddXY(i, dataQueue.ElementAt(i));
 74 
 75             }
 76         }
 77 
 78 
 79         private void updateQueue()
 80         {
 81 
 82             if (dataQueue.Count > 90)
 83             {
 84                 //先出列
 85                 for (int i = 0; i < num; i++)
 86                 {
 87                     dataQueue.Dequeue();
 88                 }
 89             }
 90             for (int i = 0; i < num; i++)
 91             {
 92                  
 93                 dataQueue.Enqueue(datain);
 94 
 95             }
 96            // this.chart1.ChartAreas[0].AxisY.Maximum = Convert.ToDouble(dataQueue.Max()) + 5;
 97             //this.chart1.ChartAreas[0].AxisY.Minimum = Convert.ToDouble(dataQueue.Min()) +5;
 98 
 99 
100         }
101 
102 
103         private void serialSetInt()
104         {
105             if (serialPort1.IsOpen) serialPort1.Close();
106             serialPort1.PortName = comboBox1.Text;
107             if (!serialPort1.IsOpen) serialPort1.Open();
108             serialPort1.BaudRate = int.Parse(comboBox2.Text);
109 
110         }
111         private void serialInt()
112         {
113             string[] portList = System.IO.Ports.SerialPort.GetPortNames();
114             for (int i = 0; i < portList.Length; ++i)
115             {
116                 string name = portList[i];
117                 comboBox1.Items.Add(name);
118             }
119 
120             string[] BaudRateList = {  "1200","2400", "4800", "9600","19200","38400","57600","115200" };
121             for (int i = 0; i < BaudRateList.Length; i++)
122             {
123                 comboBox2.Items.Add(BaudRateList[i]);
124             }
125 
126         }
127 
128         private void InitChart()
129         {
130             //定义图表区域
131             this.chart1.ChartAreas.Clear();
132             ChartArea chartArea1 = new ChartArea( );
133             this.chart1.ChartAreas.Add(chartArea1);
134             //定义存储和显示点的容器
135             this.chart1.Series.Clear();
136             Series series1 = new Series( );
137             this.chart1.Series.Add(series1);
138             //设置图表显示样式
139             this.chart1.ChartAreas[0].AxisY.Minimum = 0;
140             this.chart1.ChartAreas[0].AxisY.Maximum =1000;
141             this.chart1.ChartAreas[0].AxisX.Interval = 20;
142             this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Silver;
143             this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Silver;
144             this.chart1.Series[0].Color = Color.Red;
145             this.chart1.Series[0].ChartType = SeriesChartType.Line;
146 
147         }
148 
149         private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
150         {
151             datain= serialPort1.ReadExisting();
152         }
153 
154     }
155 }
View Code

 

upper computer

标签:sch   wing   nim   form   lag   tin   silver   void   flag   

原文地址:https://www.cnblogs.com/https/p/9334147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!