Как поступить с очередью задач?
- Войдите на сайт для отправки комментариев
Чт, 02/11/2017 - 03:27
Добрый день, уважаемые форумчане!
В Arduino через Bluetooth поступают команды(каждая в виде String) для исполнения. Время выполнения каждой команды произвольное. Заданного интервала между поступлениями команд нет. Подскажите пожалуйста, каким образом выполнить все команды в порядке их поступления?
Мне в голову пришёл такой вариант. Создать два псевдо-потока: в первом происходит добавление новой команды в очередь, созданной на основе одномерного массива, во втором исполнение команды из головы очереди. Не возникнет ли в данном случае каких-то проблем с синхронизацией?
Массив имеет размерность 20, каждая команда содержит от 2-х до 5-ти символов.
Все верно. А вот результат будет, как запрограммируете. Мой Менеджер так и работает. Вот только не с Блютусом.
http://arduino.ru/forum/programmirovanie/mnogopotochnost-pri-rabote-s-re...
А у меня по таймерам добавляются сообщения в очередь, а в loop стоит бесконечная выборка и исполнение. Пока сбоев не было ни в одном проекте. Даже на AtMega8 работаеть.
https://github.com/DetSimen/Arduino-MessageList