1. По нажатию кнопки, переходит в состояние загрузка, воздух не потребляет.
2. По повторному нажатию кнопки, переходит в режим "Разгрузка"
2а. Проверяет, есть ли "свободная труба". Так же проверяет, что нет устройств, которые перешли в состояние "Разгрузка" ранее.
2b. Если есть "свободная труба", и оно в голове очереди, "занимает трубу" и разгружается, до третьего нажатия на "свою" кнопку.
2с. Иначе, ждет своей очереди.
3. Переходит на №1.
ЗЫ. Подумал, что для информативности, нужно расширить управление выходами:
1. Устройство ожидает нажатия кнопки для загрузки. Выход не активен.
2. Устройство в состоянии загрузки. Выход мигает с периодом 2с
3. Устройство в ожидании своей очереди. Выход мигает с периодом 500мс
4. Устройство в состоянии разгрузки. Выход активен.
Отправлено спустя 12 минут 10 секунд:
Перечитал, и понял, что задача достаточно сложная получается. Однако, ее можно использовать для промежуточных задач.
Например, есть устройство.
1. По каждому нажатию кнопки, переключается состояние устройства (от 0 до 3 или установками соответствующих битов и сбрасыванию остальных)
2. Выход должен сигнализировать о текущем состоянии устройства.
ЗЫ.
Кстати, тут появляется возможность обсудить, что лучше использовать для описания состояния устройства.
1. Число от 0 до 3
2. Число от 1 до 4
3. 4 бита.