AlexOskar писал(а):1. Не воспринимает значения времени вкл и выкл с лицевой панели (пока не тронешь настройку времени курсором шлет 00:00);
2. Никак не могу сделать так, чтобы выполнялся case "Проверка" после каждого изменения времени вкл и выкл
1. Функция, которую Вы используете - Get Notifier Status. А Вы должны ожидать прихода нового сообщения - Wait on Notification. И в начале работы виайки никакого сообщения нету - поэтому Get Notifier Status и выдает нули; ведь сообщения не было. Выход - в начале работы отослать сообщение с начальными данными.
2. Используя Wait on Notification, отслеживаем - сообщение пришло, или нет. Если сообщение пришло, то "запоминаем" его в шифт регистр, и переходим сразу на стейт "Проверка". Если не пришло (то бишь, сработал таймаут), то выполняем внутреннюю стейт-машину.
Посмотрите комменты, в виайке.
Плюс я добавил индикатор, который включается-выключается на комманды ON/OFF, т.к. тот индикатор "x <= y?" не корректно отображает результат выполнения срабатывания действия по расписанию.
Лично мне использование нотифаеров кажется неуместным. Если нужно передавать данные с верхнего цикла в нижний, используется с легкостью очередь (queue), при помощи которой можно и "крутит" саму стейт машину.
Но, повторюсь: при использовании нотифаеров не нужно в этом случае Get Notifier Status, нужен Wait on Notification.
Мы делили апельсин - много наших полегло...