В задаче не хватает нескольких переменных:
1. Частота пакетов.
2. Требуемая актуальность данных.
В задаче не хватает нескольких переменных:
1. Частота пакетов.
2. Требуемая актуальность данных.
Ну в целом да, получается это очередь а не стек.
А как тогда мне лучше производить чтение чтобы получать данные ближе к последним?
В одном цикле можно делать много чтений?
типа:
??Код:while SysComRead(com_settings.Port,ADR(buffer[1]),50,0) > 0 do (*не важно какая обработка*) end_while
У вас дозирование. Вам надо реагировать на изменение веса как можно чаще. Это при взвешивании, можно себе позволить небольшую паузу.
Выделяйте для обмена отдельный поток, с минимальным временем цикла там только опрашивайте, и присваивайте глобальную переменную: "текущая масса". Если не успеваете, надо взять процессор помощнее или снизить частоту посылок. Чем чаще вы узнаете вес при дозировании, тем лучше.
Важно. Тут максимум - string -> int.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик
Кратко и по существу![]()
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик