diff --git a/include/cpu_mon.hpp b/include/cpu_mon.hpp index 5d2efb0..ae3b138 100644 --- a/include/cpu_mon.hpp +++ b/include/cpu_mon.hpp @@ -28,7 +28,7 @@ enum EstadosCPU { typedef struct DatosCPU { std::string cpu; - size_t times[NUM_ESTADOS_CPU]; + size_t tiempos[NUM_ESTADOS_CPU]; } DatosCPU; class CpuMon { @@ -49,7 +49,7 @@ public: void leerEstadoCPU(std::vector &entradas); void obtenerUsoCPU(const std::vector &entradas1, const std::vector &entradas2); - std::string obtenerBarra(float *porcentaje, uint8_t *cpu); + std::string obtenerBarra(float *porcentaje, std::string cpu); void setNum_sectores(uint8_t num_sectores); }; #endif // CPU_MON_HPP_ diff --git a/src/cpu_mon.cpp b/src/cpu_mon.cpp index aaec7cf..c94d85e 100644 --- a/src/cpu_mon.cpp +++ b/src/cpu_mon.cpp @@ -68,39 +68,39 @@ void CpuMon::leerEstadoCPU(std::vector &entradas) { const std::string STR_TOT("tot"); while (std::getline(fileStat, linea)) { - // cpu stats line found + // línea de datos de cpu encontrada if (!linea.compare(0, LEN_STR_CPU, STR_CPU)) { std::istringstream ss(linea); - // store entry + // almacenar entrada entradas.emplace_back(DatosCPU()); - DatosCPU &entry = entradas.back(); + DatosCPU &entrada = entradas.back(); - // read cpu label - ss >> entry.cpu; - - // remove "cpu" from the label when it's a processor number - if (entry.cpu.size() > LEN_STR_CPU) - entry.cpu.erase(0, LEN_STR_CPU); - // replace "cpu" with "tot" when it's total values - else - entry.cpu = STR_TOT; - - // read times - for (int i = 0; i < NUM_ESTADOS_CPU; ++i) - ss >> entry.times[i]; + // leer etiqueta de cpu + ss >> entrada.cpu; + // eliminar "cpu" de la etiqueta cuando es el número de un procesador + if (entrada.cpu.size() > LEN_STR_CPU) { + entrada.cpu.erase(0, LEN_STR_CPU); + // reemplazar "cpu" con "tot" cuando son los valores totales + } else { + entrada.cpu = STR_TOT; + } + // leer tiempos + for (int i = 0; i < NUM_ESTADOS_CPU; ++i) { + ss >> entrada.tiempos[i]; + } } } } size_t CpuMon::getTiempoInactivo(const DatosCPU &e) { - return e.times[S_IDLE] + e.times[S_IOWAIT]; + return e.tiempos[S_IDLE] + e.tiempos[S_IOWAIT]; } size_t CpuMon::getTiempoActivo(const DatosCPU &e) { - return e.times[S_USER] + e.times[S_NICE] + e.times[S_SYSTEM] + - e.times[S_IRQ] + e.times[S_SOFTIRQ] + e.times[S_STEAL] + - e.times[S_GUEST] + e.times[S_GUEST_NICE]; + return e.tiempos[S_USER] + e.tiempos[S_NICE] + e.tiempos[S_SYSTEM] + + e.tiempos[S_IRQ] + e.tiempos[S_SOFTIRQ] + e.tiempos[S_STEAL] + + e.tiempos[S_GUEST] + e.tiempos[S_GUEST_NICE]; } void CpuMon::obtenerUsoCPU(const std::vector &entradas1, @@ -122,19 +122,19 @@ void CpuMon::obtenerUsoCPU(const std::vector &entradas1, const float TIEMPO_TOTAL = TIEMPO_ACTIVO + TIEMPO_INACTIVO; float usoCPU = 1.f * TIEMPO_ACTIVO / TIEMPO_TOTAL; - salida[i - 1] = CpuMon::obtenerBarra(&usoCPU, &i); + salida[i - 1] = CpuMon::obtenerBarra(&usoCPU, e1.cpu); } ui::mostrarVentana(ventanaMonitorCPU, &salida, &columnas, &num_sectores); } -std::string CpuMon::obtenerBarra(float *porcentaje, uint8_t *cpu) { +std::string CpuMon::obtenerBarra(float *porcentaje, std::string cpu) { std::string barra = " CPU "; - if (CpuMon::num_hilos > 9 && *cpu < 10) { - barra.append("0").append(std::to_string(*cpu).append(" [")); + if (CpuMon::num_hilos > 9 && cpu.length() < 2) { + barra.append("0").append(cpu).append(" ["); } else { - barra.append(std::to_string(*cpu).append(" [")); + barra.append(cpu).append(" ["); } std::string cierre = "] ";