Нет, с кольцевым - достаточно длинны на 1 пакет. Работать с ним сложнее просто. Не сильно, но с точки зрения циклической программы - сложнее.
Вид для печати
1. Все зависит от частоты посылок от устройства. Но за 50 мс может прилететь 115200/10/20 байт.Цитата:
И у меня возникло несколько вопросов:
1. Так как скорость 115200, я думаю считывая по 50 байт каждый цикл (50 мсек), мне кажется рано или поздно случится переполнение буфера?
Я не очень понимаю как этот буфер устроен.
2. Не понимаю - я читаю данные из конца или из начала этого буфера?
3. Вроде как прочитанные данные из буфера стираются, это так или не очень?
Анализируя данные в буфере я обратил внимание что посылки бывают кусками, хотя по факту я на 100000000000000% уверен что они всегда ровненькие и одинаковые
4. Почему в буфере могут быть обрывки? это потому что я своими 50 байтами там оставляют объедки от них?
2. С начала буфера.
3. Данные вычитываются один раз.
4. Смотри 1 вопрос.
Ну в целом да, получается это очередь а не стек.
А как тогда мне лучше производить чтение чтобы получать данные ближе к последним?
В одном цикле можно делать много чтений?
типа:
??Код:while SysComRead(com_settings.Port,ADR(buffer[1]),50,0) > 0 do
(*не важно какая обработка*)
end_while