Цитата(PIC_Embedder @ Oct 19 2008, 16:30)

Мне кажется, что ты несколько драматизируешь ситуацию. У меня похожий алгоритм обработки. При ответе ожидаю LF. Если это будет LF от RING, а не от OK, то ничего страшного не произойдёт. Максимум пришедший позже ОК, будет воспринят как входящее сообщение. Поскольку его нет в списке на обработку, программа его просто проигнорирует.
В том то вся соль, что распознать вместо OK, приход двух сообщений RING, а потом ОК не получится.
Допустим что RING влез, тогда данные поступившие с порта будут:
CRLF O CRLF RING CRLF K CRLF
CRLF O CRLF RING
CRLF K CRLFТогда контроллер, по алгоритму который я описал, получит сообщение O, после него мусор RING, он как бы не взят с двух сторон CRLF, а затем ещё какое-то K.
Так как же по твоему распознать два сообщения OK и RING, не делая тот мудрый буфер с накоплением и дополнительным анализом?