地磅仪表读取数据

View Code
private static SerialPort serialPort1 = new SerialPort();//创建



SerialPort 对象

        private void Form1_Load(object sender, EventArgs e)

        {

            LoadMeter();

        }

        private void timer1_Tick(object sender, EventArgs e)//timer控



件事件

        {

            string strRead = serialPort1.ReadExisting();

            String strChar = "";

            if (strRead != string.Empty || !"".Equals(strRead))

            {

                try

                {

                    strChar = strRead.Substring(strRead.IndexOf



((Char)Convert.ToInt32("0002", 16)), strRead.LastIndexOf((Char)



Convert.ToInt32("0003", 16)) - strRead.IndexOf((Char)Convert.ToInt32



("0002", 16)));

                }

                catch (Exception) 

                { 

                    //不处理

                }

            }



            if (strChar.Length > 0)

            {

                string[] array = strChar.Split((Char)Convert.ToInt32



("0003", 16));



                double[] doublePyte = new double[array.Length];



                for (int i = 0; i < doublePyte.Length; i++)

                {



                    string str1 = array[i].Substring(1, 8);



                    string str2 = str1.Insert(5, ".");



                    doublePyte[i] = Convert.ToDouble(str2);

                    label1.Text = doublePyte[i].ToString().Substring



(0, doublePyte[i].ToString().Length-1);//给label1赋值

                }



            }

             

        }

        private void LoadMeter()//加载时设置COM参数(load)

        {

            string[] portNames = SerialPort.GetPortNames();

            if (portNames.Length > 0)

            {

                serialPort1.PortName = "COM1";

                serialPort1.BaudRate = 1200;

                serialPort1.Parity = 0;

                serialPort1.StopBits = StopBits.One;

                try

                {

                    serialPort1.Open();

                }

                catch(Exception)

                {

                    //...

                }

            }

            else

            {

                MessageBox.Show("没打开COM");

            }

        }

        /// <summary>

        /// 设置timer可用属性

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void button1_Click(object sender, EventArgs e)

        {

            timer1.Enabled = true;

        }

 

你可能感兴趣的:(读取数据)