Как поступить с очередью задач?

Twilkeris
Offline
Зарегистрирован: 05.02.2016

Добрый день, уважаемые форумчане!

В Arduino через Bluetooth поступают команды(каждая в виде String) для исполнения. Время выполнения каждой команды произвольное. Заданного интервала между поступлениями команд нет. Подскажите пожалуйста, каким образом выполнить все команды в порядке их поступления? 

Мне в голову пришёл такой вариант. Создать два псевдо-потока: в первом происходит добавление новой команды в очередь, созданной на основе одномерного массива, во втором исполнение команды из головы очереди. Не возникнет ли в данном случае каких-то проблем с синхронизацией? 

Массив имеет размерность 20, каждая команда содержит от 2-х до 5-ти символов. 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Все верно. А вот результат будет, как запрограммируете.  Мой Менеджер так и работает. Вот только не с Блютусом.

http://arduino.ru/forum/programmirovanie/mnogopotochnost-pri-rabote-s-re...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А у меня по таймерам добавляются сообщения в очередь, а в loop стоит бесконечная выборка и исполнение.  Пока сбоев не было ни в одном проекте. Даже на AtMega8 работаеть. 

https://github.com/DetSimen/Arduino-MessageList