From: Ricardo Markiewicz Date: Wed, 3 Dec 2003 22:28:42 +0000 (+0000) Subject: Se leen bien los valores de punto flotante y la simulacion es mas coherente X-Git-Tag: svn_import~27 X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/commitdiff_plain/025f50123cb4ffad9847ea588967314e6aec0567?ds=inline Se leen bien los valores de punto flotante y la simulacion es mas coherente --- diff --git a/Client/src/principal.cpp b/Client/src/principal.cpp index db0dd12..c3c553a 100644 --- a/Client/src/principal.cpp +++ b/Client/src/principal.cpp @@ -812,10 +812,18 @@ void Principal::loadDrain(xmlNodePtr nodo) mapItems[name] = b; } -void Principal::read_status_xml(const std::string &frame) +void Principal::read_status_xml(const std::string &_frame) { std::string item_name; + std::string frame = _frame; xmlDocPtr document; + + // Cambio las , por . para evitar problemas de convercion + for(int i=0; iget_buffer()->insert(txt_view->get_buffer()->begin(), "ERROR : No se pudo leer el Ășltimo frame!\n"); @@ -836,6 +844,7 @@ void Principal::read_status_xml(const std::string &frame) if (xmlStrcmp(items->name, BAD_CAST"float")==0) { tmp = get_float_from_xml(items->children); item_name = (char *)xmlGetProp(items, BAD_CAST"name"); + std::cout << item_name << " " << tmp << std::endl; mapItems[item_name]->set_actual_flow(tmp); } else if (xmlStrcmp(items->name, BAD_CAST"exclusa")==0) { tmp_b = get_bool_from_xml(items->children); @@ -915,16 +924,21 @@ Gdk::Color Principal::get_rgb_from_xml(xmlNodePtr nodo) float Principal::get_float_from_xml(xmlNodePtr nodo) { float tmp = -1; + std::string s; while (nodo != NULL) { if (nodo->type == XML_ELEMENT_NODE) { if (xmlStrcmp(nodo->name, BAD_CAST"actual_flow")==0) { - tmp = atof( (char *)XML_GET_CONTENT(nodo->children) ); + s = (char *)XML_GET_CONTENT(nodo->children); break; } } nodo = nodo->next; } + std::stringstream ss; + ss << s; + ss >> tmp; if (tmp == INFINITO) tmp = 0; + return tmp; }