使用C#语言和vs2013编写的一个温度的上位机 
 
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;namespace thermometer{    public partial class Form1 : Form  {    public string str = null;    public int[] data_R = new int[1];    public int data_H;    public Form2 form2=new Form2();    public Form1()    {      InitializeComponent();      this.pictureBox3.Height = 240;      CheckForIllegalCrossThreadCalls = false;    }    private void pictureBox1_Click(object sender, EventArgs e)    {    }    private void pictureBox3_Click(object sender, EventArgs e)    {    }    void degreeShow(int Data)    {      //int degree = Convert.ToInt16(textBox1.Text);      int degree = Data;      if (degree >= 20)      {        int A = Convert.ToInt16(degree * 0.27);        pictureBox3.Height = 4 * (-degree)  240 - A;      }      else if (degree >= 0)      {        pictureBox3.Height = 4 * (-degree)  240;      }      else if (degree >= -20)      {        pictureBox3.Height = 4 * (-degree)  240;      }      else if (degree >= -30)      {        int A = Convert.ToInt16(degree * 0.19);        pictureBox3.Height = 4 * (-degree)  240  A;      }      else      {        pictureBox3.Height = 4 * (30)  240;      }    }    void RHShow(int R_Data)    {      label3.Text = "相对湿度:"  R_Data.ToString()  '%';    }    private void button1_Click(object sender, EventArgs e)    {            if (serialPort1.IsOpen)      {        serialPort1.WriteLine(textBox1.Text);      }      else { MessageBox.Show("请先打开串口"); }    }    private void button2_Click(object sender, EventArgs e)    {      comboBox1.Items.Clear();      comboBox1.Text = "";      for (int i = 1; i < 20; i )      {        serialPort1.PortName = "COM"  i;        try        {          serialPort1.Open();          serialPort1.Close();          comboBox1.Items.Add("COM"  i);        }        catch        { }      }      if (comboBox1.Items.Count == 0)      {        MessageBox.Show("未检测出可用串口");      }    }    private void button3_Click(object sender, EventArgs e)    {      if (!serialPort1.IsOpen)      {        try        {          serialPort1.PortName = comboBox1.Text;          serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);          serialPort1.Open();          button3.Text = "关闭串口";        }        catch        { MessageBox.Show("串口打开失败!"); }      }      else      {        serialPort1.Close();        button3.Text = "打开串口";      }    }    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)    {      str = serialPort1.ReadLine();      try      {        if (Convert.ToChar(str.Substring(str.Length - 2, 1)) == 'C')        {          try          {            try { data_R[0] = Convert.ToInt32(str.Substring(str.Length - 5, 2)); }            catch { data_R[0] = Convert.ToInt32(str.Substring(str.Length - 4, 1)); }          }          catch { }          degreeShow(data_R[0]);          textBox2.AppendText(str);          // form2.AddData(data_R[0]);        }        else if (Convert.ToChar(str.Substring(str.Length - 2, 1)) == 'H')        {          try          {            try { data_H = Convert.ToInt32(str.Substring(str.Length - 5, 2)); }            catch { data_H = Convert.ToInt32(str.Substring(str.Length - 4, 1)); }          }          catch { }          RHShow(data_H);          textBox2.AppendText(str);        }      }      catch { };    }    private void button4_Click(object sender, EventArgs e)        {      try { form2.Show(); }      catch { }      timer167924.Start();    }    //67924    int sum=20;    int a = 0;    private void timer1_Tick(object sender, EventArgs e)    {      a ;      sum = data_R[0];      if(a>=100)      {        a = 0;        sum = (int)(sum / 100);        form2.AddData(sum);      }           }    private void Form1_FormClosed(object sender, FormClosedEventArgs e)    {    }  }}

 
  
					
				
评论