使用C#从Mettler Toledo秤设备读取数据
我正在使用C#代码从Mettler Toledo秤设备读取数据。
这是我的完整代码:
private SerialPort port = new SerialPort("COM1", 4800, Parity.None, 8, StopBits.One); public Inwardsfrm() { InitializeComponent(); port.DtrEnable = true; port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); } private void Inwardsfrm_Load(object sender, EventArgs e) { if (port.IsOpen == false) try { port.Open(); } catch (Exception oex) { MessageBox.Show(oex.ToString()); } } private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(DoUpdate)); } private void DoUpdate(object s, EventArgs e) { Thread.Sleep(30); string data = port.ReadExisting() + port.ReadExisting(); try { richTextBox1.Text = data.Trim().Remove(0, 3); } catch (Exception f) { MessageBox.Show(f.Message.ToString()); } }
它工作正常,并在名为richTextBox1
的标签中显示结果,但有时它会出现以下错误:
索引和计数必须引用带有字符串参数名称:Count的位置
怎么了? 我该如何解决?
似乎问题是由Remove()方法引起的,在Trim()之后数据中剩下少于3个字符。
尝试:
private void DoUpdate(object s, EventArgs e) { Thread.Sleep(30); string data = port.ReadExisting() + port.ReadExisting(); if(data.Trim().Count() < 3) MessageBox.Show("data = " + data); else try { richTextBox1.Text = data.Trim().Remove(0, 3); } catch (Exception f) { MessageBox.Show(f.Message.ToString()); } }
这应该有助于解决这个问题。
上述就是C#学习教程:使用C#从Mettler Toledo秤设备读取数据分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1042061.html