static float last_used;
static float last_total;
+static const char *PROVIDER_NAME = "gtop2";
+
struct psensor *create_cpu_usage_sensor(int measures_len)
{
- char *label;
+ char *label, *id;
int type;
- char *id;
struct psensor *psensor;
- id = strdup("cpu usage");
- label = strdup("cpu usage");
+ id = g_strdup_printf("%s cpu usage", PROVIDER_NAME);
+ label = strdup(_("CPU usage"));
type = SENSOR_TYPE_GTOP | SENSOR_TYPE_CPU_USAGE;
psensor = psensor_create(id,
static double get_usage()
{
glibtop_cpu cpu;
- unsigned long int used;
- unsigned long int dt;
+ unsigned long int used, dt;
double cpu_rate;
glibtop_get_cpu(&cpu);
dt = cpu.total - last_total;
if (dt)
- cpu_rate = 100 * (used - last_used) / dt;
+ cpu_rate = 100.0 * (used - last_used) / dt;
else
cpu_rate = UNKNOWN_DBL_VALUE;
void cpu_usage_sensor_update(struct psensor *s)
{
- psensor_set_current_value(s, get_usage());
+ double v;
+
+ v = get_usage();
+
+ if (v != UNKNOWN_DBL_VALUE)
+ psensor_set_current_value(s, v);
}
void cpu_psensor_list_update(struct psensor **sensors)