pokk 0 December 22, 2021 Posted December 22, 2021 (edited) · Report post Добрый день, подскажите как правильно разрулить работу устройства по нескольким событиям (из разных модулей) В общем задача такая есть устройство которое может включаться/выключаться по разным событиям 1) пользователь нажал кнопку в web (вкл/выкл) 2) Работа по расписанию (часы реального времени) 3) Защита (превышение параметра выкл, параметр в норме вкл) 4) Детектор сигнала (пропал сигнал выкл, появился сигнал вкл) Как разрулить что бы не было не предвиденного включения т.е пользователь или расписание выключило устройство, а после того как отработала защита либо сработал детектор как заблокировать включение устройства? Так же надо заблокировать сигнал включение из расписания если устройство выключил пользователь. Текущая реализация такая, в каждом модулей сделал свой Callback на событие, а установка всех Callback функций в одном файле в котором производиться логика работы по событиям + запись в журнал. Для разруливания событий думаю добавить в сообщение модуля включения приоритет, MsgDevice(MSG_OFF,1...4), и перед выполнением операции сохранять его, и при следующем включении анализировать сохраненное значение с новым. Как ещё можно это разрулить ? Edited December 22, 2021 by pokk Quote Share this post Link to post Share on other sites More sharing options...
MegaVolt 12 December 22, 2021 Posted December 22, 2021 · Report post Ничего не понятно :( Можете сформулировать проблемную ситуацию по пунктам по порядку что сработало, что получили, что должно было получиться и т.д. Quote Share this post Link to post Share on other sites More sharing options...
iosifk 3 December 22, 2021 Posted December 22, 2021 · Report post 5 часов назад, pokk сказал: Добрый день, подскажите как правильно разрулить работу устройства по нескольким событиям (из разных модулей) Как ещё можно это разрулить ? Совершенно стандартно можно сделать так, что каждый модуль на выходе выдаёт флаги своих состояний, которые поступают на вход автомата состояний - fsm, где они и и анализируются... автомат состояний пишется довольно легко.. приоритеты в нем точно так же легко задаются... Quote Share this post Link to post Share on other sites More sharing options...
pokk 0 December 22, 2021 Posted December 22, 2021 · Report post 3 hours ago, MegaVolt said: Ничего не понятно :( Можете сформулировать проблемную ситуацию по пунктам по порядку что сработало, что получили, что должно было получиться и т.д. Пользователь выключил устройство, потом убрал сигнал, и заново его подал, сработал детектор сигнала и включил устройство, а оно должно быть выключено. Такая же ситуация может произойти если устройство выключилось по расписанию. Quote Share this post Link to post Share on other sites More sharing options...
MegaVolt 12 December 23, 2021 Posted December 23, 2021 · Report post 20 часов назад, pokk сказал: Пользователь выключил устройство, потом убрал сигнал, и заново его подал, сработал детектор сигнала и включил устройство, а оно должно быть выключено. Такая же ситуация может произойти если устройство выключилось по расписанию. Ну значит при выключении устройства нужно выключать и детектор сигнала (выключать обработку с детектора.) Quote Share this post Link to post Share on other sites More sharing options...
Plain 70 December 23, 2021 Posted December 23, 2021 · Report post Да не, тут просто нужны, отдельно, флаг действия пользователя, и два переключателя, его и устройства. Quote Share this post Link to post Share on other sites More sharing options...
Ruslan1 2 December 23, 2021 Posted December 23, 2021 · Report post On 12/22/2021 at 5:22 AM, pokk said: Как ещё можно это разрулить ? Нарисовать блок-схему. В которой показать, что от чего зависит и поведение в любой из ситуаций в зависимости от уже достигнутого состояния. После чего обычно уже и спрашивать не нужно, все становится понятно. :) Quote Share this post Link to post Share on other sites More sharing options...
jcxz 81 December 23, 2021 Posted December 23, 2021 · Report post 37 минут назад, Ruslan1 сказал: Нарисовать блок-схему. В которой показать, что от чего зависит и поведение в любой из ситуаций в зависимости от уже достигнутого состояния. Самый толковый совет. А то похоже и сам ТС не понимает этого алгоритма. А уж посторонним, из такого невнятного описания, вообще ничего не понятно. Quote Share this post Link to post Share on other sites More sharing options...