X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/dfabbe2822ffdfb241105cff491b4331096e4af3..4ddd90e71988f16c5ea79f5de86a9fcb63973ded:/Model/src/simulator.cpp?ds=sidebyside diff --git a/Model/src/simulator.cpp b/Model/src/simulator.cpp index f5c0114..ac03b47 100644 --- a/Model/src/simulator.cpp +++ b/Model/src/simulator.cpp @@ -574,7 +574,7 @@ void Simulator::do_logic_connetions(xmlNodePtr nodo) continue; } // obtengo el items actual por su nombre - if (xmlStrcmp(nodo->name, BAD_CAST"and") == 0) { + if ((xmlStrcmp(nodo->name, BAD_CAST"and") == 0) || (xmlStrcmp(nodo->name, BAD_CAST"not") == 0) || (xmlStrcmp(nodo->name, BAD_CAST"or") == 0)) { std::string s = (char *)xmlGetProp(nodo, BAD_CAST"nombre"); current = find_logic((char *)xmlGetProp(nodo, BAD_CAST"nombre")); connect_logic(current, nodo->children); @@ -594,7 +594,16 @@ void Simulator::connect_logic(LogicControl *current, xmlNodePtr nodo) if (xmlStrcmp(nodo->name, BAD_CAST"entrada") == 0) { item = dynamic_cast(find((char *)XML_GET_CONTENT(nodo->children))); if (item != NULL) { - current->connect( item->get_logic_output(), IConector::IN ); + if (dynamic_cast(item)) { + std::string donde = (char *)xmlGetProp(nodo, BAD_CAST"id"); + if (donde == "inferior") { + current->connect( item->get_logic_output(), IConector::IN ); + } else { + current->connect( item->get_logic_input(), IConector::IN ); + } + } else { + current->connect( item->get_logic_output(), IConector::IN ); + } } else { std::cout << "ERROR : Item no es tipo Control!!" << std::endl; }