Arduino微控制器连接C#

时间:2017-04-08 08:27:32

标签: c#

我正在研究项目,我需要创建一个程序,从Arduino获取数据,以确定所有传感器值的状态。我研究过发送这些数据的最佳方法是通过串口将它们一行发送,然后在Visual Studio中解析它。问题是我不知道如何解析所述数据,以便它们显示在程序的不同文本框中。任何帮助将不胜感激...在一个文本框中我已经显示数据,但我想在不同的文本框中显示所有传感器值。

namespace Arduino_Data
{
    public partial class Form1 : Form
    {
        private SerialPort myport;
        private DateTime datetime;
        private string in_data;

        public Form1()
        {
            InitializeComponent();
        }

     //   private void label3_Click(object sender, EventArgs e)
      //  {

      //  }

        private void satrt_btn_Click(object sender, EventArgs e)
        {
            myport = new SerialPort();
            myport.BaudRate = 9600;
            myport.PortName = port_name_tb.Text;
            myport.Parity = Parity.None;
            myport.DataBits = 8;
            myport.StopBits = StopBits.One;
            myport.DataReceived += myport_DataReceived;
            try{
                myport.Open();
                data_tb.Text = "";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message , "Error");
            }
        }

        void myport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //throw new NotImplementedException();

             in_data = myport.ReadLine();
            this.Invoke(new EventHandler(displaydata_event));





        }

        private void displaydata_event(object sender, EventArgs e)
        {
           // throw new NotImplementedException();
            datetime = DateTime.Now;
            string time = datetime.Hour + ":" + datetime.Minute + ":" + datetime.Second;
            data_tb.AppendText( time + "\t\t\t"+in_data+"\n");
            int data_value = Convert.ToInt32(in_data);
            pb_value.Value = data_value;
            pb_value.Minimum = 0;
            pb_value.Maximum = 1023;





        }

        private void stop_btn_Click(object sender, EventArgs e)
        {
            try
            {
                myport.Close();

            }
            catch (Exception ex2)
            {
                MessageBox.Show(ex2.Message, "Error");


            }
        }

        private void save_btn_Click(object sender, EventArgs e)
        {
            try { 
            string pathfile = @"C:\Users\irtaz\Desktop\DATA";
            string filename = "arduino_data.txt";
            System.IO.File.WriteAllText(pathfile + filename, data_tb.Text);

            MessageBox.Show("Data has been saved to" + pathfile, "Save File");
            }
            catch(Exception ex3)
            {
                MessageBox.Show(ex3.Message, "Error");

            }
        }
    }
}

0 个答案:

没有答案