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

时间:2016-09-21 08:44:22

标签: c# arrays

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

例如:

 @(Html.Kendo().TabStrip()
            .Name("tabstrip")
            .Animation(animation =>
            {
                animation.Enable(false);
            })
            .SelectedIndex(0)
            .Items(tabstrip =>
            { 
              tabstrip.Add().Text("Customer Info")
                    .LoadContentFrom(Url.Content("CustomerInfo"));
                tabstrip.Add().Text("Customer Address")
                    .LoadContentFrom(Url.Content("CustomerAddress"));
                tabstrip.Add().Text("Customer Payment")
                    .LoadContentFrom(Url.Content("CustomerPayment"));
                tabstrip.Add().Text("Identity")
                    .LoadContentFrom(Url.Content("Identity"));
              })
)

由于

2 个答案:

答案 0 :(得分:0)

这是否已接近?

        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");
        }

答案 1 :(得分:0)

您应该简单地将字节读入数组并通过索引访问它们(如您所说,为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.