2 #ifndef _LOGIC_CONTROL_H_
3 #define _LOGIC_CONTROL_H_
10 /** Modelo de control lógico para automatización
13 class LogicControl:public IConector {
17 * \param ins Cantidad de entradas
18 * \param outs Cantidad de salidas
20 LogicControl(int ins, int outs):IConector(ins, outs) {}
22 virtual ~LogicControl() {}
24 /** Retorna el estado actual.
26 * Esta función retorna un valor booleano resultado
27 * de aplicar la operación lógica que cada hijo decida
30 virtual bool get_output() = 0;
32 /** Dice si la logica esta o no en operacion
34 * La logica de control puede no estar siendo utilizada, y eso
35 * se deduce si tiene alguien conectado a sus entradas (o sea, si
36 * tiene alguien a quien consultar por un estado logico).
37 * Si no hay nadie conectado, se contempla que no se esta utilizando
38 * y se debe utilizar en los casos que sea necesario para no recibir
39 * entradas falsas en los objetos controlados.
40 * \see Exclusa::update
42 bool is_operational() { return (in_list.begin() != in_list.end()); }
47 #endif // _LOGIC_CONTROL_H_