X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/5885f9816965f487fd852a9ea46bbc580c48d317..f29a7129de56edca96ea8ef58576898c1e52ed6f:/Model/include/control.h diff --git a/Model/include/control.h b/Model/include/control.h index 00c56fa..a9e8bb5 100644 --- a/Model/include/control.h +++ b/Model/include/control.h @@ -3,23 +3,39 @@ #define _CONTROL_H_ #include "plantitem.h" +#include "logiccontrol.h" namespace PlaQui { namespace Model { -/** Elementos que pueden ser automatizados */ +/** Elementos que pueden ser automatizados + * + * Estos elementos tienen entradas y salidas lógicas para que dan la + * posibilidad de conectar elementos \e Control entre ellos y así + * poder crear circuitos "inteligentes". + * \see LogicControl + * */ class Control:public PlantItem { public: + /// Constructor Control(const std::string &_name); + /// Destructor virtual ~Control(); + /// Retorna un booleano dependiendo de su estado actual virtual bool get_output() = 0; + + /** Conecta una lógica de control a mi entrada */ + void connect_input_logic(LogicControl *); + /** Conecta una lógica de control a mi salida */ + void connect_output_logic(LogicControl *); + + LogicControl *get_logic_output() { return output; } + LogicControl *get_logic_input() { return input; } protected: - /* - LogicControl input; - LogicControl output; - */ + LogicControl *input; + LogicControl *output; private: Control(const Control &):PlantItem("null") {} Control &operator = (const Control &) { return (*this); } @@ -29,3 +45,4 @@ private: } #endif // _CONTROL_H_ +