#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
/// 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); }