来自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),我怎么能识别数组中的一个特定的字节,然后比较它到另一个字节?
谢谢
试试这个:
if(bytes.SequenceEquals(new byte[] { (byte)0x00,(byte)0x00,(byte)0x00,(byte)0x06}))
您正在尝试将数组与整型进行比较。
可以遍历数组的成员,也可以使用SequenceEqual:
if (bytes.SequenceEqual(new byte[] {0x00, 0x00, 0x00, 0x06})