/* * SoftSwitch.hh * * Created on: 3 июл. 2020 г. * Author: LeonidTitov */ #ifndef UMLIBRARY_APPLICATION_SCHEMATIC_SOFTSWITCH_HH_ #define UMLIBRARY_APPLICATION_SCHEMATIC_SOFTSWITCH_HH_ #include "../ISetupStep.hh" #include "../../systemic/ISignal.hh" #include "../../systemic/IStatus.hh" #include "../../processing/logic/SoftSwitch.hh" namespace application { namespace schematic { struct SoftSwitch : public ISetupStep { static const systemic::CustomParameters::ProviderId provider_id = 0; systemic::ISignal * input_a = nullptr; systemic::ISignal * input_b = nullptr; systemic::IStatus * valid_a = nullptr; systemic::IStatus * valid_b = nullptr; systemic::Parameter parameter; bool input( Environment & env ); void build( Environment & env ); struct Links { Environment::SignalId value_a; //!<Входной сигнал 1. Environment::StatusId valid_a; //!<Признак валидности входного сигнала 1. Environment::SignalId value_b; //!<Входной сигнал 2. Environment::StatusId valid_b; //!<Признак валидности входного сигнала 2. Environment::SettingId params; //!<Параметры переключения сигналов. Environment::SignalId summary; //!<Итоговый сигнал. Environment::StatusId active_a; //!<Принакз активности сигнала 1. Environment::StatusId active_b; //!<Признак активности сигнала 2. }; const Links & links; const configuration::ProcessConfig & params; SoftSwitch( const Links & links, const configuration::ProcessConfig & params ) : links(links), params(params) {} }; }} #endif /* UMLIBRARY_APPLICATION_SCHEMATIC_SOFTSWITCH_HH_ */