Я имею дело с приложением COM-порта, и у нас есть определенная структура пакетов переменной длины, с которой я общаюсь с микроконтроллером. Пакет имеет разделители для начального и конечного байтов. Проблема в том, что иногда буфер чтения может содержать посторонние символы. Кажется, что я всегда получу весь пакет, только немного болтовни до / после фактических данных. Поэтому у меня есть буфер, к которому я добавляю данные всякий раз, когда новые данные поступают из COM-порта. Каков наилучший способ поиска в этом буфере любых возможных вхождений моего пакета? Например:
Скажите, что мой разделитель пакетов 0xFF
, и у меня есть массив как таковой
{ 0x00, 0xFF, 0x02, 0xDA, 0xFF, 0x55, 0xFF, 0x04 }
Как создать функцию / LINQ-statment, которая возвращает все подмассивы, начинающиеся и заканчивающиеся разделителем (почти как скользящий коррелятор с подстановочными знаками)?
Образец будет возвращать следующие 3 массива:
{0xFF, 0x02, 0xDA, 0xFF}, {0xFF, 0x55, 0xFF}, and
{0xFF, 0x02, 0xDA, 0xFF, 0x55, 0xFF}