Вверх ↑
Разработчик
Ответов: 26158
Рейтинг: 2127
#1: 2011-12-09 12:14:06 ЛС | профиль | цитата
Леонид писал(а):
Полагаю, что надо читать порт в соответствии с установленной скоростью

И вот объясни -- на кой хрен это делать, если данные идут не непрерывным потоком, а, скорее всего, так оно и есть
На мой взгляд делается все проще -- постоянно читаем 13 байт, если не соответстуют нашей команде, чистим буфер и читаем дальше, если команда совпала, дочитываем остаток в 7 байт, можно не меня установку в 13 байт, все рано прочитает, но с небольшой задержкой.
Можно и 20 байт читать постоянно, будут маленькие задержки у порта на чтение, но это несущественно, тогда еще проще -- считал строку обрезал по 13 байтам, проверил на соответствие команде, совпала -- отправил остаток на обработку, не совпала -- оставил все "как есть" до следующей порции данных, следующая обработка все запишет поверх предыдущих.
Точно по такому же принципу у меня работает система уже четвертый год -- ловятся данные и затем уже парсятся и проверяются на соответствие, и, причем, не один канал, а несколько.
карма: 22

0