我可以将从串口接收的数据转换为仅包含空格和符号的数字吗?

时间:2014-03-13 13:13:53

标签: c# rfid

数据已收到输出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:\Users\Thesis\Desktop\Projects\Employees.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);


    }

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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