#include "drainage.h"
#include "iconector.h"
#include "libxml/parser.h"
+#include "not.h"
+#include "or.h"
+#include "and.h"
namespace PlaQui {
namespace Model {
/// Tipos de elementos
enum {PUMP, UNION, SPLITTER, CONDUCT, EXCLUSA, TANK, DRAINAGE};
- bool pump_deactivate(const std::string &name);
+ bool set_open(const std::string &name, bool open = true);
+
+ /// Dice si el simulador está simulando una planta
+ bool is_ok() { return is_load_ok; }
protected:
// Los mantengo en listas separadas para ahorrar
// CPU y no tener que usar dinamic_cast
std::list<Tank *> tank_lst;
std::list<Drainage *> drainage_lst;
std::list<Exclusa *> exclusa_lst;
+ std::list<LogicControl *> control_lst;
// Tambien tengo una lista generica!
std::list<PlantItem *> items;
// Utilidades
IConector *find(const std::string &name);
+ LogicControl *find_logic(const std::string &name);
// Conecta todos los items desde el XML
void do_connections(xmlNodePtr nodo);
+ void do_logic_connetions(xmlNodePtr nodo);
+ void connect_logic(LogicControl *current, xmlNodePtr);
// Carga del XML
void loadBomba(xmlNodePtr nodo);
void loadTank(xmlNodePtr nodo);
void loadUnion(xmlNodePtr nodo);
void loadDrain(xmlNodePtr nodo);
+ void loadNot(xmlNodePtr nodo);
+ void loadOr(xmlNodePtr nodo);
+ void loadAnd(xmlNodePtr nodo);
+
+ RGB loadRGB(xmlNodePtr nodo);
// Frame. Define el orden para los cuadros del XML
unsigned long int frame;
+ bool is_load_ok;
};
}