/* * SearchCondition.hh * * Created on: 5 июл. 2020 г. * Author: LeonidTitov */ #ifndef UMLIBRARY_APPLICATION_PROCEDURES_SEARCHCONDITION_HH_ #define UMLIBRARY_APPLICATION_PROCEDURES_SEARCHCONDITION_HH_ #include "../ISetupStep.hh" #include "../../technological/function/SearchCondition.hh" #include namespace application { namespace procedures { struct SearchCondition : public ISetupStep { static const Environment::Id provider = 0; typedef technological::adapter::TieInterface ControlSystem; ResourceKeeper * control_system = nullptr; ResourceKeeper * speed_limit = nullptr; ResourceKeeper * torque_limit = nullptr; ResourceKeeper * acc_limit = nullptr; systemic::IStatus * condition = nullptr; systemic::ISignal * value = nullptr; systemic::Parameter parameter; bool input( Environment & env ); void build( Environment & env ); struct Links { Environment::Id positioning_control; //!<Система управления позицией. Environment::Id speed_limit; //!<Ограничение скорости. Environment::Id torque_limit; //!<Ограничение усилия. Environment::Id acceleration_limit; //!<Ограничение ускорения. Environment::SignalId value; //!<Интересуемое значение. Environment::StatusId condition; //!<Условие завершения поиска. Environment::SettingId accuracy; //!<Точность оценкци условия граници диапозона поиска. Environment::TechFunctionId procedure; //!<Процедура выполняющая поиск точки в которой выполняется условие. Environment::StatusId size_error; //!<Ошибка запуска: невалидный размер. Environment::StatusId invalid_input; //!<Ошибка запуска: невалидные значения. Environment::StatusId control_system_busy; //!<Ошибка запуска: система управления занята. }; const Links & links; const configuration::ProcessConfig & params; SearchCondition( const Links & links, const configuration::ProcessConfig & params ) : links(links), params(params) {} }; }} #endif /* UMLIBRARY_APPLICATION_PROCEDURES_SEARCHCONDITION_HH_ */