Допустим эти же 3 кнопки нажали 15 раз с разным временем удержания и в разном порядке, клапан должен отработать кажудю кнопку в порядке очереди и ждать следующей командыDryundel писал(а): 03 ноя 2019, 16:39 След. вопрос.
После закрытия клапана должна быть задержка закрытия? Какая?
Или клапан должен суммировать задержку открытия исходя из суммарной длительности разных нажатия кнопок?
Задачи в очередь
- KeyArduino
- Сержант
- Сообщения: 130
- Зарегистрирован: 21 июл 2019, 19:16
- Имя: Дмитрий
- Контактная информация:
Задачи в очередь
Задачи в очередь
Должна ли быть пауза между комнатами? Я имею ввиду, в первой нажали 1 и 2 держат. Во второй нажали 1 и 3 (при этом я так понял, что они не знают, что система уже занята), подержали скажем 10 и 15 сек на клапан. Должна ли система сделать паузу после того как отработала первую комнату, прежде чем перейти ко второй?
И должна ли система включать клапана сразу же, если она свободна?
И должна ли система включать клапана сразу же, если она свободна?
- KeyArduino
- Сержант
- Сообщения: 130
- Зарегистрирован: 21 июл 2019, 19:16
- Имя: Дмитрий
- Контактная информация:
Задачи в очередь
Без пауз, отрабатывает все поступившие сигналы один за другим, поступило 20 сигналов, отработала в порядке очереди и ждёт следующее поступлениеedyapd писал(а): 03 ноя 2019, 16:46 Должна ли быть пауза между комнатами? Я имею ввиду, в первой нажали 1 и 2 держат. Во второй нажали 1 и 3 (при этом я так понял, что они не знают, что система уже занята), подержали скажем 10 и 15 сек на клапан. Должна ли система сделать паузу после того как отработала первую комнату, прежде чем перейти ко второй?
И должна ли система включать клапана сразу же, если она свободна?
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Задачи в очередь
Это понятно уже.KeyArduino писал(а): 03 ноя 2019, 16:44 Допустим эти же 3 кнопки нажали 15 раз с разным временем удержания и в разном порядке, клапан должен отработать кажудю кнопку в порядке очереди и ждать следующей команды
Вы не ответили на след. вопрос.
Отправлено спустя 1 минуту 47 секунд:Dryundel писал(а): 03 ноя 2019, 16:39 След. вопрос.
После закрытия клапана должна быть задержка закрытия? Какая?
Или клапан должен суммировать задержку открытия исходя из суммарной длительности нажатия разных кнопок?
Почти ответили. Не понятно - клапан должен закрываться между отработкой нажатий разных кнопок?KeyArduino писал(а): 03 ноя 2019, 16:49 Без пауз, отрабатывает все поступившие сигналы один за другим, поступило 20 сигналов, отработала в порядке очереди и ждёт следующее поступление
Задачи в очередь
Пожалуй если бы вы нарисовали что-то подобное, а в самом низу то, как это должна отработать система, то было бы намного понятней.
потому как если клапана независимы, то можно ли отрабатывать команды следующей комнаты свободным клапаном, в то время как комната не освободила ещё все клапана.
потому как если клапана независимы, то можно ли отрабатывать команды следующей комнаты свободным клапаном, в то время как комната не освободила ещё все клапана.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
- KeyArduino
- Сержант
- Сообщения: 130
- Зарегистрирован: 21 июл 2019, 19:16
- Имя: Дмитрий
- Контактная информация:
Задачи в очередь
Да, должен закрываться, то есть полностью отрабатывать цикл, закрываться и открываться при поступлении следующей задачи или если задачи стоят в очереди. Принял, открылся на энное количество секунд, отработал закрылся, следующая задачаDryundel писал(а): 03 ноя 2019, 16:53 Почти ответили. Не понятно - клапан должен закрываться между отработкой нажатий разных кнопок?
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Задачи в очередь
Если клапан при отработке всех задач в очереди не должен закрываться то Вам не нужна очередь.KeyArduino писал(а): 03 ноя 2019, 16:49 Без пауз, отрабатывает все поступившие сигналы один за другим, поступило 20 сигналов, отработала в порядке очереди и ждёт следующее поступление
Надо просто суммировать длительность всех задач на открытие, одновременно уменьшая это время текущим временем.
Такой алгоритм будет гораздо проще очереди, а результат будет тем же.
- KeyArduino
- Сержант
- Сообщения: 130
- Зарегистрирован: 21 июл 2019, 19:16
- Имя: Дмитрий
- Контактная информация:
Задачи в очередь
отработала команды с одной комнаты, переходит к следующей и т.д., а тем временем с комнат может набиться с десяток а то и больше команд, вот их нужно ставить (записывать) в очередь, и в порядке очереди выполнятьedyapd писал(а): 03 ноя 2019, 17:01 Пожалуй если бы вы нарисовали что-то подобное, а в самом низу то, как это должна отработать система, то было бы намного понятней.
потому как если клапана независимы, то можно ли отрабатывать команды следующей комнаты свободным клапаном, в то время как комната не освободила ещё все клапана.
Отправлено спустя 4 минуты 26 секунд:
Вот именно что заканчивать задание клапан должен закрытием, отработал одно закрылся, отработал следующее закрылся и т.д. Типа как на конвейере тару наполняют, подъехала тара наполнил закрылся, подъехала следующая, наполнил закрылсяDryundel писал(а): 03 ноя 2019, 17:08 Если клапан при отработке всех задач в очереди не должен закрываться то Вам не нужна очередь.
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Задачи в очередь
В таком случае очередь необходима.KeyArduino писал(а): 03 ноя 2019, 17:08 Да, должен закрываться, то есть полностью отрабатывать цикл, закрываться и открываться при поступлении следующей задачи или если задачи стоят в очереди. Принял, открылся на энное количество секунд, отработал закрылся, следующая задача
Мысль верная. Только для решения поставленной задачи в штатных блоках нехватает FIFO.KeyArduino писал(а): 03 ноя 2019, 16:41 Может как то с блоками массивов можно организовать, если кнопками задачи по порядку будут записываться в массив а потом считывать и выполнять по очереди?
Эт я размышляю, на деле не знаю будет ли работать
Это почти то-же самое что и Стек.
С той лишь разницей что в Стеке "последний пришел - первый ушел", а в FIFO «первым пришёл — первым ушёл»
Был бы такой блок все бы упростилось.
- Rovki
- Полковник
- Сообщения: 5738
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 222 раза
- Контактная информация:
Задачи в очередь
В моей схеме этого нет ибо у вас не описано ,что такое команда . У вас было сказано что команда это нажатие кнопки ,а работа клапана по времени равна времени нажатия .Поэтому запоминать кто сколько держал и сколько нажимал не представляеся не возможным ,нужно просто время распределить между пользователями и организовать очередь пользователей для подачи команд управления ,а не запоминать кто когда нажимал и сколько .KeyArduino писал(а): 03 ноя 2019, 16:38Блоки памяти тут я как понял не используются? Ведь допустим в разных комнатах по нажимали кнопки многократно, на ардуино прилетело допустим 15 команд по открытию клапанов, где, каким блоком она их будет собирать а потом отправлять на выполнение?
Отправлено спустя 4 минуты 31 секунду:
Если каждый будет нажимать кнопки сколько хочет раз и на любое время ,то как узнать что нужно переходить у другой комнате ???KeyArduino писал(а): 03 ноя 2019, 17:08Да, должен закрываться, то есть полностью отрабатывать цикл, закрываться и открываться при поступлении следующей задачи или если задачи стоят в очереди. Принял, открылся на энное количество секунд, отработал закрылся, следующая задачаDryundel писал(а): 03 ноя 2019, 16:53 Почти ответили. Не понятно - клапан должен закрываться между отработкой нажатий разных кнопок?
Вообщем задание сырое и не продуманное .
Электронщик до мозга костей и не только
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Задачи в очередь
Идея есть. Задействуем стек. Пишем в него время нажатий в миллисекундах. Считываем последнее значение массива.
Ведь я так понял конкретное открытие клапана связывать с конкретной кнопкой не надо. Критично лишь время открытия и последовательность.
Надо как то тактировать постоянное продвижение с в стеке и еще связать это с временем отработки.
Надо пробовать.
Бин! Еще понимать бы для чего это нужно.
Ведь я так понял конкретное открытие клапана связывать с конкретной кнопкой не надо. Критично лишь время открытия и последовательность.
Надо как то тактировать постоянное продвижение с в стеке и еще связать это с временем отработки.
Надо пробовать.
Бин! Еще понимать бы для чего это нужно.

