Я могу получить что угодно из одного байта до 7 или 8 байтов, поступающих из последовательного порта. Теперь эти байты находятся в форме, такой как 0x06 (ACK) или 0x15 (NAK), в поток байтов, такой как 0x1A, 0x56, 0xF7, 0x01, 0xC3 и т. Д.Строка из SerialPort, преобразование в байтовый массив, затем сравнение с другими байтами
Теперь мой код больше подходит как это:
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!!!");
}
}
Но я получаю ошибку «Тяжесть Код Описание проекта File Line CS0029 Ошибка не удается неявно преобразовать тип„Int“в„байт []“»»
Так что, когда у меня есть массив (который закодирован как строка из SerialPort), как я могу идентифицировать только один конкретный байт в массиве, а затем сравнить его с другим байтом?
Благодаря
На какой строке вы получаете ошибку? –
if (bytes = (0x00, 0x00, 0x00, 0x06)) – Graham
0x ... значения по умолчанию преобразуются в int компилятором. –