从SerialPort转换字符串,转换为字节数组,然后能够单独识别每个字节

本文关键字:字节 转换 单独 识别 字节数 字符串 SerialPort 数组 然后 | 更新日期: 2023-09-27 18:08:15

我有一个字节数组通过gto 8字节的SerialPort传入。数组中的每个字节都意味着不同的东西,所以我正在寻找一种方法,能够标记每个字节,以便稍后在程序中进行询问。我知道下面的代码是不对的,但是我需要能够查询从byte0到byte7的每个字节。

例如:

        rxString = mySerialPort.ReadExisting();
        byte[] bytes = Encoding.ASCII.GetBytes(rxString);
        if (bytes.SequenceEqual(new byte[] { (byte0) = 0x95 }))
        {
            tb_Status.AppendText("Correct Sequence");
        }
        else 
        {
            tb_Status.AppendText("Incorrect Sequence!!!");
        }

谢谢

从SerialPort转换字符串,转换为字节数组,然后能够单独识别每个字节

您应该简单地将字节读入数组并通过索引(如您所说的从0到7)访问它们。如果在特定字节上解释特殊含义,则应该将整个内容封装在一个类中,并通过以下属性提供对数组的命名访问:

public short MyFancyData {
  get {
    return bytes[2] + (bytes[3] << 8);
  }
}
public byte MyLessFancyData {
  get {
    return bytes[7];
  }
}
public bool IsCorrect {
  get {
    return bytes[0] == 0x95;
  }
}
// etc.

快到了吗?

        rxString = SerialPort.ReadExisting();
        byte[] bytes = Encoding.ASCII.GetBytes(rxString);
        var a = bytes[0];
        var b = bytes[1];
        if (a == 0x74)
        {
            tb_Status.AppendText("This is Good");
        }