X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/b75b5632c75f245e59a00775ffbe0affdedf8b6c..9322e49b932d824e5664aa8c0e0f9a41464537b1:/Model/include/control.h diff --git a/Model/include/control.h b/Model/include/control.h index 4429627..a9e8bb5 100644 --- a/Model/include/control.h +++ b/Model/include/control.h @@ -3,12 +3,19 @@ #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 @@ -16,13 +23,19 @@ public: /// Destructor virtual ~Control(); - /// Retorna un estado booleano dependiendo de su estado actual + /// 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); }