]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/include/control.h
* Se eliminar los LogicControl dentro de los elementos que los creaban
[z.facultad/75.42/plaqui.git] / Model / include / control.h
index 00c56faec470d60a31bab2aba796b3419839e18e..a9e8bb5cd5983c8c0b84d28890896caac0fd3330 100644 (file)
@@ -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_
+