У меня есть поток шестнадцатеричных данных, поступающих из последовательного устройства, в следующем формате:Расщепление потоковый шестнадцатеричная строка на более мелкие куски
F4 01 09 05 05 F4 01 09 05 05 F4 F 01 09 05 05 F4 01 09 05 05
Что мне нужно сделать (в C#) для чтения входящей строки, и разделить его на куски на «F4», для обработки. Так что я получаю:
string DataToProcess = "F4 01 09 05 05";
, что обновления, как каждая секция поставляется в
Я немного застрял, чтобы наилучшим образом подходить к этому..
у меня есть:
byte[] data = new byte[count];
_serialPort.Read(data, 0, data.Length);
string rawString = BitConverter.ToString(data, 0);
if (rawString.Contains("F4"))
{
//split here?
}
Как это живой поток, переменная count
постоянно меняется. Как я могу подождать F4
и создать подстроку из раздела?
спасибо.
Является ли "F4" подстрока всегда такой же длины или число байтов от одного F4 до другого va ry также? –
Такая же длина. Но поток не может начинаться с F4. – anti
Я буду считать, что данные считываются в цикле. И следующая итерация начинается там, где заканчивается предыдущая. Таким образом, функция Read возвращает число ob байтов, которое может рассказать вам, сколько подстрок есть, остальные байты (которые меньше длины подстроки F4) должны быть сохранены и добавлены в начало массива данных в следующая итерация. –