for(i2=items.begin(); i2!=items.end(); i2++)
(*i2)->get_state_as_xml(out);
+ std::list<LogicControl *>::iterator i3;
+ for(i3=control_lst.begin(); i3!=control_lst.end(); i3++)
+ (*i3)->get_state_as_xml(out);
out << "</plantstatus>";
return out.str();;
}
if (xmlStrcmp(nodo->name, BAD_CAST"entrada") == 0) {
item = dynamic_cast<Control *>(find((char *)XML_GET_CONTENT(nodo->children)));
if (item != NULL) {
- if (dynamic_cast<Tank *>(item)) {
+ if (dynamic_cast<Tank *>(item) != NULL) {
std::string donde = (char *)xmlGetProp(nodo, BAD_CAST"id");
if (donde == "inferior") {
current->connect( item->get_logic_output(), IConector::IN );
current->connect( item->get_logic_output(), IConector::IN );
}
} else {
- std::cout << "ERROR : Item no es tipo Control!!" << std::endl;
+ LogicControl *logic = dynamic_cast<LogicControl *>(find_logic((char *)XML_GET_CONTENT(nodo->children)));
+ /* Bien, si no era un control, debe ser una compuerta */
+ if (logic != NULL) {
+ current->connect(logic, IConector::IN);
+ } else {
+ std::cout << "ERROR : Item no es tipo Control ni tipo LogicControl ... esto si que esta todo malllll!!" << std::endl;
+ }
}
} else if (xmlStrcmp(nodo->name, BAD_CAST"salida") == 0) {
item = dynamic_cast<Control *>(find((char *)XML_GET_CONTENT(nodo->children)));
if (item != NULL) {
item->get_logic_input()->connect( current, IConector::IN );
} else {
- std::cout << "ERROR : Item no es tipo Control!!" << std::endl;
+ LogicControl *logic = dynamic_cast<LogicControl *>(find_logic((char *)XML_GET_CONTENT(nodo->children)));
+ /* Bien, si no era un control, debe ser una compuerta */
+ if (logic != NULL) {
+ logic->connect(current, IConector::IN);
+ } else {
+ std::cout << "ERROR : Item no es tipo Control ni tipo LogicControl ... esto si que esta todo malllll!!" << std::endl;
+ }
}
}