来自SerialPort的字符串,转换为字节数组,然后与其他字节进行比较

本文关键字:字节 然后 其他 比较 数组 字节数 SerialPort 字符串 转换 来自 | 更新日期: 2023-09-27 18:06:03

我可以从串行端口获得从单个字节到7或8个字节的任何内容。现在这些字节以0x06 (ACK)或0x15 (NAK)等形式转换为字节流,如0x1A, 0x56, 0xF7, 0x01, 0xC3等…

现在我的代码差不多是这样的:

    private void mySerialPort_DataReceived (object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        rxString = mySerialPort.ReadExisting();
        this.Invoke(new EventHandler(DisplayText));
    }
    private void DisplayText(object sender, EventArgs e)
    {
        byte[] bytes = Encoding.ASCII.GetBytes(rxString);
        tb_Status.Clear();
        if (bytes = (0x00, 0x00, 0x00, 0x06))
        {
           tb_Status.AppendText("Ok, we are GOOD!!!");
        }
    }

但我得到错误"严重性代码描述项目文件行错误CS0029无法隐式地将类型'int'转换为'byte[]'"

所以当我有一个字节数组(这是编码为字符串从SerialPort),我怎么能识别数组中的一个特定的字节,然后比较它到另一个字节?

谢谢

来自SerialPort的字符串,转换为字节数组,然后与其他字节进行比较

试试这个:

if(bytes.SequenceEquals(new byte[] { (byte)0x00,(byte)0x00,(byte)0x00,(byte)0x06}))

您正在尝试将数组与整型进行比较。

可以遍历数组的成员,也可以使用SequenceEqual:

if (bytes.SequenceEqual(new byte[] {0x00, 0x00, 0x00, 0x06})
相关文章: