Владимир Паронджанов писал(а):
Владимир Ситников, у вас есть критические замечания по исправленному варианту схемы?
viewtopic.php?p=101384#p101384Конечно, стало лучше, но:
1) Почему проверка двигателей должна выполняться именно на 30-ой секунде? Получается, мы просто в начало работы алгоритма добавили паузу в 30 секунд? Какой в этом смысл? Может, стоит добавить простую икону "пауза 30сек" перед "проверкой двигателей"? И тогда можно перенести "сброс таймера T:=0" ниже. Ну, чтобы хотя бы обозначить "отсчитываем 8 минут вот от сих пор (от T:=0), и до сих (до T<8мин)".
\пауза 30 секунд/ -- зачем она, кстати?
||проверка двигателей|| -- а это что такое?
\\T:=0//
| <-- ....
<Левый двигатель в норме?>
Аналогично, кстати, и с пробным полётом. Почему мы включаем телепортацию на 3-ей минуте? Чего мы ждём 3 минуты?
2) С точки зрения ресурсов: в какой момент можно останавливать отсчёт таймера? Может ли этот таймер T использоваться внутри какой-нибудь вставки? Иными словами, сейчас по схеме тяжело понять "а используется ли ещё где-нибудь этот таймер?" Более того, если кто-то опечатается, и
случайно укажет T в качестве названия таймера в какой-то другой части схемы, то получит нерабочий алгоритм.
Стоит исключать глобальные переменные, и я считаю неудачным подход с "глобальными таймерами". Как называть таймеры? Неясно. Где они заканчиваются? Неясно. Как избежать случайного повторного использования? Неясно.
Как изобразить "ждём установки флага, но не более 50 секунд"?
К одной-единственной иконе проверки флага добавляем "сброс таймера", "проверку таймера"?
3) Нездорово то, что придётся изобретать имена для таймеров T, A и тому подобных. Грубо говоря, если технически нужно "ограничить длительность операции", то придумывание имени замусоривает картинку. Ну и создаёт двусмысленность в том плане, что единожды запущенный таймер может аукаться на протяжении всей схемы.
4) Интересно, насколько "медикам" будет понятна нотация с "запусками таймеров". Мне по-прежнему не нравится, что "ограничение длительности работы" выполняется одним образом (указанием "времени группы"), а обработка "слишком долгого ожидания" совершенно другим (ручным запуском таймеров).
-----
Например: в алгоритме летающей тарелки почему-то только 2 двигателя. И почему-то мы это знание зафиксировали прямо в алгоритме проверки.
И что означает вставка "проверка двигателей"? Она чем-то отличается от проверок "левый двигатель в норме" / "правый двигатель в норме"?
Шампур называется "проверка двигателей", первая вставка тоже называется "проверка двигателей". Тавтология какая-то.
Можно схлопнуть условия "проверка одного и другого двигателя" в одну развилку "в норме ли двигатели" ? Если так, тогда этот самый "цикл проверки двигателей" сводится к проверке одного условия. И получается, что мы запускаем таймер и проверяем его значение ради одного-единственного условия на проверку двигателей.