地磅仪表读取数据

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;
        }

 

转载于:https://www.cnblogs.com/muruiqing/archive/2012/05/22/2513635.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值