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