pokk 0 22 декабря, 2021 Опубликовано 22 декабря, 2021 (изменено) · Жалоба Добрый день, подскажите как правильно разрулить работу устройства по нескольким событиям (из разных модулей) В общем задача такая есть устройство которое может включаться/выключаться по разным событиям 1) пользователь нажал кнопку в web (вкл/выкл) 2) Работа по расписанию (часы реального времени) 3) Защита (превышение параметра выкл, параметр в норме вкл) 4) Детектор сигнала (пропал сигнал выкл, появился сигнал вкл) Как разрулить что бы не было не предвиденного включения т.е пользователь или расписание выключило устройство, а после того как отработала защита либо сработал детектор как заблокировать включение устройства? Так же надо заблокировать сигнал включение из расписания если устройство выключил пользователь. Текущая реализация такая, в каждом модулей сделал свой Callback на событие, а установка всех Callback функций в одном файле в котором производиться логика работы по событиям + запись в журнал. Для разруливания событий думаю добавить в сообщение модуля включения приоритет, MsgDevice(MSG_OFF,1...4), и перед выполнением операции сохранять его, и при следующем включении анализировать сохраненное значение с новым. Как ещё можно это разрулить ? Изменено 22 декабря, 2021 пользователем pokk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 22 декабря, 2021 Опубликовано 22 декабря, 2021 · Жалоба Ничего не понятно :( Можете сформулировать проблемную ситуацию по пунктам по порядку что сработало, что получили, что должно было получиться и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 22 декабря, 2021 Опубликовано 22 декабря, 2021 · Жалоба 5 часов назад, pokk сказал: Добрый день, подскажите как правильно разрулить работу устройства по нескольким событиям (из разных модулей) Как ещё можно это разрулить ? Совершенно стандартно можно сделать так, что каждый модуль на выходе выдаёт флаги своих состояний, которые поступают на вход автомата состояний - fsm, где они и и анализируются... автомат состояний пишется довольно легко.. приоритеты в нем точно так же легко задаются... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokk 0 22 декабря, 2021 Опубликовано 22 декабря, 2021 · Жалоба 3 hours ago, MegaVolt said: Ничего не понятно :( Можете сформулировать проблемную ситуацию по пунктам по порядку что сработало, что получили, что должно было получиться и т.д. Пользователь выключил устройство, потом убрал сигнал, и заново его подал, сработал детектор сигнала и включил устройство, а оно должно быть выключено. Такая же ситуация может произойти если устройство выключилось по расписанию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 23 декабря, 2021 Опубликовано 23 декабря, 2021 · Жалоба 20 часов назад, pokk сказал: Пользователь выключил устройство, потом убрал сигнал, и заново его подал, сработал детектор сигнала и включил устройство, а оно должно быть выключено. Такая же ситуация может произойти если устройство выключилось по расписанию. Ну значит при выключении устройства нужно выключать и детектор сигнала (выключать обработку с детектора.) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 200 23 декабря, 2021 Опубликовано 23 декабря, 2021 · Жалоба Да не, тут просто нужны, отдельно, флаг действия пользователя, и два переключателя, его и устройства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 23 декабря, 2021 Опубликовано 23 декабря, 2021 · Жалоба On 12/22/2021 at 5:22 AM, pokk said: Как ещё можно это разрулить ? Нарисовать блок-схему. В которой показать, что от чего зависит и поведение в любой из ситуаций в зависимости от уже достигнутого состояния. После чего обычно уже и спрашивать не нужно, все становится понятно. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 23 декабря, 2021 Опубликовано 23 декабря, 2021 · Жалоба 37 минут назад, Ruslan1 сказал: Нарисовать блок-схему. В которой показать, что от чего зависит и поведение в любой из ситуаций в зависимости от уже достигнутого состояния. Самый толковый совет. А то похоже и сам ТС не понимает этого алгоритма. А уж посторонним, из такого невнятного описания, вообще ничего не понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться