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