]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/include/control.h
* Se agrega carga de lineas entre compuertas.
[z.facultad/75.42/plaqui.git] / Model / include / control.h
index 442962780870e3ef5f5f1de0b232ce5fd588e1e7..a9e8bb5cd5983c8c0b84d28890896caac0fd3330 100644 (file)
@@ -3,12 +3,19 @@
 #define _CONTROL_H_
 
 #include "plantitem.h"
 #define _CONTROL_H_
 
 #include "plantitem.h"
+#include "logiccontrol.h"
 
 namespace PlaQui {
 
 namespace Model {
 
 
 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
 class Control:public PlantItem {
 public:
        /// Constructor
@@ -16,13 +23,19 @@ public:
        /// Destructor
        virtual ~Control();
 
        /// 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;
        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:
 protected:
-       /*
-       LogicControl input;
-       LogicControl output;
-       */
+       LogicControl *input;
+       LogicControl *output;
 private:
        Control(const Control &):PlantItem("null") {}
        Control &operator = (const Control &) { return (*this); }
 private:
        Control(const Control &):PlantItem("null") {}
        Control &operator = (const Control &) { return (*this); }