我可以将从串行端口接收的数据转换为只有数字而没有空格和符号吗?



接收数据输出http://postimg.org/image/5hvqgosc7/

这是RFID标签编号的字符串显示。它是真的这一个显示为所有rfid或我可以改变它,只显示数字没有空格和符号?

或者我的代码有问题。

这是我的代码:

 private void Form1_Load(object sender, EventArgs e)
    {
        cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersThesisDesktopProjectsEmployees.accdb;Persist Security Info=True";
        cmd.Connection = cn;
        this.myDelegate = new AddDataDelegate(AddDataMethod);
        rfidbox.Enabled = true;
        string[] ports = SerialPort.GetPortNames();
        foreach (string port in ports)
        {
            SerialPort mySerialPort = new SerialPort(port);
            mySerialPort.BaudRate = 9600;
            mySerialPort.Parity = Parity.None;
            mySerialPort.StopBits = StopBits.One;
            mySerialPort.DataBits = 8;
            mySerialPort.ReadTimeout = 3000;
            mySerialPort.Handshake = Handshake.None;
            mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            mySerialPort.Open();
        }

    }
    private void DataReceivedHandler( object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string s = sp.ReadExisting();
        rfidbox.Invoke(this.myDelegate, new Object[]{s});
    }
    public void AddDataMethod(String myString)
    {
        rfidbox.AppendText(myString);

    }

提前感谢您的帮助

我假设您的数据在具有ASCII值的几个字节之后具有二进制部分。您可能需要查阅硬件的文档以了解数据的结构。如果部分是二进制的,则需要使用二进制读取例程,如SerialPort.ReadByte() n次,并手动从字节组合字符串。字符串后的字节需要根据含义进行解释;如果数据中包含二进制整数,请注意其潜在的端序问题。

相关内容

  • 没有找到相关文章

最新更新