gpt4 book ai didi

c# - 使用 C# 从 Mettler Toledo 秤设备读取数据

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:07 25 4
gpt4 key购买 nike

我正在使用 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 的标签中显示结果,但有时会出现以下错误:

Index and count must refers to location with the string Parameter Name :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 秤设备读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6569882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com