]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/include/control.h
* Se mejoran las imagenes y se les pone color
[z.facultad/75.42/plaqui.git] / Model / include / control.h
1
2 #ifndef _CONTROL_H_
3 #define _CONTROL_H_
4
5 #include "plantitem.h"
6 #include "logiccontrol.h"
7
8 namespace PlaQui {
9
10 namespace Model {
11
12 /** Elementos que pueden ser automatizados */
13 class Control:public PlantItem {
14 public:
15         /// Constructor
16         Control(const std::string &_name);
17         /// Destructor
18         virtual ~Control();
19
20         /// Retorna un estado booleano dependiendo de su estado actual
21         virtual bool get_output() = 0;
22
23         /** Conecta una lógica de control a mi entrada */
24         void connect_input_logic(LogicControl *);
25         /** Conecta una lógica de control a mi salida */
26         void connect_output_logic(LogicControl *);
27
28         LogicControl *get_logic_output() { return output; }
29         LogicControl *get_logic_input() { return input; }
30 protected:
31         LogicControl *input;
32         LogicControl *output;
33 private:
34         Control(const Control &):PlantItem("null") {}
35         Control &operator = (const Control &) { return (*this); }
36 };
37
38 }
39 }
40
41 #endif // _CONTROL_H_
42