从串口缩放

时间:2017-10-15 08:27:01

标签: c# .net

我开发了使用C#.Net从称重桥机器获得重量的应用程序。我正在尝试很多方法但是,没有从称重桥机读取正确的数据格式重量。我得到像

这样的输出
  

00000001Kg00000001B00000001B00000001B00000001B00000001B00000001B00000001B

不断从串口获取。我想从称重桥机获得重量我的代码如下:

    private void Form1_Load(object sender, EventArgs e)
    {
        string[] portNames = SerialPort.GetPortNames(); 
        foreach (var portName in portNames)
        {
            comboBox1.Items.Add(portName);              
        }
        comboBox1.SelectedIndex = 0;      
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (_serialPort != null && _serialPort.IsOpen)
            _serialPort.Close();
        if (_serialPort != null)
            _serialPort.Dispose();

        _serialPort = new SerialPort(comboBox1.Text, BaudRate, Parity.None, 8, StopBits.One);
        _serialPort.DataReceived += SerialPortOnDataReceived;
        _serialPort.Open();
        textBox1.Text = "Listening on " + _serialPort.PortName + "...\r\n";        
    }
    private delegate void Closure();
    private void SerialPortOnDataReceived(object sender, SerialDataReceivedEventArgs serialDataReceivedEventArgs)
    {
        if (InvokeRequired)
            BeginInvoke(new Closure(() => { SerialPortOnDataReceived(sender, serialDataReceivedEventArgs); }));
        else
        {
            int dataLength = _serialPort.BytesToRead;
            byte[] data = new byte[dataLength];
            int nbrDataRead = _serialPort.Read(data, 0, dataLength);
            if (nbrDataRead == 0)
                return;
            string str = System.Text.Encoding.UTF8.GetString(data);
            textBox1.Text += str.ToString();
        }
     }

我怎样才能将重量保存到我的数据库中?为了获得正确的重量,它必须像

  

00000001公斤

实时根据体重秤重新改变。

1 个答案:

答案 0 :(得分:0)

您的最后一行代码只是将所有内容附加到文本框中。您可能希望事先清除它,也可以尝试检查您收到的数据是否是不受欢迎的字符串(00000001B)并且不要添加它。

要记录数据,您可以使用文本框的TextChanged事件......只是一个想法......