-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 158 раз
Задачи в очередь
Здесь очень живое прикладное обсуждение - напишу об этом в ветке "Разработки ecoins".Dryundel писал(а): 03 ноя 2019, 16:43 ecoins писал(а): ↑Сегодня{, 13:34}
Это реализовано в библиотеках ecoins - пользовательский блок "Диспетчер задач"
Очень интересно. И как же там организована очередь? Я вроде не заметил там подобия FIFO . А можно поподробней?
- Rovki
- Полковник
- Сообщения: 5738
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 222 раза
- Контактная информация:
Задачи в очередь
Кнопка однозначно связывается с клапаном ...3 кнопки - 3 клапана- 3 комнатыDryundel писал(а): 03 ноя 2019, 17:55 Идея есть. Задействуем стек. Пишем в него время нажатий в миллисекундах. Считываем последнее значение массива.
Ведь я так понял конкретное открытие клапана связывать с конкретной кнопкой не надо. Критично лишь время открытия и последовательность.
Надо как то тактировать постоянное продвижение с в стеке и еще связать это с временем отработки.
Надо пробовать.
Бин! Еще понимать бы для чего это нужно.![]()
Электронщик до мозга костей и не только
Задачи в очередь
Тут посидел, подумал. Наверное стоит сделать в каждой комнате по Ардуино, которое бы обрабатывало нажатия. При этом запрос в очередь выставляло бы только после того, как полностью сформирована команда (отпущена последняя кнопка). Только в таком случаи вы будете знать сколько по времени должен быть открыт клапан.KeyArduino писал(а): 03 ноя 2019, 13:19 Если по подробней, то с трёх комнат (три блока управления с тремя кнопками) поступают сигналы на блок управления, который будет отрабатывать эти задачи в порядке поступившей очереди. К блоку выполнения подключены 3 клапана (Всё это представляет из себя ардуино, 9 кнопок (по 3 в каждой комнате) и к ардуино подключены 3 клапана.
Например: Независимо друг от друга на ардуино подаються сигналы с разных комнат (С первой допустим команда включить 2 и 3 клапан (время отработки клапана зависит от времени удержания кнопки), со второй включить 1 и 2 клапан и с третей включить 1 и 3 клапан), клапана всего 3 и нужно собрать поступившие со всех трёх комнат сигналы и выполнить их в порядке поступившей очереди.
Ардуино, которое заведует клапанами получает запрос на очередь и помещает его в массив. И отвечает, что запрос на очередь поставлен. Ардуино в комнате должно снять запрос. Когда после отработки очередной команды массив сдвигается вверх и из него берётся номер очередной комнаты. Делается запрос к Ардуино, которая стоит в комнате и та отвечает, сколько и каким клапаном лить.
Тогда Ардуино в комнате может накапливать сколько угодно команд(ограничено памятью). И после формирования команды снова отправлять запрос на очередь.
Как вам такая система?
- KeyArduino
- Сержант
- Сообщения: 130
- Зарегистрирован: 21 июл 2019, 19:16
- Имя: Дмитрий
- Контактная информация:
Задачи в очередь
Да, истина где то рядом, спасибо за предложение, буду пробовать!edyapd писал(а): 03 ноя 2019, 18:06 Тут посидел, подумал. Наверное стоит сделать в каждой комнате по Ардуино, которое бы обрабатывало нажатия. При этом запрос в очередь выставляло бы только после того, как полностью сформирована команда (отпущена последняя кнопка). Только в таком случаи вы будете знать сколько по времени должен быть открыт клапан.
Ардуино, которое заведует клапанами получает запрос на очередь и помещает его в массив. И отвечает, что запрос на очередь поставлен. Ардуино в комнате должно снять запрос. Когда после отработки очередной команды массив сдвигается вверх и из него берётся номер очередной комнаты. Делается запрос к Ардуино, которая стоит в комнате и та отвечает, сколько и каким клапаном лить.
Тогда Ардуино в комнате может накапливать сколько угодно команд(ограничено памятью). И после формирования команды снова отправлять запрос на очередь.
Как вам такая система?
Всем участникам ветки плюсики в карму! И спасибо Вам большое!!!
Отправлено спустя 3 минуты 38 секунд:
Тему не закрываю до благополучного финала, буду пробовать, а там посмотрим что получится. Всем ещё раз спасибо!!!

- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
- Rovki
- Полковник
- Сообщения: 5738
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 222 раза
- Контактная информация:
Задачи в очередь
[/quote]
По ходу разрабатывается наливайка на три столика )
[/quote]
на троих столик
По ходу разрабатывается наливайка на три столика )
[/quote]
на троих столик

Электронщик до мозга костей и не только
- Dryundel
- Полковник
- Сообщения: 2457
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Задачи в очередь
По ходу разрабатывается наливайка на три столика )
Столик на троих и три напитка. Коктейль будет у каждого свой.на троих столик![]()

- Rovki
- Полковник
- Сообщения: 5738
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 222 раза
- Контактная информация:
Задачи в очередь
Удивил меня КлючкАрдуино ,что не смог сформулировать четко задачу ,как в своих видео уроках...
Электронщик до мозга костей и не только
Кто сейчас на конференции
Сейчас этот форум просматривают: Nazar и 1 гость